ExamGecko
Home Home / Snowflake / ARA-C01

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

Question list
Search
Search

List of questions

Search

An Architect is troubleshooting a query with poor performance using the QUERY_HIST0RY function. The Architect observes that the COMPILATIONJHME is greater than the EXECUTIONJTIME.

What is the reason for this?

A.
The query is processing a very large dataset.
A.
The query is processing a very large dataset.
Answers
B.
The query has overly complex logic.
B.
The query has overly complex logic.
Answers
C.
The query is queued for execution.
C.
The query is queued for execution.
Answers
D.
The query is reading from remote storage.
D.
The query is reading from remote storage.
Answers
Suggested answer: B

Explanation:

Compilation time is the time it takes for the optimizer to create an optimal query plan for the efficient execution of the query.It also involves some pruning of partition files, making the query execution efficient2

If the compilation time is greater than the execution time, it means that the optimizer spent more time analyzing the query than actually running it. This could indicate that the query has overly complex logic, such as multiple joins, subqueries, aggregations, or expressions.The complexity of the query could also affect the size and quality of the query plan, which could impact the performance of the query3

To reduce the compilation time, the Architect can try to simplify the query logic, use views or common table expressions (CTEs) to break down the query into smaller parts, or use hints to guide the optimizer.The Architect can also use the EXPLAIN command to examine the query plan and identify potential bottlenecks or inefficiencies4Reference:

1: SnowPro Advanced: Architect | Study Guide5

2: Snowflake Documentation | Query Profile Overview6

3: Understanding Why Compilation Time in Snowflake Can Be Higher than Execution Time7

4: Snowflake Documentation | Optimizing Query Performance8

:SnowPro Advanced: Architect | Study Guide

:Query Profile Overview

:Understanding Why Compilation Time in Snowflake Can Be Higher than Execution Time

:Optimizing Query Performance

A Snowflake Architect is designing a multiple-account design strategy.

This strategy will be MOST cost-effective with which scenarios? (Select TWO).

A.
The company wants to clone a production database that resides on AWS to a development database that resides on Azure.
A.
The company wants to clone a production database that resides on AWS to a development database that resides on Azure.
Answers
B.
The company needs to share data between two databases, where one must support Payment Card Industry Data Security Standard (PCI DSS) compliance but the other one does not.
B.
The company needs to share data between two databases, where one must support Payment Card Industry Data Security Standard (PCI DSS) compliance but the other one does not.
Answers
C.
The company needs to support different role-based access control features for the development, test, and production environments.
C.
The company needs to support different role-based access control features for the development, test, and production environments.
Answers
D.
The company security policy mandates the use of different Active Directory instances for the development, test, and production environments.
D.
The company security policy mandates the use of different Active Directory instances for the development, test, and production environments.
Answers
E.
The company must use a specific network policy for certain users to allow and block given IP addresses.
E.
The company must use a specific network policy for certain users to allow and block given IP addresses.
Answers
Suggested answer: B, C

Explanation:

A multiple-account design strategy is a way of organizing Snowflake accounts into logical groups based on different criteria, such as cloud provider, region, environment, or business unit.A multiple-account design strategy can help achieve various goals, such as cost optimization, performance isolation, security compliance, and data sharing1. In this question, the scenarios that would be most cost-effective with a multiple-account design strategy are:

The company wants to clone a production database that resides on AWS to a development database that resides on Azure. This scenario would benefit from a multiple-account design strategy because it would allow the company to leverage the cross-cloud replication feature of Snowflake, which enables replicating databases across different cloud platforms and regions.This feature can help reduce the data transfer costs and latency, as well as provide high availability and disaster recovery2.

The company security policy mandates the use of different Active Directory instances for the development, test, and production environments. This scenario would benefit from a multiple-account design strategy because it would allow the company to use different federated authentication methods for each environment, and integrate them with different Active Directory instances.This can help improve the security and governance of the access to the Snowflake accounts, as well as simplify the user management and provisioning3.

The other scenarios would not be most cost-effective with a multiple-account design strategy, because:

The company needs to share data between two databases, where one must support Payment Card Industry Data Security Standard (PCI DSS) compliance but the other one does not. This scenario can be handled within a single Snowflake account, by using secure views and secure UDFs to mask or filter the sensitive data, and applying the appropriate roles and privileges to the users who access the data.This can help achieve the PCI DSS compliance without incurring the additional costs of managing multiple accounts4.

The company needs to support different role-based access control features for the development, test, and production environments. This scenario can also be handled within a single Snowflake account, by using the native role-based access control (RBAC) features of Snowflake, such as roles, grants, and privileges, to define different access levels and permissions for each environment. This can help ensure the security and integrity of the data and the objects, as well as the separation of duties and responsibilities among the users.

The company must use a specific network policy for certain users to allow and block given IP addresses. This scenario can also be handled within a single Snowflake account, by using the network policy feature of Snowflake, which enables creating and applying network policies to restrict the IP addresses that can access the Snowflake account. This can help prevent unauthorized access and protect the data from malicious attacks.

Designing Your Snowflake Topology

Cross-Cloud Replication

Configuring Federated Authentication and SSO

Using Secure Views and Secure UDFs to Comply with PCI DSS

[Understanding Access Control in Snowflake]

[Network Policies]

The following table exists in the production database:

A regulatory requirement states that the company must mask the username for events that are older than six months based on the current date when the data is queried.

How can the requirement be met without duplicating the event data and making sure it is applied when creating views using the table or cloning the table?

A.
Use a masking policy on the username column using a entitlement table with valid dates.
A.
Use a masking policy on the username column using a entitlement table with valid dates.
Answers
B.
Use a row level policy on the user_events table using a entitlement table with valid dates.
B.
Use a row level policy on the user_events table using a entitlement table with valid dates.
Answers
C.
Use a masking policy on the username column with event_timestamp as a conditional column.
C.
Use a masking policy on the username column with event_timestamp as a conditional column.
Answers
D.
Use a secure view on the user_events table using a case statement on the username column.
D.
Use a secure view on the user_events table using a case statement on the username column.
Answers
Suggested answer: C

Explanation:

A masking policy is a feature of Snowflake that allows masking sensitive data in query results based on the role of the user and the condition of the data. A masking policy can be applied to a column in a table or a view, and it can use another column in the same table or view as a conditional column.A conditional column is a column that determines whether the masking policy is applied or not based on its value1.

In this case, the requirement can be met by using a masking policy on the username column with event_timestamp as a conditional column. The masking policy can use a function that masks the username if the event_timestamp is older than six months based on the current date, and returns the original username otherwise.The masking policy can be applied to the user_events table, and it will also be applied when creating views using the table or cloning the table2.

The other options are not correct because:

A) Using a masking policy on the username column using an entitlement table with valid dates would require creating another table that stores the valid dates for each username, and joining it with the user_events table in the masking policy function. This would add complexity and overhead to the masking policy, and it would not use the event_timestamp column as the condition for masking.

B) Using a row level policy on the user_events table using an entitlement table with valid dates would require creating another table that stores the valid dates for each username, and joining it with the user_events table in the row access policy function. This would filter out the rows that have event_timestamp older than six months based on the valid dates, instead of masking the username column. This would not meet the requirement of masking the username, and it would also reduce the visibility of the event data.

D) Using a secure view on the user_events table using a case statement on the username column would require creating a view that uses a case expression to mask the username column based on the event_timestamp column. This would meet the requirement of masking the username, but it would not be applied when cloning the table. A secure view is a view that prevents the underlying data from being exposed by queries on the view.However, a secure view does not prevent the underlying data from being exposed by cloning the table3.

1:Masking Policies | Snowflake Documentation

2: Using Conditional Columns in Masking Policies | Snowflake Documentation

3: Secure Views | Snowflake Documentation

What Snowflake system functions are used to view and or monitor the clustering metadata for a table? (Select TWO).

A.
SYSTEMSCLUSTERING
A.
SYSTEMSCLUSTERING
Answers
B.
SYSTEMSTABLE_CLUSTERING
B.
SYSTEMSTABLE_CLUSTERING
Answers
C.
SYSTEMSCLUSTERING_DEPTH
C.
SYSTEMSCLUSTERING_DEPTH
Answers
D.
SYSTEMSCLUSTERING_RATIO
D.
SYSTEMSCLUSTERING_RATIO
Answers
E.
SYSTEMSCLUSTERING_INFORMATION
E.
SYSTEMSCLUSTERING_INFORMATION
Answers
Suggested answer: C, E

Explanation:

The Snowflake system functions used to view and monitor the clustering metadata for a table are:

SYSTEM$CLUSTERING_INFORMATION

SYSTEM$CLUSTERING_DEPTH

Comprehensive But Short Explanation:

The SYSTEM$CLUSTERING_INFORMATION function in Snowflake returns a variety of clustering information for a specified table. This information includes the average clustering depth, total number of micro-partitions, total constant partition count, average overlaps, average depth, and a partition depth histogram. This function allows you to specify either one or multiple columns for which the clustering information is returned, and it returns this data in JSON format.

The SYSTEM$CLUSTERING_DEPTH function computes the average depth of a table based on specified columns or the clustering key defined for the table. A lower average depth indicates that the table is better clustered with respect to the specified columns. This function also allows specifying columns to calculate the depth, and the values need to be enclosed in single quotes.

SYSTEM$CLUSTERING_INFORMATION: Snowflake Documentation

SYSTEM$CLUSTERING_DEPTH: Snowflake Documentation

What is a characteristic of event notifications in Snowpipe?

A.
The load history is stored In the metadata of the target table.
A.
The load history is stored In the metadata of the target table.
Answers
B.
Notifications identify the cloud storage event and the actual data in the files.
B.
Notifications identify the cloud storage event and the actual data in the files.
Answers
C.
Snowflake can process all older notifications when a paused pipe Is resumed.
C.
Snowflake can process all older notifications when a paused pipe Is resumed.
Answers
D.
When a pipe Is paused, event messages received for the pipe enter a limited retention period.
D.
When a pipe Is paused, event messages received for the pipe enter a limited retention period.
Answers
Suggested answer: D

Explanation:

Event notifications in Snowpipe are messages sent by cloud storage providers to notify Snowflake of new or modified files in a stage. Snowpipe uses these notifications to trigger data loading from the stage to the target table. When a pipe is paused, event messages received for the pipe enter a limited retention period, which varies depending on the cloud storage provider. If the pipe is not resumed within the retention period, the event messages will be discarded and the data will not be loaded automatically. To load the data, the pipe must be resumed and the COPY command must be executed manually. This is a characteristic of event notifications in Snowpipe that distinguishes them from other options.Reference:Snowflake Documentation: Using Snowpipe,Snowflake Documentation: Pausing and Resuming a Pipe

An Architect needs to design a Snowflake account and database strategy to store and analyze large amounts of structured and semi-structured data. There are many business units and departments within the company. The requirements are scalability, security, and cost efficiency.

What design should be used?

A.
Create a single Snowflake account and database for all data storage and analysis needs, regardless of data volume or complexity.
A.
Create a single Snowflake account and database for all data storage and analysis needs, regardless of data volume or complexity.
Answers
B.
Set up separate Snowflake accounts and databases for each department or business unit, to ensure data isolation and security.
B.
Set up separate Snowflake accounts and databases for each department or business unit, to ensure data isolation and security.
Answers
C.
Use Snowflake's data lake functionality to store and analyze all data in a central location, without the need for structured schemas or indexes
C.
Use Snowflake's data lake functionality to store and analyze all data in a central location, without the need for structured schemas or indexes
Answers
D.
Use a centralized Snowflake database for core business data, and use separate databases for departmental or project-specific data.
D.
Use a centralized Snowflake database for core business data, and use separate databases for departmental or project-specific data.
Answers
Suggested answer: D

Explanation:

The best design to store and analyze large amounts of structured and semi-structured data for different business units and departments is to use a centralized Snowflake database for core business data, and use separate databases for departmental or project-specific data. This design allows for scalability, security, and cost efficiency by leveraging Snowflake's features such as:

Database cloning:Cloning a database creates a zero-copy clone that shares the same data files as the original database, but can be modified independently. This reduces storage costs and enables fast and consistent data replication for different purposes.

Database sharing:Sharing a database allows granting secure and governed access to a subset of data in a database to other Snowflake accounts or consumers. This enables data collaboration and monetization across different business units or external partners.

Warehouse scaling:Scaling a warehouse allows adjusting the size and concurrency of a warehouse to match the performance and cost requirements of different workloads. This enables optimal resource utilization and flexibility for different data analysis needs.Reference:Snowflake Documentation: Database Cloning,Snowflake Documentation: Database Sharing, [Snowflake Documentation: Warehouse Scaling]

How can the Snowpipe REST API be used to keep a log of data load history?

A.
Call insertReport every 20 minutes, fetching the last 10,000 entries.
A.
Call insertReport every 20 minutes, fetching the last 10,000 entries.
Answers
B.
Call loadHistoryScan every minute for the maximum time range.
B.
Call loadHistoryScan every minute for the maximum time range.
Answers
C.
Call insertReport every 8 minutes for a 10-minute time range.
C.
Call insertReport every 8 minutes for a 10-minute time range.
Answers
D.
Call loadHistoryScan every 10 minutes for a 15-minutes range.
D.
Call loadHistoryScan every 10 minutes for a 15-minutes range.
Answers
Suggested answer: D

Explanation:

The Snowpipe REST API provides two endpoints for retrieving the data load history: insertReport and loadHistoryScan. The insertReport endpoint returns the status of the files that were submitted to the insertFiles endpoint, while the loadHistoryScan endpoint returns the history of the files that were actually loaded into the table by Snowpipe. To keep a log of data load history, it is recommended to use the loadHistoryScan endpoint, which provides more accurate and complete information about the data ingestion process. The loadHistoryScan endpoint accepts a start time and an end time as parameters, and returns the files that were loaded within that time range. The maximum time range that can be specified is 15 minutes, and the maximum number of files that can be returned is 10,000. Therefore, to keep a log of data load history, the best option is to call the loadHistoryScan endpoint every 10 minutes for a 15-minute time range, and store the results in a log file or a table. This way, the log will capture all the files that were loaded by Snowpipe, and avoid any gaps or overlaps in the time range. The other options are incorrect because:

Calling insertReport every 20 minutes, fetching the last 10,000 entries, will not provide a complete log of data load history, as some files may be missed or duplicated due to the asynchronous nature of Snowpipe. Moreover, insertReport only returns the status of the files that were submitted, not the files that were loaded.

Calling loadHistoryScan every minute for the maximum time range will result in too many API calls and unnecessary overhead, as the same files will be returned multiple times. Moreover, the maximum time range is 15 minutes, not 1 minute.

Calling insertReport every 8 minutes for a 10-minute time range will suffer from the same problems as option A, and also create gaps or overlaps in the time range.

Snowpipe REST API

Option 1: Loading Data Using the Snowpipe REST API

PIPE_USAGE_HISTORY

Database DB1 has schema S1 which has one table, T1.

DB1 --> S1 --> T1

The retention period of EG1 is set to 10 days.

The retention period of s: is set to 20 days.

The retention period of t: Is set to 30 days.

The user runs the following command:

Drop Database DB1;

What will the Time Travel retention period be for T1?

A.
10 days
A.
10 days
Answers
B.
20 days
B.
20 days
Answers
C.
30 days
C.
30 days
Answers
D.
37 days
D.
37 days
Answers
Suggested answer: C

Explanation:

The Time Travel retention period for T1 will be 30 days, which is the retention period set at the table level. The Time Travel retention period determines how long the historical data is preserved and accessible for an object after it is modified or dropped. The Time Travel retention period can be set at the account level, the database level, the schema level, or the table level. The retention period set at the lowest level of the hierarchy takes precedence over the higher levels. Therefore, the retention period set at the table level overrides the retention periods set at the schema level, the database level, or the account level. When the user drops the database DB1, the table T1 is also dropped, but the historical data is still preserved for 30 days, which is the retention period set at the table level. The user can use the UNDROP command to restore the table T1 within the 30-day period. The other options are incorrect because:

10 days is the retention period set at the database level, which is overridden by the table level.

20 days is the retention period set at the schema level, which is also overridden by the table level.

37 days is not a valid option, as it is not the retention period set at any level.

Understanding & Using Time Travel

AT | BEFORE

Snowflake Time Travel & Fail-safe

A global company needs to securely share its sales and Inventory data with a vendor using a Snowflake account.

The company has its Snowflake account In the AWS eu-west 2 Europe (London) region. The vendor's Snowflake account Is on the Azure platform in the West Europe region. How should the company's Architect configure the data share?

A.
1. Create a share. 2. Add objects to the share. 3. Add a consumer account to the share for the vendor to access.
A.
1. Create a share. 2. Add objects to the share. 3. Add a consumer account to the share for the vendor to access.
Answers
B.
1. Create a share. 2. Create a reader account for the vendor to use. 3. Add the reader account to the share.
B.
1. Create a share. 2. Create a reader account for the vendor to use. 3. Add the reader account to the share.
Answers
C.
1. Create a new role called db_share. 2. Grant the db_share role privileges to read data from the company database and schema. 3. Create a user for the vendor. 4. Grant the ds_share role to the vendor's users.
C.
1. Create a new role called db_share. 2. Grant the db_share role privileges to read data from the company database and schema. 3. Create a user for the vendor. 4. Grant the ds_share role to the vendor's users.
Answers
D.
1. Promote an existing database in the company's local account to primary. 2. Replicate the database to Snowflake on Azure in the West-Europe region. 3. Create a share and add objects to the share. 4. Add a consumer account to the share for the vendor to access.
D.
1. Promote an existing database in the company's local account to primary. 2. Replicate the database to Snowflake on Azure in the West-Europe region. 3. Create a share and add objects to the share. 4. Add a consumer account to the share for the vendor to access.
Answers
Suggested answer: A

Explanation:

The correct way to securely share data with a vendor using a Snowflake account on a different cloud platform and region is to create a share, add objects to the share, and add a consumer account to the share for the vendor to access. This way, the company can control what data is shared, who can access it, and how long the share is valid. The vendor can then query the shared data without copying or moving it to their own account. The other options are either incorrect or inefficient, as they involve creating unnecessary reader accounts, users, roles, or database replication.

https://learn.snowflake.com/en/certifications/snowpro-advanced-architect/

A company wants to Integrate its main enterprise identity provider with federated authentication with Snowflake.

The authentication integration has been configured and roles have been created in Snowflake. However, the users are not automatically appearing in Snowflake when created and their group membership is not reflected in their assigned rotes.

How can the missing functionality be enabled with the LEAST amount of operational overhead?

A.
OAuth must be configured between the identity provider and Snowflake. Then the authorization server must be configured with the right mapping of users and roles.
A.
OAuth must be configured between the identity provider and Snowflake. Then the authorization server must be configured with the right mapping of users and roles.
Answers
B.
OAuth must be configured between the identity provider and Snowflake. Then the authorization server must be configured with the right mapping of users, and the resource server must be configured with the right mapping of role assignment.
B.
OAuth must be configured between the identity provider and Snowflake. Then the authorization server must be configured with the right mapping of users, and the resource server must be configured with the right mapping of role assignment.
Answers
C.
SCIM must be enabled between the identity provider and Snowflake. Once both are synchronized through SCIM, their groups will get created as group accounts in Snowflake and the proper roles can be granted.
C.
SCIM must be enabled between the identity provider and Snowflake. Once both are synchronized through SCIM, their groups will get created as group accounts in Snowflake and the proper roles can be granted.
Answers
D.
SCIM must be enabled between the identity provider and Snowflake. Once both are synchronized through SCIM. users will automatically get created and their group membership will be reflected as roles In Snowflake.
D.
SCIM must be enabled between the identity provider and Snowflake. Once both are synchronized through SCIM. users will automatically get created and their group membership will be reflected as roles In Snowflake.
Answers
Suggested answer: D

Explanation:

The best way to integrate an enterprise identity provider with federated authentication and enable automatic user creation and role assignment in Snowflake is to use SCIM (System for Cross-domain Identity Management). SCIM allows Snowflake to synchronize with the identity provider and create users and groups based on the information provided by the identity provider. The groups are mapped to roles in Snowflake, and the users are assigned the roles based on their group membership. This way, the identity provider remains the source of truth for user and group management, and Snowflake automatically reflects the changes without manual intervention. The other options are either incorrect or incomplete, as they involve using OAuth, which is a protocol for authorization, not authentication or user provisioning, and require additional configuration of authorization and resource servers.

Total 162 questions
Go to page: of 17