ADA-C01 Question 250
Single answerCreate and manage EXTERNAL_VOLUME with Iceberg tablesA data platform team is enabling Snowflake-managed Apache Iceberg tables for a finance domain. The table data and metadata must be stored in an Amazon S3 bucket owned by the company, and Snowflake should write to a dedicated path within that bucket. The security team requires the least-privilege design and wants to avoid embedding cloud credentials in DDL. The team has already created an IAM role in AWS for Snowflake access. Which action should the Snowflake administrator take to correctly create and manage the storage object required for these Iceberg tables?
- A
Create an EXTERNAL VOLUME that specifies STORAGE_LOCATIONS with the S3 base URL, STORAGE_PROVIDER = 'S3', and the AWS IAM role ARN; then use that external volume when creating the Iceberg table.
- B
Create an EXTERNAL STAGE that points to the S3 path and reference the stage in CREATE ICEBERG TABLE, because Iceberg tables use stages for Snowflake-managed storage.
- C
Create a STORAGE INTEGRATION for S3 and assign it directly in CREATE ICEBERG TABLE; an external volume is optional when the bucket is in the same AWS account.
- D
Create a FILE FORMAT for Parquet and attach it to the bucket location; Snowflake will automatically provision the required external volume for Iceberg metadata.
Show answer and explanation
Correct answer: A
Explanation
The correct object for Snowflake-managed Iceberg tables that store data in external cloud storage is EXTERNAL VOLUME. In practice, administrators create the external volume with the appropriate cloud provider settings and a restricted base location, then reference it in CREATE ICEBERG TABLE. This aligns with best practices: use a dedicated path, grant only the required cloud permissions, and avoid embedding credentials directly in SQL definitions. In AWS scenarios, this commonly involves configuring an IAM role for Snowflake access and using that role in the external volume configuration. By contrast, EXTERNAL STAGE and STORAGE INTEGRATION are used for other external storage workflows and do not replace EXTERNAL VOLUME for Snowflake-managed Iceberg table storage. See Snowflake documentation for CREATE EXTERNAL VOLUME and Snowflake-managed Iceberg tables.
- A. Correct.
Correct. For Snowflake-managed Iceberg tables that store data and metadata in external cloud storage, Snowflake uses an EXTERNAL VOLUME object. On Amazon S3, the external volume definition includes one or more STORAGE_LOCATIONS with STORAGE_PROVIDER = S3, a STORAGE_BASE_URL for the bucket or prefix, and the AWS identity details Snowflake uses to access the location, such as the IAM role ARN. This design avoids hardcoding credentials in table DDL and supports least-privilege access to a specific path. The external volume is then referenced when creating the Iceberg table.
- B. Incorrect.
Incorrect. An EXTERNAL STAGE is used for accessing files in cloud storage for loading, unloading, or querying staged files, but it is not the storage object Snowflake-managed Iceberg tables require for their managed external storage location. Candidates may confuse stages with external volumes because both reference cloud paths, but Iceberg table storage management uses EXTERNAL VOLUME, not a stage.
- C. Incorrect.
Incorrect. A STORAGE INTEGRATION is used with stages and related external access patterns, but Snowflake-managed Iceberg tables require an EXTERNAL VOLUME to define where table data and metadata reside in cloud storage. The external volume is not optional simply because the bucket is in the same AWS account. The misconception here is assuming storage integration is interchangeable with external volume for Iceberg storage management.
- D. Incorrect.
Incorrect. A file format defines how Snowflake interprets or writes file contents, such as CSV, JSON, or Parquet, but it does not provision or replace the storage configuration object required by Snowflake-managed Iceberg tables. Iceberg metadata and storage location management are handled through the external volume, not through file format settings.