SnowConvert AI - BigQuery - Diferenças de identificador entre BigQuery e Snowflake¶
Identificadores entre aspas¶
Identificadores BigQuery entre aspas são delimitados por acentos graves (`) enquanto o Snowflake os coloca entre aspas duplas (“).
Em BigQuery, os identificadores entre aspas seguem as regras de diferenciação de maiúsculas/minúsculas, o que significa que, por exemplo, nomes de colunas ainda não diferenciam maiúsculas de minúsculas mesmo quando entre aspas:
BigQuery¶
No Snowflake, a diferenciação de maiúsculas e minúsculas dos identificadores entre aspas depende do parâmetro da sessão QUOTED_IDENTIFIERS_IGNORE_CASE. Por padrão, a comparação de identificadores entre aspas diferencia maiúsculas de minúsculas. Isso significa que o código de resultado da migração do exemplo acima:
Snowflake¶
Falha ao executar a segunda seleção, a menos que o parâmetro de sessão esteja definido como TRUE.
Como o SnowConvert AI migra identificadores entre aspas¶
é a palavra-chave.SnowConvert AI analisará os identificadores entre aspas para determinar se contêm caracteres não alfanuméricos ou são palavras reservadas no Snowflake. Caso contenham, serão transformados em identificadores entre aspas no Snowflake; identificadores alfanuméricos permanecerão sem aspas.
BigQuery¶
Snowflake¶
Problemas conhecidos¶
Por padrão, BigQuery considera os nomes de tabelas e conjuntos de dados como diferenciando maiúsculas e minúsculas, a menos que a opção is_case_insensitive esteja ativada para o conjunto de dados. Isso permite que as seguintes tabelas coexistam sem problemas:
BigQuery¶
Entretanto, os identificadores sem aspas no Snowflake são sempre armazenados e comparados em maiúsculas, o que significa que test.MyTable vai gerar um erro de objeto duplicado ao tentar criá-lo. O SnowConvert AI também funciona sob a premissa de que os identificadores não diferenciam maiúsculas de minúsculas, portanto, quando um desses cenários ocorrer durante a transformação, SSC-FDM-0019 será gerado para avisar o usuário: