DAA-C01 Question 13
Single answerSynthetic Data GenerationA healthcare analytics team needs to provide analysts with a large, privacy-safe dataset for testing patient-level dashboards in Snowflake. The analysts want realistic row volumes, controllable date ranges, and repeatable results so that defects can be reproduced across test runs. The source production table cannot be copied because it contains PHI. Which approach should the data analyst recommend to generate synthetic data directly in Snowflake while meeting these requirements?
- A
Use TABLE(GENERATOR(ROWCOUNT => ...)) together with functions such as SEQ4(), UNIFORM(), RANDOM(
), and date arithmetic to create rows and deterministic pseudo-random values. - B
Create a zero-copy clone of the production table, then mask a few sensitive columns in the clone before sharing it with analysts.
- C
Use SAMPLE on the production table to create a smaller test dataset because sampled data is synthetic once row counts are reduced.
- D
Export the production data, anonymize it outside Snowflake, and reload it, because Snowflake does not support generating synthetic datasets natively.
Show answer and explanation
Correct answer: A
Explanation
The best answer is to generate synthetic data natively in Snowflake by using TABLE(GENERATOR(...)) and SQL functions that create deterministic pseudo-random values and controlled ranges. This is the safest and most direct way to satisfy privacy, scale, and reproducibility requirements. In practice, teams often combine GENERATOR with SEQ1/2/4/8 or ROW_NUMBER for identifiers, RANDOM with a seed for repeatable randomization, UNIFORM for bounded distributions, and DATEADD or TIMEADD to synthesize realistic event timelines. Snowflake documentation describes GENERATOR as a table function for creating generated rows, and the random/distribution functions can be used to populate columns with test values. By contrast, cloning and sampling still rely on real production data, which conflicts with a true synthetic-data requirement, especially for regulated datasets such as PHI.
- A. Correct.
Correct. Snowflake supports synthetic row generation with the GENERATOR table function, which can produce a specified number of rows or run for a specified amount of time. Combined with functions such as SEQ4() for sequence-like values, UNIFORM() for bounded random distributions, and RANDOM() with a seed for reproducibility, this approach lets teams create large, privacy-safe datasets entirely in Snowflake. Date values can be generated with DATEADD and related functions to control temporal ranges. This directly satisfies the requirements for realistic volumes, date control, and repeatability.
- B. Incorrect.
Incorrect. A zero-copy clone reproduces the original physical data, including sensitive values, at the moment of cloning. Applying masking later may help limit exposure, but this is not the same as generating synthetic data, and it still depends on copying production data structures and values. In a healthcare PHI scenario, the requirement explicitly states that the source production table cannot be copied for analyst use. This option also introduces governance risk compared with creating synthetic records from scratch.
- C. Incorrect.
Incorrect. Sampling reduces the amount of real data but does not convert it into synthetic data. SAMPLE still returns actual production rows, which means PHI or other sensitive information could remain exposed. This is a common misconception: lower volume or partial data is not equivalent to privacy-safe synthetic data. Sampling may be useful for performance testing in some contexts, but it does not meet the privacy requirement here.
- D. Incorrect.
Incorrect. Snowflake does support native synthetic data generation patterns through SQL, including the GENERATOR table function and random/value-generation functions. Exporting data for external anonymization may be possible in some organizations, but it adds unnecessary movement of sensitive data, increases operational complexity, and is not required to meet the stated needs. The question asks specifically for a recommendation to generate synthetic data directly in Snowflake.