Identifier differences between BigQuery and Snowflake
Last updated
Last updated
BigQuery quoted identifiers are enclosed by backticks (`) while Snowflake encloses them in double quotes (“).
In BigQuery, quoted identifiers stick to the , which means that, for example, column names are still case insensitive even when quoted:
BigQuery
In Snowflake, case sensitivity of quoted identifiers depends on the session parameter , by default quoted identifiers comparison is case sensitive, this means that the result code from migrating the above example:
Snowflake
Will fail when executing the second select unless the session parameter is set to TRUE.
SnowConvert will analyze quoted identifiers to determine if they contain non-alphanumeric characters or are reserved words in Snowflake, if they do then it will transform them to quoted identifiers in Snowflake, alphanumeric identifiers will be left unquoted:
BigQuery
Snowflake
BigQuery
Snowflake
By default, BigQuery considers table and dataset names as case sensitive, unless the option is activated for the dataset, this allows the following tables to coexist without problems:
However, unquoted identifiers in Snowflake are , meaning that test.MyTable
will raise a duplicated object error when trying to create it. SnowConvert also works under the assumption that identifiers are case insensitive, so when one of these scenarios appears during transformation, SSC-FDM-0019 will be generated to warn the user:
: Semantic information could not be loaded