DEA-C02 · Question #81
A Data Engineer is trying to clone a very large table from a source environment that has set DATA_RETENTION_TIME_IN_DAYS = 0. During the cloning operation, Data Manipulation Language (DML) transaction
The correct answer is B. Set the DATA_RETENTION_TIME_IN_DAYS = 1 for the table in the source environment before C. Avoid all DML transactions on the source table until the cloning operation is complete.. When Snowflake clones a table, it captures a consistent snapshot at the moment the operation begins. If concurrent DML modifies the source during cloning, Snowflake must reference historical micro-partitions to maintain that snapshot - but with DATA_RETENTION_TIME_IN_DAYS = 0, th
Question
A Data Engineer is trying to clone a very large table from a source environment that has set DATA_RETENTION_TIME_IN_DAYS = 0. During the cloning operation, Data Manipulation Language (DML) transactions are executed on the source table, and the user receives the error "Data is not available." How can this error be prevented, while ensuring successful cloning of the table? (Choose two.)
Options
- AIncrease the warehouse size to speed up the cloning process and avoid DML conflicts.
- BSet the DATA_RETENTION_TIME_IN_DAYS = 1 for the table in the source environment before
- CAvoid all DML transactions on the source table until the cloning operation is complete.
- DDisable Time Travel on the cloned table to reduce storage costs once the cloning is complete.
- EUse a CREATE TABLE AS SELECT STATEMENT to create a new table, instead of creating a
How the community answered
(31 responses)- A6% (2)
- B81% (25)
- D10% (3)
- E3% (1)
Explanation
When Snowflake clones a table, it captures a consistent snapshot at the moment the operation begins. If concurrent DML modifies the source during cloning, Snowflake must reference historical micro-partitions to maintain that snapshot - but with DATA_RETENTION_TIME_IN_DAYS = 0, those versions are immediately purged, making them unavailable and triggering the error.
B is correct because setting retention to at least 1 day enables Time Travel, giving Snowflake the ability to hold onto the historical data versions needed to complete the consistent clone snapshot even while DML runs concurrently. C is correct because if no DML touches the source during cloning, there is no divergence from the snapshot baseline - Snowflake never needs to look up a historical version, so the zero-retention setting is irrelevant.
A is wrong because warehouse size affects compute speed, not data availability - you can't "outrun" a missing historical version. D is wrong because it describes a post-clone storage optimization on the target table, which has no effect on the source-side error during cloning. E is wrong because CREATE TABLE AS SELECT physically copies data rather than performing a zero-copy clone, abandons the cloning approach entirely (expensive for very large tables), and doesn't address the stated goal of "successful cloning."
Memory tip: Think of it as a photograph - Snowflake takes a photo of the table at clone-start. If someone keeps moving (DML) and you have no film retention (0 days), the photo comes out blurry and unusable. Either hold the subject still (C) or use film that retains images for at least a day (B).
Topics
Community Discussion
No community discussion yet for this question.