正解:A
The correct answer is A. VARCHAR .
A clustering key can be defined on supported table columns or expressions to help Snowflake organize micro- partitions and improve pruning for certain query patterns. Standard scalar data types such as VARCHAR are supported.
Why A is correct:
VARCHAR is a standard scalar data type and can be used in a clustering key.
Example:
CREATE TABLE customer_orders (
customer_id VARCHAR,
order_date DATE,
amount NUMBER
)
CLUSTER BY (customer_id);
Why the other options are incorrect:
B). VARIANT stores semi-structured data. Clustering directly on raw semi-structured columns is not the best answer here; clustering keys should use supported scalar columns or expressions.
C). OBJECT is a semi-structured data type and is not the correct choice for a clustering key column in this question.
D). GEOGRAPHY is not the correct supported clustering key data type in this context.
Official Snowflake documentation reference:
Snowflake documentation explains that clustering keys can be defined using table columns or expressions, and standard scalar columns such as string, number, and date/time columns are commonly used for clustering.
Reference: Snowflake Documentation - Clustering keys and clustered tables; Snowflake Documentation - Table data types; SnowPro Core Study Guide - Performance Optimization.