COF-C03 Question 105
Single answerApache Iceberg™A data engineering team stores product catalog data as Apache Iceberg™ tables in external cloud storage. Analysts want to query this data in Snowflake without copying it into native Snowflake tables, and the engineering team wants Snowflake to use Iceberg table metadata to keep the table definition current. Which approach should the team use?
- A
Create an external table in Snowflake over the Parquet files and let Snowflake infer Iceberg snapshots automatically.
- B
Create a Snowflake-managed Iceberg table so Snowflake stores the data files in internal stages and manages metadata in external cloud storage.
- C
Create an externally managed Iceberg table in Snowflake and integrate it with a catalog that tracks the Iceberg metadata.
- D
Load the Iceberg data into a transient table and enable automatic synchronization with the Iceberg manifest files.
Show answer and explanation
Correct answer: C
Explanation
The best answer is to create an externally managed Iceberg table in Snowflake and connect it to the appropriate catalog metadata. This matches the scenario where data already exists as Apache Iceberg tables in external object storage and the organization wants Snowflake to query that data without ingesting it into standard Snowflake tables. In Snowflake, Iceberg support distinguishes between Snowflake-managed and externally managed Iceberg tables. Externally managed Iceberg tables are appropriate when another system or catalog is the source of truth for the Iceberg metadata. By contrast, external tables over raw files do not provide Iceberg-native table semantics, and loading into transient or permanent native tables would require copying data. This aligns with Snowflake guidance that Iceberg tables use Iceberg metadata and catalogs rather than simple file inference.
- A. Incorrect.
Incorrect. External tables in Snowflake can query data in external stages, but they do not use Apache Iceberg table metadata as the governing table metadata layer. Iceberg tables rely on snapshots, manifests, and metadata files managed through an Iceberg catalog. Treating the data as a generic external table would miss the requirement to keep the table definition aligned through Iceberg metadata management.
- B. Incorrect.
Incorrect. A Snowflake-managed Iceberg table is managed by Snowflake, but this option contradicts the scenario in two ways: the team already stores the data as Iceberg tables in external cloud storage, and they want Snowflake to use the existing Iceberg metadata rather than move to a Snowflake-managed arrangement. Snowflake-managed Iceberg tables are not the best fit when the source-of-truth metadata is already maintained externally.
- C. Correct.
Correct. Externally managed Iceberg tables are designed for this scenario: the data remains in external cloud storage, and Snowflake reads table state using Iceberg metadata maintained outside Snowflake through a supported catalog or catalog integration. This allows analysts to query the data in Snowflake without copying it into native Snowflake storage while preserving the existing Iceberg table management pattern.
- D. Incorrect.
Incorrect. Loading data into a transient table copies the data into Snowflake-managed storage, which violates the requirement to avoid copying it into native Snowflake tables. In addition, transient tables do not automatically synchronize with Iceberg manifest or snapshot metadata.