Azure Synapse Analytics presents an additional syntax for defining table options.
<table_option> ::= {CLUSTEREDCOLUMNSTOREINDEX-- default for Azure Synapse Analytics | CLUSTEREDCOLUMNSTOREINDEX ORDER (column [,...n]) | HEAP --default for Parallel Data Warehouse | CLUSTEREDINDEX ( { index_column_name [ ASC | DESC ] } [ ,...n ] ) -- default is ASC } {DISTRIBUTION=HASH ( distribution_column_name ) | DISTRIBUTION=HASH ( [distribution_column_name [, ...n]] ) | DISTRIBUTION=ROUND_ROBIN-- default for Azure Synapse Analytics | DISTRIBUTION= REPLICATE -- default for Parallel Data Warehouse } | PARTITION ( partition_column_name RANGE [ LEFT | RIGHT ] -- default is LEFT FORVALUES ( [ boundary_value [,...n] ] ) )
Snowflake automatically handles table optimization through mechanisms like micro-partitioning. For this reason, an equivalent syntax for some of these table options does not exist in Snowflake. Therefore, it is not necessary to define some of Transact's table options.
Table options that will be omitted:
CLUSTERED COLUMNSTORE INDEX (without column)
HEAP
DISTRIBUTION
PARTITION
CLUSTERED [ COLUMNSTORE ] INDEX with columns, will be transformed to Snowflake's CLUSTER BY. A performance review PRF will be added as it is advised to check if defining a CLUSTER KEY is necessary.
Transact
CREATETABLEmy_table ( enterprise_cif INT,nameNVARCHAR(100),addressNVARCHAR(255), created_at DATETIME) WITH (DISTRIBUTION=HASH(enterprise_cif),CLUSTEREDINDEX (enterprise_cif));