SNOWPRO-CORE practice question 18 of 35

When unloading data, which file format preserves the data values for floating-point number columns?

Full set: 628 questions

Domain Performance Management

Answer options
A: Avro
B: CSV
C: JSON
D: Parquet Correct answer
Correct Answer:
D. Parquet
Explanation

Parquet is a binary, columnar file format. When unloading data from Snowflake, numeric columns like FLOAT or DOUBLE are directly mapped to the Parquet DOUBLE data type. This binary-to-binary conversion preserves the exact numeric value and precision of the floating-point numbers. In contrast, text-based formats like CSV and JSON convert numbers to strings, which can cause a loss of precision during the unload and subsequent reload process.

Why Incorrect

A. Avro: While Avro is a binary format that also preserves floating-point precision by mapping to its double type, Parquet is explicitly highlighted in Snowflake documentation for this capability.
B. CSV: As a text-based format, it converts numbers to strings, which can truncate values and cause a loss of precision upon reloading.
C. JSON: Similar to CSV, this text-based format represents numbers as text, risking precision loss for floating-point data during the unload process.

References

1. Snowflake Documentation: Data Unloading Features, section "Support for Unloading Floating-point Numbers into Parquet". This document states: "Floating-point number columns are now unloaded to Parquet columns with the DOUBLE data type. This change ensures that the data values are preserved when you unload and then reload the data."

2. Snowflake Documentation: Querying Data in Parquet Files, section "Mapping Snowflake Data Types to Parquet Data Types". This table explicitly shows that Snowflake data types FLOAT, FLOAT4, FLOAT8, DOUBLE, DOUBLE PRECISION, and REAL are all mapped to the Parquet DOUBLE data type.

3. Snowflake Documentation: COPY INTO , section "Format Type Options". The documentation for text-based formats (CSV, JSON) confirms that all data is converted into UTF-8 text strings, which is the root cause of potential precision loss for floating-point numbers.

Scroll to Top