Azure Synapse Analytics presents an additional syntax for defining table options.
<table_option> ::= { CLUSTERED COLUMNSTORE INDEX -- default for Azure Synapse Analytics | CLUSTERED COLUMNSTORE INDEX ORDER (column [,...n]) | HEAP --default for Parallel Data Warehouse | CLUSTERED INDEX ( { 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 FOR VALUES ( [ 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
CREATE TABLE my_table ( enterprise_cif INT,name NVARCHAR(100),address NVARCHAR(255), created_at DATETIME) WITH ( DISTRIBUTION = HASH(enterprise_cif), CLUSTERED INDEX (enterprise_cif));