ADA-C01 Question 543
Single answerIceberg tablesA data engineering team stores curated Parquet data in an external object store and wants Snowflake to expose the data as Iceberg tables for analytics. New data files and metadata are written outside Snowflake by another engine several times per day. Analysts report that recently added rows do not appear in Snowflake queries until an administrator intervenes. The team wants a solution that keeps Snowflake query results aligned with the latest external Iceberg metadata while minimizing manual operational effort. Which action should the administrator take?
- A
Enable AUTO_REFRESH on the external volume so Snowflake automatically detects every new Iceberg snapshot written by the external engine.
- B
Create or alter the externally managed Iceberg table with AUTOMATIC_REFRESH = TRUE so Snowflake periodically refreshes the table metadata from the Iceberg catalog.
- C
Convert the table to a Snowflake-managed Iceberg table so external engines can continue writing new snapshots that Snowflake automatically consumes.
- D
Schedule ALTER ICEBERG TABLE ... REFRESH manually after each load because externally managed Iceberg tables cannot be refreshed automatically.
Show answer and explanation
Correct answer: B
Explanation
This scenario describes an externally managed Iceberg table: the data files and Iceberg metadata are written by an engine outside Snowflake, and Snowflake reads the table for analytics. In this model, Snowflake must become aware of new Iceberg snapshots before queries return the latest data. The best administrative solution is to enable automatic refresh for the externally managed Iceberg table so Snowflake periodically synchronizes metadata from the configured Iceberg catalog.
Key applied concept: for Iceberg tables, administrators must distinguish between Snowflake-managed and externally managed models. Snowflake-managed Iceberg tables are managed by Snowflake, whereas externally managed Iceberg tables rely on an external catalog and external writers. When external writers commit new snapshots, Snowflake needs metadata refresh to see them. Automatic refresh reduces manual intervention compared with repeatedly issuing refresh commands.
This aligns with Snowflake documentation and best practices for externally managed Iceberg tables: use the supported automatic refresh setting when you want Snowflake to keep metadata current with the external catalog, and use manual refresh only when automatic refresh is unavailable or intentionally disabled.
- A. Incorrect.
Incorrect. AUTO_REFRESH is associated with features such as external tables and event-based metadata refresh patterns, but it is not the setting used to keep an externally managed Iceberg table synchronized with the latest Iceberg metadata. For Iceberg tables, the refresh behavior is controlled at the table level using the Iceberg-specific automatic refresh capability when supported.
- B. Correct.
Correct. For externally managed Iceberg tables, Snowflake can automatically refresh table metadata from the external Iceberg catalog when AUTOMATIC_REFRESH is enabled. This addresses the scenario where snapshots are produced outside Snowflake and analysts need Snowflake queries to reflect the latest committed Iceberg metadata without requiring administrators to run manual refresh commands after each update.
- C. Incorrect.
Incorrect. Snowflake-managed Iceberg tables are intended for cases where Snowflake manages the table lifecycle and metadata. If another engine is writing snapshots and metadata outside Snowflake, simply converting to Snowflake-managed does not preserve that external write pattern. In practice, this changes the ownership and management model rather than solving metadata synchronization for externally produced snapshots.
- D. Incorrect.
Incorrect. Manual refresh is possible, but the scenario explicitly asks to minimize operational effort. Externally managed Iceberg tables do support automatic metadata refresh when configured appropriately, so stating that they cannot be refreshed automatically reflects a common misconception.