Skip to main content

ARA-C01 Real Exam Questions

SnowPro Advanced: Architect Certification (ARA-C01)

65 questions available · Page 1 of 7

Updated Exam DumpsVerified AnswersPass Guarantee

Get Complete Exam Dumps
Question 1 Single choice

A large manufacturing company runs a dozen individual Snowflake accounts across its business divisions.
The company wants to increase the level of data sharing to support supply chain optimizations and increase its purchasing leverage with multiple vendors.

The company's Snowflake Architects need to design a solution that would allow the business divisions to decide what to share, while minimizing the level of effort spent on configuration and management. Most of the company divisions use Snowflake accounts in the same cloud deployments with a few exceptions for European-based divisions.

According to Snowflake recommended best practice, how should these requirements be met?

  1. A

    Migrate the European accounts in the global region and manage shares in a connected graph architecture. Deploy a Data Exchange.

  2. B

    Deploy a Private Data Exchange in combination with data shares for the European accounts.

  3. C

    Deploy to the Snowflake Marketplace making sure that invoker_share() is used in all secure views.

  4. D

    Deploy a Private Data Exchange and use replication to allow European data shares in the Exchange.

Show answer and explanation

Correct answer: B

Explanation

Explanation: According to Snowflake recommended best practice, the requirements of the large manufacturing company should be met by deploying a Private Data Exchange in combination with data shares for the European accounts. A Private Data Exchange is a feature of the Snowflake Data Cloud platform that enables secure and governed sharing of data between organizations. It allows Snowflake customers to create their own data hub and invite other parts of their organization or external partners to access and contribute data sets. A Private Data Exchange provides centralized management, granular access control, and data usage metrics for the data shared in the exchange 1. A data share is a secure and direct way of sharing data between Snowflake accounts without having to copy or move the data. A data share allows the data provider to grant privileges on selected objects in their account to one or more data consumers in other accounts 2. By using a Private Data Exchange in combination with data shares, the company can achieve the following benefits: The business divisions can decide what data to share and publish it to the Private Data Exchange, where it can be discovered and accessed by other members of the exchange. This reduces the effort and complexity of managing multiple data sharing relationships and configurations.
The company can leverage the existing Snowflake accounts in the same cloud deployments to create the Private Data Exchange and invite the members to join. This minimizes the migration and setup costs and leverages the existing Snowflake features and security.
The company can use data shares to share data with the European accounts that are in different regions or cloud platforms. This allows the company to comply with the regional and regulatory requirements for data sovereignty and privacy, while still enabling data collaboration across the organization. The company can use the Snowflake Data Cloud platform to perform data analysis and transformation on the shared data, as well as integrate with other data sources and applications. This enables the company to optimize its supply chain and increase its purchasing leverage with multiple vendors. The other options are incorrect because they do not meet the requirements or follow the best practices.
Option A is incorrect because migrating the European accounts to the global region may violate the data sovereignty and privacy regulations, and deploying a Data Exchange may not provide the level of control and management that the company needs.
Option C is incorrect because deploying to the Snowflake Marketplace may expose the company's data to unwanted consumers, and using invoker_share() in secure views may not provide the desired level of security and governance.
Option D is incorrect because using replication to allow European data shares in the Exchange may incur additional costs and complexity, and may not be necessary if data shares can be used instead.
References:
Private Data Exchange | Snowflake
Documentation, Introduction to Secure Data Sharing | Snowflake Documentation

Question 2 Single choice

At which object type level can the APPLY MASKING POLICY, APPLY ROW ACCESS POLICY and APPLY SESSION POLICY privileges be granted?

  1. A

    Global

  2. B

    Database

  3. C

    Schema

  4. D

    Table

Show answer and explanation

Correct answer: A

Explanation

Explanation: The object type level at which the APPLY MASKING POLICY, APPLY ROW ACCESS POLICY and APPLY SESSION POLICY privileges can be granted is global. These are account-level privileges that control who can apply or unset these policies on objects such as columns, tables, views, accounts, or users. These privileges are granted to the ACCOUNTADMIN role by default, and can be granted to other roles as needed. The other options are incorrect because they are not the object type level at which these privileges can be granted. Database, schema, and table are lower-level object types
that do notsupport these privileges.
References:
Access Control Privileges | Snowflake Documentation,
Using Dynamic Data Masking | Snowflake Documentation, Using Row Access Policies | Snowflake
Documentation, Using Session Policies | Snowflake Documentation

Question 3 Single choice

The IT Security team has identified that there is an ongoing credential stuffing attack on many of their organization's system.

What is the BEST way to find recent and ongoing login attempts to Snowflake?

  1. A

    Call the LOGIN_HISTORY Information Schema table function.

  2. B

    Query the LOGIN_HISTORY view in the ACCOUNT_USAGE schema in the SNOWFLAKE database.

  3. C

    View the History tab in the Snowflake UI and set up a filter for SQL text that contains the text "LOGIN".

  4. D

    View the Users section in the Account tab in the Snowflake UI and review the last login column.

Show answer and explanation

Correct answer: B

Explanation

Explanation: This view can be used to query login attempts by Snowflake users within the last 365 days (1 year). It provides information such as the event timestamp, the user name, the client IP, the authentication method, the success or failure status, and the error code or message if the login attempt was unsuccessful. By querying this view, the IT Security team can identify any suspicious or malicious login attempts to Snowflake and take appropriate actions to prevent credential stuffing attacks 1. The other

options are not the best ways to find recent and ongoing login attempts to Snowflake. Option A is incorrect because the LOGIN_HISTORY Information Schema table function only returns login events within the last 7 days, which may not be sufficient to detect credential stuffing attacks that span a longer period of time 2.
Option C is incorrect because the History tab in the Snowflake UI only shows the queries executed by the current user or role, not the login events of other users or roles 3.
Option D is incorrect because the Users section in the Account tab in the Snowflake UI only shows the last login time for each user, not the details of the login attempts or the failures.

Question 4 Single choice

A table contains five columns and it has millions of records. The cardinality distribution of the columns is shown below:

Column C4 and C5 are mostly used by SELECT queries in the GROUP BY and ORDER BY clauses.
Whereas columns C1, C2 and C3 are heavily used in filter and join conditions of SELECT queries.

The Architect must design a clustering key for this table to improve the query performance.

Based on Snowflake recommendations, how should the clustering key columns be ordered while defining the multi-column clustering key?

  1. A

    C5, C4, C2

  2. B

    C3, C4, C5

  3. C

    C1, C3, C2

  4. D

    C2, C1, C3

Show answer and explanation

Correct answer: C

Explanation

Explanation: According to the Snowflake documentation, the following are some considerations for choosing clustering for a table1: Clustering is optimal when either: Clustering is most effective when the clustering key is used in the following types of query predicates: Clustering is less effective when the clustering key is not used in any of the above query predicates, or when the clustering key is used in a predicate that requires a function or expression to be applied to the
key (e.g. DATE_TRUNC, TO_CHAR, etc.).
For most tables, Snowflake recommends a maximum of 3 or 4 columns (or expressions) per key. Adding more than 3-4 columns tends to increase costs more than benefits.
Based on these considerations, the best option for the clustering key columns is C. C1, C3, C2, because: These columns are heavily used in filter and join conditions of SELECT queries, which are the most effective types of predicates for clustering. These columns have high cardinality, which means they have many distinct values and can help reduce the clustering skew and improve the compression ratio. These columns are likely to be correlated with each other, which means they can help co-locate similar rows in the same micro-partitions and improve the scan efficiency.
These columns do not require any functions or expressions to be applied to them, which means they can be directly used in the predicates without affecting the clustering.
References:
1: Considerations for Choosing Clustering for a Table | Snowflake Documentation

Question 5 Multiple choice

Which of the following are characteristics of how row access policies can be applied to external tables? (Choose three.)

  1. A

    An external table can be created with a row access policy, and the policy can be applied to the VALUE column.

  2. B

    A row access policy can be applied to the VALUE column of an existing external table.

  3. C

    A row access policy cannot be directly added to a virtual column of an external table.

  4. D

    External tables are supported as mapping tables in a row access policy.

  5. E

    While cloning a database, both the row access policy and the external table will be cloned.

  6. F

    A row access policy cannot be applied to a view created on top of an external table.

Show answer and explanation

Correct answers: A, B, C

Explanation

Explanation: These three statements are true according to the Snowflake documentation and the web search results. A row access policy is a feature that allows filtering rows based on user-defined conditions.
A row access policy can be applied to an external table, which is a table that reads data from external files in a stage. However, there are some limitations and considerations for using row access policies with external tables. An external table can be created with a row access policy by using the WITH ROW ACCESS POLICY clause in the CREATE EXTERNAL TABLE statement. The policy can be applied to the VALUE column, which is the column that contains the raw data from the external files in a VARIANT data type 1. A row access policy can also be applied to the VALUE column of an existing external table by using the ALTER TABLE statement with the SET ROW ACCESS POLICY clause 2.
A row access policy cannot be directly added to a virtual column of an external table. A virtual column is a column that is derived from the VALUE column using an expression. To apply a row access policy to a virtual column, the policy must be applied to the VALUE column and the expression must be repeated in the policy definition 3.
External tables are not supported as mapping tables in a row access policy. A mapping table is a table that is used to determine the access rights of users or roles based on some criteria. Snowflake does not support using an external table as a mapping table because it may cause performance issues or errors 4.
While cloning a database, Snowflake clones the row access policy, but not the external table. Therefore, the policy in the cloned database refers to a table that is not present in the cloned database. To avoid this issue, the external table must be manually cloned or recreated in the cloned database 4. A row access policy can be applied to a view created on top of an external table. The policy can be applied to the view itself or to the underlying external table. However, if the policy is applied to the view, the view must be a secure view, which is a view that hides the underlying data and the view definition from unauthorized users 5.
References:
CREATE EXTERNAL TABLE | Snowflake Documentation
ALTER EXTERNAL TABLE | Snowflake Documentation
Understanding Row Access Policies | Snowflake Documentation Snowflake Data Governance: Row
Access Policy Overview Secure Views | Snowflake Documentation

Question 6 Multiple choice

Following objects can be cloned in snowflake: (Choose three.)

  1. A

    Permanent table

  2. B

    Transient table

  3. C

    Temporary table

  4. D

    External tables

  5. E

    Internal stages

Show answer and explanation

Correct answers: A, B, D

Explanation

Snowflake supports cloning of various objects, such as databases, schemas, tables, stages, file formats, sequences, streams, tasks, and roles. Cloning creates a copy of an existing object in the system without copying the data or metadata. Cloning is also known as zero-copy cloning 1. Among the objects listed in the question, the following ones can be cloned in Snowflake:

The following objects listed in the question cannot be cloned in Snowflake:
References:
: Cloning Considerations : CREATE TABLE ... CLONE : CREATE EXTERNAL TABLE ...
CLONE : Temporary Tables : Internal Stages

Question 7 Multiple choice

Which steps are recommended best practices for prioritizing cluster keys in Snowflake? (Choose two.)

  1. A

    Choose columns that are frequently used in join predicates.

  2. B

    Choose lower cardinality columns to support clustering keys and cost effectiveness.

  3. C

    Choose TIMESTAMP columns with nanoseconds for the highest number of unique rows.

  4. D

    Choose cluster columns that are most actively used in selective filters.

  5. E

    Choose cluster columns that are actively used in the GROUP BY clauses.

Show answer and explanation

Correct answers: A, D

Explanation

Explanation: According to the Snowflake documentation, the best practices for choosing clustering keys
are:
Choose columns that are frequently used in join predicates. This can improve the join performance by reducing the number of micro-partitions that need to be scanned and joined.
Choose columns that are most actively used in selective filters. This can improve the scan efficiency by skipping micro-partitions that do not match the filter predicates.
Avoid using low cardinality columns, such as gender or country, as clustering keys. This can result in poor clustering and high maintenance costs. Avoid using TIMESTAMP columns with nanoseconds, as they tend to have very high cardinality and low correlation with other columns. This can also result in poor clustering and high maintenance costs.
Avoid using columns with duplicate values or NULLs, as they can cause skew in the clustering and reduce the benefits of pruning. Cluster on multiple columns if the queries use multiple filters or join predicates.
This can increase the chances of pruning more micro-partitions and improve the compression ratio.
Clustering is not always useful, especially for small or medium-sized tables, or tables that are not frequently queried or updated. Clustering can incur additional costs for initially clustering the data and maintaining the clustering over time.
References:
Clustering Keys & Clustered Tables | Snowflake Documentation [Considerations for Choosing Clustering
for a Table | Snowflake Documentation]

Question 8 Multiple choice

An Architect needs to allow a user to create a database from an inbound share.

To meet this requirement, the user's role must have which privileges? (Choose two.)

  1. A

    IMPORT SHARE;

  2. B

    IMPORT PRIVILEGES;

  3. C

    CREATE DATABASE;

  4. D

    CREATE SHARE;

  5. E

    IMPORT DATABASE;

Show answer and explanation

Correct answers: C, E

Explanation

Explanation: According to the Snowflake documentation, to create a database from an inbound share, the user's role must have the following privileges: The CREATE DATABASE privilege on the current account. This privilege allows the user to create a new database in the account 1. The IMPORT DATABASE privilege on the share. This privilege allows the user to import a database from the share into the account 2. The other privileges listed are not relevant for this requirement. The IMPORT SHARE privilege is used to import a share into the account, not a database 3.
The IMPORT PRIVILEGES privilege is used to import the privileges granted on the shared objects, not the objects themselves 2. The CREATE SHARE privilege is used to create a share to provide data to other accounts, not to consume data from other accounts 4.
References:
CREATE DATABASE | Snowflake Documentation
Importing Data from a Share | Snowflake Documentation Importing a Share | Snowflake Documentation
CREATE SHARE | Snowflake Documentation

Question 9 Multiple choice

A company's daily Snowflake workload consists of a huge number of concurrent queries triggered between 9pm and 11pm. At the individual level, these queries are smaller statements that get completed within a short time period.

What configuration can the company's Architect implement to enhance the performance of this workload? (Choose two.)

  1. A

    Enable a multi-clustered virtual warehouse in maximized mode during the workload duration.

  2. B

    Set the MAX_CONCURRENCY_LEVEL to a higher value than its default value of 8 at the virtual warehouse level.

  3. C

    Increase the size of the virtual warehouse to size X-Large.

  4. D

    Reduce the amount of data that is being processed through this workload.

  5. E

    Set the connection timeout to a higher value than its default.

Show answer and explanation

Correct answers: A, B

Explanation

Explanation: These two configuration options can enhance the performance of the workload that consists of a huge number of concurrent queries that are smaller and faster. Enabling a multi-clustered virtual warehouse in maximized mode allows the warehouse to scale out automatically by adding more clusters as soon as the current cluster is fully loaded, regardless of the number of queries in the queue. This can improve the concurrency and throughput of the workload by minimizing or preventing queuing. The maximized mode is suitable for workloads that require high performance and low latency, and are less sensitive to credit consumption 1. Setting the MAX_CONCURRENCY_LEVEL to a higher value than its default value of 8 at the virtual warehouse level allows the warehouse to run more queries concurrently on

each cluster. This can improve the utilization and efficiency of the warehouse resources, especially for smaller and faster queries that do not require a lot of processing power. The MAX_CONCURRENCY_LEVEL parameter can be set when creating or modifying a warehouse, and it can be changed at any time 2.
References:
Snowflake Documentation: Scaling Policy for Multi-cluster Warehouses Snowflake Documentation: MAX_CONCURRENCY_LEVEL

Question 10 Single choice

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?

  1. A

    USAGE on database hr_db, USAGE on all schemas in database hr_db, SELECT on all tables in database hr_db

  2. B

    USAGE on database hr_db, SELECT on all schemas in database hr_db, SELECT on all tables in database hr_db

  3. C

    MODIFY on database hr_db, USAGE on all schemas in database hr_db, USAGE on all tables in database hr_db

  4. D

    USAGE on database hr_db, USAGE on all schemas in database hr_db, REFERENCES on all tables in database hr_db

Show answer and explanation

Correct 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:
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.
References:
: (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)