ExamGecko
Home Home / Snowflake / ARA-C01

Snowflake ARA-C01 Practice Test - Questions Answers, Page 9

Question list
Search
Search

List of questions

Search

A healthcare company is deploying a Snowflake account that may include Personal Health Information (PHI). The company must ensure compliance with all relevant privacy standards.

Which best practice recommendations will meet data protection and compliance requirements? (Choose three.)

A.
Use, at minimum, the Business Critical edition of Snowflake.
A.
Use, at minimum, the Business Critical edition of Snowflake.
Answers
B.
Create Dynamic Data Masking policies and apply them to columns that contain PHI.
B.
Create Dynamic Data Masking policies and apply them to columns that contain PHI.
Answers
C.
Use the Internal Tokenization feature to obfuscate sensitive data.
C.
Use the Internal Tokenization feature to obfuscate sensitive data.
Answers
D.
Use the External Tokenization feature to obfuscate sensitive data.
D.
Use the External Tokenization feature to obfuscate sensitive data.
Answers
E.
Rewrite SQL queries to eliminate projections of PHI data based on current_role().
E.
Rewrite SQL queries to eliminate projections of PHI data based on current_role().
Answers
F.
Avoid sharing data with partner organizations.
F.
Avoid sharing data with partner organizations.
Answers
Suggested answer: A, B, D

Explanation:

A healthcare company that handles PHI data must ensure compliance with relevant privacy standards, such as HIPAA, HITRUST, and GDPR.Snowflake provides several features and best practices to help customers meet their data protection and compliance requirements1.

One best practice recommendation is to use, at minimum, the Business Critical edition of Snowflake.This edition provides the highest level of data protection and security, including end-to-end encryption with customer-managed keys, enhanced object-level security, and HIPAA and HITRUST compliance2. Therefore, option A is correct.

Another best practice recommendation is to create Dynamic Data Masking policies and apply them to columns that contain PHI. Dynamic Data Masking is a feature that allows masking or redacting sensitive data based on the current user's role.This way, only authorized users can view the unmasked data, while others will see masked values, such as NULL, asterisks, or random characters3. Therefore, option B is correct.

A third best practice recommendation is to use the External Tokenization feature to obfuscate sensitive data. External Tokenization is a feature that allows replacing sensitive data with tokens that are generated and stored by an external service, such as Protegrity.This way, the original data is never stored or processed by Snowflake, and only authorized users can access the tokenized data through the external service4. Therefore, option D is correct.

Option C is incorrect, because the Internal Tokenization feature is not available in Snowflake.Snowflake does not provide any native tokenization functionality, but only supports integration with external tokenization services4.

Option E is incorrect, because rewriting SQL queries to eliminate projections of PHI data based on current_role() is not a best practice. This approach is error-prone, inefficient, and hard to maintain.A better alternative is to use Dynamic Data Masking policies, which can automatically mask data based on the user's role without modifying the queries3.

Option F is incorrect, because avoiding sharing data with partner organizations is not a best practice. Snowflake enables secure and governed data sharing with internal and external consumers, such as business units, customers, or partners. Data sharing does not involve copying or moving data, but only granting access privileges to the shared objects.Data sharing can also leverage Dynamic Data Masking and External Tokenization features to protect sensitive data5.

There are two databases in an account, named fin_db and hr_db which contain payroll and employee data, respectively. Accountants and Analysts in the company require different permissions on the objects in these databases to perform their jobs. Accountants need read-write access to fin_db but only require read-only access to hr_db because the database is maintained by human resources personnel.

An Architect needs to create a read-only role for certain employees working in the human resources department.

Which permission sets must be granted to this role?

A.
USAGE on database hr_db, USAGE on all schemas in database hr_db, SELECT on all tables in database hr_db
A.
USAGE on database hr_db, USAGE on all schemas in database hr_db, SELECT on all tables in database hr_db
Answers
B.
USAGE on database hr_db, SELECT on all schemas in database hr_db, SELECT on all tables in database hr_db
B.
USAGE on database hr_db, SELECT on all schemas in database hr_db, SELECT on all tables in database hr_db
Answers
C.
MODIFY on database hr_db, USAGE on all schemas in database hr_db, USAGE on all tables in database hr_db
C.
MODIFY on database hr_db, USAGE on all schemas in database hr_db, USAGE on all tables in database hr_db
Answers
D.
USAGE on database hr_db, USAGE on all schemas in database hr_db, REFERENCES on all tables in database hr_db
D.
USAGE on database hr_db, USAGE on all schemas in database hr_db, REFERENCES on all tables in database hr_db
Answers
Suggested answer: A

Explanation:

To create a read-only role for certain employees working in the human resources department, the role needs to have the following permissions on the hr_db database:

USAGEon the database: This allows the role to access the database and see its schemas and objects.

USAGEon all schemas in the database: This allows the role to access the schemas and see their objects.

SELECTon all tables in the database: This allows the role to query the data in the tables.

Option A is the correct answer because it grants the minimum permissions required for a read-only role on the hr_db database.

Option B is incorrect because SELECT on schemas is not a valid permission. Schemas only support USAGE and CREATE permissions.

Option C is incorrect because MODIFY on the database is not a valid permission. Databases only support USAGE, CREATE, MONITOR, and OWNERSHIP permissions. Moreover, USAGE on tables is not sufficient for querying the data. Tables support SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, and OWNERSHIP permissions.

Option D is incorrect because REFERENCES on tables is not relevant for querying the data. REFERENCES permission allows the role to create foreign key constraints on the tables.

: https://docs.snowflake.com/en/user-guide/security-access-control-privileges.html#database-privileges

: https://docs.snowflake.com/en/user-guide/security-access-control-privileges.html#schema-privileges

: https://docs.snowflake.com/en/user-guide/security-access-control-privileges.html#table-privileges

An Architect runs the following SQL query:

How can this query be interpreted?

A.
FILEROWS is a stage. FILE_ROW_NUMBER is line number in file.
A.
FILEROWS is a stage. FILE_ROW_NUMBER is line number in file.
Answers
B.
FILEROWS is the table. FILE_ROW_NUMBER is the line number in the table.
B.
FILEROWS is the table. FILE_ROW_NUMBER is the line number in the table.
Answers
C.
FILEROWS is a file. FILE_ROW_NUMBER is the file format location.
C.
FILEROWS is a file. FILE_ROW_NUMBER is the file format location.
Answers
D.
FILERONS is the file format location. FILE_ROW_NUMBER is a stage.
D.
FILERONS is the file format location. FILE_ROW_NUMBER is a stage.
Answers
Suggested answer: A

Explanation:

A stage is a named location in Snowflake that can store files for data loading and unloading. A stage can be internal or external, depending on where the files are stored.

The query in the question uses theLISTfunction to list the files in a stage named FILEROWS. The function returns a table with various columns, including FILE_ROW_NUMBER, which is the line number of the file in the stage.

Therefore, the query can be interpreted as listing the files in a stage named FILEROWS and showing the line number of each file in the stage.

: Stages

: LIST Function

An Architect entered the following commands in sequence:

USER1 cannot find the table.

Which of the following commands does the Architect need to run for USER1 to find the tables using the Principle of Least Privilege? (Choose two.)

A.
GRANT ROLE PUBLIC TO ROLE INTERN;
A.
GRANT ROLE PUBLIC TO ROLE INTERN;
Answers
B.
GRANT USAGE ON DATABASE SANDBOX TO ROLE INTERN;
B.
GRANT USAGE ON DATABASE SANDBOX TO ROLE INTERN;
Answers
C.
GRANT USAGE ON SCHEMA SANDBOX.PUBLIC TO ROLE INTERN;
C.
GRANT USAGE ON SCHEMA SANDBOX.PUBLIC TO ROLE INTERN;
Answers
D.
GRANT OWNERSHIP ON DATABASE SANDBOX TO USER INTERN;
D.
GRANT OWNERSHIP ON DATABASE SANDBOX TO USER INTERN;
Answers
E.
GRANT ALL PRIVILEGES ON DATABASE SANDBOX TO ROLE INTERN;
E.
GRANT ALL PRIVILEGES ON DATABASE SANDBOX TO ROLE INTERN;
Answers
Suggested answer: B, C

Explanation:

According to the Principle of Least Privilege, the Architect should grant the minimum privileges necessary for the USER1 to find the tables in the SANDBOX database.

The USER1 needs to have USAGE privilege on the SANDBOX database and the SANDBOX.PUBLIC schema to be able to access the tables in the PUBLIC schema. Therefore, the commands B and C are the correct ones to run.

The command A is not correct because the PUBLIC role is automatically granted to every user and role in the account, and it does not have any privileges on the SANDBOX database by default.

The command D is not correct because it would transfer the ownership of the SANDBOX database from the Architect to the USER1, which is not necessary and violates the Principle of Least Privilege.

The command E is not correct because it would grant all the possible privileges on the SANDBOX database to the USER1, which is also not necessary and violates the Principle of Least Privilege.

A DevOps team has a requirement for recovery of staging tables used in a complex set of data pipelines. The staging tables are all located in the same staging schem

a. One of the requirements is to have online recovery of data on a rolling 7-day basis.

After setting up the DATA_RETENTION_TIME_IN_DAYS at the database level, certain tables remain unrecoverable past 1 day.

What would cause this to occur? (Choose two.)

A.
The staging schema has not been setup for MANAGED ACCESS.
A.
The staging schema has not been setup for MANAGED ACCESS.
Answers
B.
The DATA_RETENTION_TIME_IN_DAYS for the staging schema has been set to 1 day.
B.
The DATA_RETENTION_TIME_IN_DAYS for the staging schema has been set to 1 day.
Answers
C.
The tables exceed the 1 TB limit for data recovery.
C.
The tables exceed the 1 TB limit for data recovery.
Answers
D.
The staging tables are of the TRANSIENT type.
D.
The staging tables are of the TRANSIENT type.
Answers
E.
The DevOps role should be granted ALLOW_RECOVERY privilege on the staging schema.
E.
The DevOps role should be granted ALLOW_RECOVERY privilege on the staging schema.
Answers
Suggested answer: B, D

Explanation:

The DATA_RETENTION_TIME_IN_DAYS parameter controls the Time Travel retention period for an object (database, schema, or table) in Snowflake.This parameter specifies the number of days for which historical data is preserved and can be accessed using Time Travel operations (SELECT, CREATE ... CLONE, UNDROP)1.

The requirement for recovery of staging tables on a rolling 7-day basis means that the DATA_RETENTION_TIME_IN_DAYS parameter should be set to 7 at the database level.However, this parameter can be overridden at the lower levels (schema or table) if they have a different value1.

Therefore, one possible cause for certain tables to remain unrecoverable past 1 day is that the DATA_RETENTION_TIME_IN_DAYS for the staging schema has been set to 1 day. This would override the database level setting and limit the Time Travel retention period for all the tables in the schema to 1 day.To fix this, the parameter should be unset or set to 7 at the schema level1. Therefore, option B is correct.

Another possible cause for certain tables to remain unrecoverable past 1 day is that the staging tables are of the TRANSIENT type. Transient tables are tables that do not have a Fail-safe period and can have a Time Travel retention period of either 0 or 1 day.Transient tables are suitable for temporary or intermediate data that can be easily reproduced or replicated2.To fix this, the tables should be created as permanent tables, which can have a Time Travel retention period of up to 90 days1. Therefore, option D is correct.

Option A is incorrect because the MANAGED ACCESS feature is not related to the data recovery requirement. MANAGED ACCESS is a feature that allows granting access privileges to objects without explicitly granting the privileges to roles.It does not affect the Time Travel retention period or the data availability3.

Option C is incorrect because there is no 1 TB limit for data recovery in Snowflake.The data storage size does not affect the Time Travel retention period or the data availability4.

Option E is incorrect because there is no ALLOW_RECOVERY privilege in Snowflake.The privilege required to perform Time Travel operations is SELECT, which allows querying historical data in tables5.

Consider the following COPY command which is loading data with CSV format into a Snowflake table from an internal stage through a data transformation query.

This command results in the following error:

SQL compilation error: invalid parameter 'validation_mode'

Assuming the syntax is correct, what is the cause of this error?

A.
The VALIDATION_MODE parameter supports COPY statements that load data from external stages only.
A.
The VALIDATION_MODE parameter supports COPY statements that load data from external stages only.
Answers
B.
The VALIDATION_MODE parameter does not support COPY statements with CSV file formats.
B.
The VALIDATION_MODE parameter does not support COPY statements with CSV file formats.
Answers
C.
The VALIDATION_MODE parameter does not support COPY statements that transform data during a load.
C.
The VALIDATION_MODE parameter does not support COPY statements that transform data during a load.
Answers
D.
The value return_all_errors of the option VALIDATION_MODE is causing a compilation error.
D.
The value return_all_errors of the option VALIDATION_MODE is causing a compilation error.
Answers
Suggested answer: C

Explanation:

The VALIDATION_MODE parameter is used to specify the behavior of the COPY statement when loading data into a table. It is used to specify whether the COPY statement should return an error if any of the rows in the file are invalid or if it should continue loading the valid rows.The VALIDATION_MODE parameter is only supported for COPY statements that load data from external stages1.

The query in the question uses a data transformation query to load data from an internal stage.A data transformation query is a query that transforms the data during the load process, such as parsing JSON or XML data, applying functions, or joining with other tables2.

According to the documentation, VALIDATION_MODE does not support COPY statements that transform data during a load.If the parameter is specified, the COPY statement returns an error1. Therefore, option C is the correct answer.

A company is designing high availability and disaster recovery plans and needs to maximize redundancy and minimize recovery time objectives for their critical application processes. Cost is not a concern as long as the solution is the best available. The plan so far consists of the following steps:

1. Deployment of Snowflake accounts on two different cloud providers.

2. Selection of cloud provider regions that are geographically far apart.

3. The Snowflake deployment will replicate the databases and account data between both cloud provider accounts.

4. Implementation of Snowflake client redirect.

What is the MOST cost-effective way to provide the HIGHEST uptime and LEAST application disruption if there is a service event?

A.
Connect the applications using the <organization_name>-<connection_name> URL. Use the Business Critical Snowflake edition.
A.
Connect the applications using the <organization_name>-<connection_name> URL. Use the Business Critical Snowflake edition.
Answers
B.
Connect the applications using the <organization_name>-<connection_name> URL. Use the Virtual Private Snowflake (VPS) edition.
B.
Connect the applications using the <organization_name>-<connection_name> URL. Use the Virtual Private Snowflake (VPS) edition.
Answers
C.
Connect the applications using the <organization_name>-<accountLocator> URL. Use the Enterprise Snowflake edition.
C.
Connect the applications using the <organization_name>-<accountLocator> URL. Use the Enterprise Snowflake edition.
Answers
D.
Connect the applications using the <organization_name>-<accountLocator> URL. Use the Business Critical Snowflake edition.
D.
Connect the applications using the <organization_name>-<accountLocator> URL. Use the Business Critical Snowflake edition.
Answers
Suggested answer: D

Explanation:

To provide the highest uptime and least application disruption in case of a service event, the best option is to use the Business Critical Snowflake edition and connect the applications using the <organization_name>- URL. The Business Critical Snowflake edition offers the highest level of security, performance, and availability for Snowflake accounts. It includes features such as customer-managed encryption keys, HIPAA compliance, and 4-hour RPO and RTO SLAs. It also supports account replication and failover across regions and cloud platforms, which enables business continuity and disaster recovery. By using the <organization_name>- URL, the applications can leverage the Snowflake Client Redirect feature, which automatically redirects the client connections to the secondary account in case of a failover. This way, the applications can seamlessly switch to the backup account without any manual intervention or configuration changes. The other options are less cost-effective or less reliable because they either use a lower edition of Snowflake, which does not support account replication and failover, or they use the <organization_name>-<connection_name> URL, which does not support client redirect and requires manual updates to the connection string in case of a failover.Reference:

[Snowflake Editions]1

[Replication and Failover/Failback]2

[Client Redirect]3

[Snowflake Account Identifiers]4

A company's Architect needs to find an efficient way to get data from an external partner, who is also a Snowflake user. The current solution is based on daily JSON extracts that are placed on an FTP server and uploaded to Snowflake manually. The files are changed several times each month, and the ingestion process needs to be adapted to accommodate these changes.

What would be the MOST efficient solution?

A.
Ask the partner to create a share and add the company's account.
A.
Ask the partner to create a share and add the company's account.
Answers
B.
Ask the partner to use the data lake export feature and place the data into cloud storage where Snowflake can natively ingest it (schema-on-read).
B.
Ask the partner to use the data lake export feature and place the data into cloud storage where Snowflake can natively ingest it (schema-on-read).
Answers
C.
Keep the current structure but request that the partner stop changing files, instead only appending new files.
C.
Keep the current structure but request that the partner stop changing files, instead only appending new files.
Answers
D.
Ask the partner to set up a Snowflake reader account and use that account to get the data for ingestion.
D.
Ask the partner to set up a Snowflake reader account and use that account to get the data for ingestion.
Answers
Suggested answer: A

Explanation:

The most efficient solution is to ask the partner to create a share and add the company's account (Option A). This way, the company can access the live data from the partner without any data movement or manual intervention. Snowflake's secure data sharing feature allows data providers to share selected objects in a database with other Snowflake accounts. The shared data is read-only and does not incur any storage or compute costs for the data consumers. The data consumers can query the shared data directly or create local copies of the shared objects in their own databases. Option B is not efficient because it involves using the data lake export feature, which is intended for exporting data from Snowflake to an external data lake, not for importing data from another Snowflake account. The data lake export feature also requires the data provider to create an external stage on cloud storage and use the COPY INTO <location> command to export the data into parquet files. The data consumer then needs to create an external table or a file format to load the data from the cloud storage into Snowflake. This process can be complex and costly, especially if the data changes frequently. Option C is not efficient because it does not solve the problem of manual data ingestion and adaptation. Keeping the current structure of daily JSON extracts on an FTP server and requesting the partner to stop changing files, instead only appending new files, does not improve the efficiency or reliability of the data ingestion process. The company still needs to upload the data to Snowflake manually and deal with any schema changes or data quality issues. Option D is not efficient because it requires the partner to set up a Snowflake reader account and use that account to get the data for ingestion. A reader account is a special type of account that can only consume data from the provider account that created it. It is intended for data consumers who are not Snowflake customers and do not have a licensing agreement with Snowflake. A reader account is not suitable for data ingestion from another Snowflake account, as it does not allow uploading, modifying, or unloading data. The company would need to use external tools or interfaces to access the data from the reader account and load it into their own account, which can be slow and expensive.Reference: The answer can be verified from Snowflake's official documentation on secure data sharing, data lake export, and reader accounts available on their website. Here are some relevant links:

Introduction to Secure Data Sharing | Snowflake Documentation

Data Lake Export Public Preview Is Now Available on Snowflake | Snowflake Blog

Managing Reader Accounts | Snowflake Documentation

Based on the architecture in the image, how can the data from DB1 be copied into TBL2? (Select TWO).

A.
A.
Answers
B.
B.
Answers
C.
C.
Answers
D.
D.
Answers
E.
E.
Answers
Suggested answer: B, E

Explanation:

The architecture in the image shows a Snowflake data platform with two databases, DB1 and DB2, and two schemas, SH1 and SH2. DB1 contains a table TBL1 and a stage STAGE1. DB2 contains a table TBL2. The image also shows a snippet of code written in SQL language that copies data from STAGE1 to TBL2 using a file format FF PIPE 1.

To copy data from DB1 to TBL2, there are two possible options among the choices given:

Option B: Use a named external stage that references STAGE1. This option requires creating an external stage object in DB2.SH2 that points to the same location as STAGE1 in DB1.SH1.The external stage can be created using theCREATE STAGEcommand with theURLparameter specifying the location of STAGE11. For example:

SQLAI-generated code. Review and use carefully.More info on FAQ.

use database DB2;

use schema SH2;

create stage EXT_STAGE1

url = @DB1.SH1.STAGE1;

Then, the data can be copied from the external stage to TBL2 using theCOPY INTOcommand with theFROMparameter specifying the external stage name and theFILE FORMATparameter specifying the file format name2. For example:

SQLAI-generated code. Review and use carefully.More info on FAQ.

copy into TBL2

from @EXT_STAGE1

file format = (format name = DB1.SH1.FF PIPE 1);

Option E: Use a cross-database query to select data from TBL1 and insert into TBL2. This option requires using theINSERT INTOcommand with theSELECTclause to query data from TBL1 in DB1.SH1 and insert it into TBL2 in DB2.SH2.The query must use the fully-qualified names of the tables, including the database and schema names3. For example:

SQLAI-generated code. Review and use carefully.More info on FAQ.

use database DB2;

use schema SH2;

insert into TBL2

select * from DB1.SH1.TBL1;

The other options are not valid because:

Option A: It uses an invalid syntax for theCOPY INTOcommand.TheFROMparameter cannot specify a table name, only a stage name or a file location2.

Option C: It uses an invalid syntax for theCOPY INTOcommand.TheFILE FORMATparameter cannot specify a stage name, only a file format name or options2.

Option D: It uses an invalid syntax for theCREATE STAGEcommand.TheURLparameter cannot specify a table name, only a file location1.

1: CREATE STAGE | Snowflake Documentation

2: COPY INTO table | Snowflake Documentation

3: Cross-database Queries | Snowflake Documentation

Why might a Snowflake Architect use a star schema model rather than a 3NF model when designing a data architecture to run in Snowflake? (Select TWO).

A.
Snowflake cannot handle the joins implied in a 3NF data model.
A.
Snowflake cannot handle the joins implied in a 3NF data model.
Answers
B.
The Architect wants to remove data duplication from the data stored in Snowflake.
B.
The Architect wants to remove data duplication from the data stored in Snowflake.
Answers
C.
The Architect is designing a landing zone to receive raw data into Snowflake.
C.
The Architect is designing a landing zone to receive raw data into Snowflake.
Answers
D.
The Bl tool needs a data model that allows users to summarize facts across different dimensions, or to drill down from the summaries.
D.
The Bl tool needs a data model that allows users to summarize facts across different dimensions, or to drill down from the summaries.
Answers
E.
The Architect wants to present a simple flattened single view of the data to a particular group of end users.
E.
The Architect wants to present a simple flattened single view of the data to a particular group of end users.
Answers
Suggested answer: D, E

Explanation:

A star schema model is a type of dimensional data model that consists of a single fact table and multiple dimension tables. A 3NF model is a type of relational data model that follows the third normal form, which eliminates data redundancy and ensures referential integrity. A Snowflake Architect might use a star schema model rather than a 3NF model when designing a data architecture to run in Snowflake for the following reasons:

A star schema model is more suitable for analytical queries that require aggregating and slicing data across different dimensions, such as those performed by a BI tool. A 3NF model is more suitable for transactional queries that require inserting, updating, and deleting individual records.

A star schema model is simpler and faster to query than a 3NF model, as it involves fewer joins and less complex SQL statements. A 3NF model is more complex and slower to query, as it involves more joins and more complex SQL statements.

A star schema model can provide a simple flattened single view of the data to a particular group of end users, such as business analysts or data scientists, who need to explore and visualize the data. A 3NF model can provide a more detailed and normalized view of the data to a different group of end users, such as application developers or data engineers, who need to maintain and update the data.

The other options are not valid reasons for choosing a star schema model over a 3NF model in Snowflake:

Snowflake can handle the joins implied in a 3NF data model, as it supports ANSI SQL and has a powerful query engine that can optimize and execute complex queries efficiently.

The Architect can use both star schema and 3NF models to remove data duplication from the data stored in Snowflake, as both models can enforce data integrity and avoid data anomalies. However, the trade-off is that a star schema model may have more data redundancy than a 3NF model, as it denormalizes the data for faster query performance, while a 3NF model may have less data redundancy than a star schema model, as it normalizes the data for easier data maintenance.

The Architect can use both star schema and 3NF models to design a landing zone to receive raw data into Snowflake, as both models can accommodate different types of data sources and formats. However, the choice of the model may depend on the purpose and scope of the landing zone, such as whether it is a temporary or permanent storage, whether it is a staging area or a data lake, and whether it is a single source or a multi-source integration.

Snowflake Architect Training

Data Modeling: Understanding the Star and Snowflake Schemas

Data Vault vs Star Schema vs Third Normal Form: Which Data Model to Use?

Star Schema vs Snowflake Schema: 5 Key Differences

Dimensional Data Modeling - Snowflake schema

Star schema vs Snowflake Schema

Total 162 questions
Go to page: of 17