ADA-C01 Question 242
Single answer3.3 Given a scenario, stage data in Snowflake.A data engineering team needs to load daily CSV files from an Amazon S3 bucket into Snowflake. The files contain sensitive customer data, and the security team requires that Snowflake authenticate to S3 without storing long-term AWS access keys in Snowflake. The team also wants a reusable stage object so multiple COPY INTO commands can reference the same location and file format. Which approach should the Snowflake administrator implement?
- A
Create an external stage that uses a STORAGE INTEGRATION linked to the S3 bucket, and reference a named FILE FORMAT in the stage definition.
- B
Create an internal named stage and configure it with AWS IAM role details so Snowflake can read directly from S3 without credentials.
- C
Create an external stage with embedded AWS_KEY_ID and AWS_SECRET_KEY credentials, and define the CSV parsing options directly in each COPY INTO statement.
- D
Create a temporary stage in the target schema and use GET to pull files from S3 into the stage before loading them with COPY INTO.
Show answer and explanation
Correct answer: A
Explanation
This scenario is testing practical stage design for secure and reusable data loading from cloud storage. In Snowflake, data in Amazon S3 is accessed through an external stage. When security requirements prohibit storing long-term AWS keys in Snowflake, a STORAGE INTEGRATION is the best practice because it delegates trust through a cloud IAM relationship rather than embedding static credentials. A named stage also supports reuse across many COPY INTO commands, and associating a named FILE FORMAT with the stage standardizes CSV parsing behavior. Key distinctions that candidates should know: internal stages are for data stored in Snowflake-managed storage, while external stages reference cloud storage locations such as S3; PUT uploads local files to an internal stage, and GET downloads files from a Snowflake stage to a client. Snowflake documentation for CREATE STAGE, storage integrations, and data loading best practices supports this approach.
- A. Correct.
Correct. For Amazon S3, the recommended Snowflake approach is to use an external stage backed by a STORAGE INTEGRATION. This avoids embedding long-term cloud credentials in Snowflake objects and supports centralized, reusable access to the external location. Including a named FILE FORMAT in the stage definition also improves reusability because multiple COPY INTO commands can reference the same stage and inherit consistent parsing behavior.
- B. Incorrect.
Incorrect. Internal named stages store data inside Snowflake-managed storage; they are not configured to directly read from S3. To access files in S3, Snowflake uses an external stage, not an internal stage. This option mixes concepts from internal and external staging.
- C. Incorrect.
Incorrect. While external stages can be created with explicit cloud credentials, this does not satisfy the requirement to avoid storing long-term AWS access keys in Snowflake. It also reduces maintainability by repeating file format settings in every COPY INTO command instead of defining a reusable named file format or stage-level file format.
- D. Incorrect.
Incorrect. Temporary stages are Snowflake stages, not direct connectors to S3. In addition, GET downloads files from a Snowflake stage to a local client; it does not pull files from S3 into Snowflake. To upload local files into an internal stage, PUT is used, but that still would not meet the requirement for direct, reusable access to S3.