ADA-C01 Question 237
Single answerCreate and manage iceberg tablesA data engineering team wants to create a Snowflake-managed Apache Iceberg™ table for clickstream data so that the table data and metadata are stored in the organization's external cloud storage, while Snowflake remains responsible for table maintenance and optimization. The administrator must ensure the table is created in a way that supports this requirement and avoids relying on unsupported DDL patterns. Which approach should the administrator use?
- A
Create a regular Snowflake table, then convert it to an Iceberg table with ALTER TABLE ... SET TYPE = ICEBERG and specify the external volume.
- B
Create an Iceberg table using CREATE ICEBERG TABLE ... EXTERNAL_VOLUME = <external_volume> CATALOG = 'SNOWFLAKE', and define the columns in the statement.
- C
Create an external table on the cloud storage location and enable automatic Iceberg metadata generation with AUTO_REFRESH = TRUE.
- D
Create an Iceberg table using CREATE ICEBERG TABLE ... CATALOG = 'REST', because Snowflake-managed Iceberg tables require a REST catalog for metadata operations.
Show answer and explanation
Correct answer: B
Explanation
The key requirement is to create a Snowflake-managed Iceberg table where Snowflake handles management tasks, but the table's data and metadata are stored in external object storage. In Snowflake, this is achieved by creating the table with CREATE ICEBERG TABLE, specifying an EXTERNAL_VOLUME, and setting CATALOG = 'SNOWFLAKE'. This distinguishes the table from externally managed Iceberg tables, which rely on external catalog integrations such as REST, AWS Glue, or similar supported catalog mechanisms. Administrators should also remember that Iceberg tables are created explicitly; they are not produced by converting existing native Snowflake tables or by using external table features. This aligns with Snowflake documentation on creating Snowflake-managed Iceberg tables and the role of external volumes in storing Iceberg data and metadata.
- A. Incorrect.
Incorrect. Snowflake does not support converting a standard native table into an Iceberg table by changing the table type with ALTER TABLE. Iceberg tables must be created explicitly as Iceberg tables. This distractor reflects a common misconception that table types are interchangeable after creation.
- B. Correct.
Correct. For a Snowflake-managed Iceberg table, Snowflake manages the table lifecycle and metadata, while data files and Iceberg metadata files are stored in cloud object storage referenced by an external volume. Using CREATE ICEBERG TABLE with EXTERNAL_VOLUME and CATALOG = 'SNOWFLAKE' is the appropriate pattern. Defining the schema during creation is also supported for this use case.
- C. Incorrect.
Incorrect. External tables and Iceberg tables are different objects with different capabilities and metadata models. An external table does not become an Iceberg table simply by pointing it at object storage or enabling refresh behavior. AUTO_REFRESH is related to metadata refresh for external tables, not creation of Snowflake-managed Iceberg tables.
- D. Incorrect.
Incorrect. A REST catalog is used for catalog integrations with externally managed Iceberg catalog services, not for Snowflake-managed Iceberg tables. If Snowflake is the catalog for the Iceberg table, the correct catalog setting is SNOWFLAKE, not REST.