SnowConvert AI - Problemas do BigQuery¶
Nota
Escopo de conversão
O SnowConvert AI para Google BigQuery atualmente é compatível com avaliação e tradução de TABLES e VIEWS. Embora o SnowConvert AI possa reconhecer outros tipos de instruções, elas não são totalmente compatíveis.
Esta página fornece uma referência abrangente de como o SnowConvert AI traduz elementos de gramática do Google BigQuery para equivalentes do Snowflake. Nesta referência de tradução, você encontrará exemplos de código, resultados de equivalência funcional, principais diferenças, recomendações, problemas conhecidos e descrições de cada transformação.
SSC-EWI-BQ0001¶
O Snowflake não é compatível com a cláusula de opções.
Aviso
Este EWI está obsoleto; consulte SSC-EWI-0016 para obter a versão mais recente deste EWI.
Severidade ¶
Medium
Descrição ¶
Este EWI é adicionado a instruções DDL quando o OPTIONS não tem opções compatíveis com o Snowflake.
Exemplo de código ¶
Código de entrada:
BigQuery¶
CREATE VIEW my_view
OPTIONS (
expiration_timestamp=TIMESTAMP "2026-01-01 00:00:00 UTC",
privacy_policy='{"aggregation_threshold_policy": {"threshold": 50, "privacy_unit_columns": "ID"}}'
) AS
SELECT column1, column2
FROM my_table;
Código de saída:
Snowflake¶
CREATE VIEW my_view
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0001 - SNOWFLAKE DOES NOT SUPPORT THE OPTIONS: EXPIRATION_TIMESTAMP, PRIVACY_POLICY ***/!!!
OPTIONS(
expiration_timestamp=TIMESTAMP "2026-01-01 00:00:00 UTC",
privacy_policy='{"aggregation_threshold_policy": {"threshold": 50, "privacy_unit_columns": "ID"}}'
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "03/26/2025", "domain": "test" }}'
AS
SELECT column1, column2
FROM
my_table;
Recomendações ¶
Adicione alterações manuais à expressão não transformada.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0002¶
O microparticionamento é realizado automaticamente em todas as tabelas Snowflake.
Nota
Este problema está obsoleto e não é mais gerado pelo SnowConvert AI
Gravidade¶
Média
Descrição¶
Este aviso é adicionado a Create table quando a cláusula partition by está presente. PARTITION BY é uma cláusula opcional que controla o particionamento de tabela, mas não é compatível com o Snowflake.
Todos os dados nas tabelas Snowflake são automaticamente divididos em micropartições, que são unidades de armazenamento contíguas. Cada micropartição contém entre 50 MB e 500 MB de dados não comprimidos. Este tamanho e estrutura permitem a remoção extremamente granular em tabelas muito grandes, que podem ser compostas de milhões, ou mesmo centenas de milhões, de micropartições.
O Snowflake armazena metadados sobre todas as linhas armazenadas em uma micropartição, inclusive:
O intervalo de valores para cada uma das colunas na micropartição.
O número de valores distintos.
Propriedades adicionais utilizadas tanto para otimização quanto para o processamento eficiente de consultas.
As tabelas são particionadas de forma transparente usando a ordenação dos dados à medida que são inseridos/carregados. Para obter mais informações, consulte Benefícios do microparticionamento.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE TABLE table1(
transaction_id INT,
transaction_date DATE
)
PARTITION BY transaction_date;
Código gerado:¶
Snowflake¶
CREATE TABLE table1 (
transaction_id INT,
transaction_date DATE
)
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0002 - MICRO-PARTITIONING IS AUTOMATICALLY PERFORMED ON ALL SNOWFLAKE TABLES. ***/!!!
PARTITION BY transaction_date
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "04/09/2025", "domain": "test" }}';
Recomendações¶
Nenhuma ação adicional do usuário é necessária; ele é apenas informativo.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0003¶
O Snowflake não é compatível com privacidade diferencial.
Gravidade¶
Medium
Descrição¶
O BigQuery permite aplicar privacidade diferencial a algumas funções estatísticas para introduzir ruído nos dados, dificultando a subtração de informações sobre os indivíduos ao analisar os resultados da consulta.
A privacidade diferencial não é compatível com o Snowflake; qualquer uso dela será como comentário e este erro será gerado para informar o usuário sobre isso.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
SELECT
WITH DIFFERENTIAL_PRIVACY
OPTIONS(epsilon=10, delta=.01, max_groups_contributed=2, privacy_unit_column=id)
item,
COUNT(quantity, contribution_bounds_per_group => (0,100)) total_quantity
FROM professors
GROUP BY item;
Código gerado:¶
Snowflake¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0003 - SNOWFLAKE DOES NOT SUPPORT DIFFERENTIAL PRIVACY. ***/!!!
WITH DIFFERENTIAL_PRIVACY
OPTIONS(epsilon=10, delta=.01, max_groups_contributed=2, privacy_unit_column=id)
item,
COUNT(quantity,
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0003 - SNOWFLAKE DOES NOT SUPPORT DIFFERENTIAL PRIVACY. ***/!!! contribution_bounds_per_group => (0,100)) total_quantity
FROM
professors
GROUP BY item;
Recomendações¶
Analise os resultados da consulta com e sem privacidade diferencial; os resultados podem diferir ligeiramente devido à ausência de ruído nos dados.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0004¶
O Snowflake não é compatível com janelas nomeadas.
Gravidade¶
Medium
Descrição¶
O BigQuery permite a definição e o uso de janelas nomeadas em funções agregadas, elas são definidas na cláusula WINDOW da consulta em que são usadas e podem ser usadas dentro da cláusula OVER destas funções.
O Snowflake não é compatível com a declaração de janelas nomeadas. Considere usar a definição da janela e aplicá-la a todos os usos dessa janela diretamente na cláusula OVER das funções.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
SELECT
COUNT(col1) OVER(myWindow)
FROM
test.exampleTable
WINDOW
myWindow AS (ORDER BY col2);
Código gerado:¶
Snowflake¶
SELECT
COUNT(col1)
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0004 - SNOWFLAKE DOES NOT SUPPORT NAMED WINDOWS. ***/!!! OVER(myWindow)
FROM
test.exampleTable
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0004 - SNOWFLAKE DOES NOT SUPPORT NAMED WINDOWS. ***/!!!
WINDOW
myWindow AS (ORDER BY col2);
Recomendações¶
Revise suas definições de janela nomeada; talvez seja possível usar a definição e aplicá-la à cláusula
OVERdas funções em que é utilizada. No entanto, tenha em mente as diferenças funcionais entre quadros de janela do BigQuery e do Snowflake ainda se aplicam, considere o seguinte caso como exemplo:
BigQuery:
SELECT
COUNT(col1) OVER(myWindow)
FROM
test.exampleTable
WINDOW
myWindow AS (ORDER BY col2);
Snowflake:
SELECT
COUNT(col1) OVER(ORDER BY col2)
FROM
test.exampleTable;
Estas duas consultas produzirão as mesmas linhas, mas os resultados do Snowflake não serão ordenados, isto porque a cláusula ORDER BY para quadros de janela não afeta toda a ordenação da consulta como faz no BigQuery.
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0005¶
O código Javascript não foi validado.
Gravidade¶
High
Descrição¶
O SnowConvert AI não transforma o código Javascript. Como o código Javascript extraído das funções do BigQuerynão foram alteradas, esse código pode precisar de alguns ajustes para funcionar no Snowflake.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE FUNCTION test.languageJs (x integer, y integer)
RETURNS integer
LANGUAGE js
AS "return x * y;";
Código gerado:¶
Snowflake¶
CREATE FUNCTION test.languageJs (x integer, y integer)
RETURNS DOUBLE
LANGUAGE JAVASCRIPT
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "07/16/2025", "domain": "no-domain-provided" }}'
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0005 - JAVASCRIPT CODE HAS NOT BEEN VALIDATED. ***/!!!
AS
$$
return x * y;
$$;
Recomendações¶
Revise todo o código Javascript antes da implementação.
Os parâmetros Javascript no Snowflake devem ser em maiúsculas.
Para obter mais informações, acesse a Introdução a UDFs do Javascript.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0006¶
O parâmetro orientado na função ST_GEOGFROMTEXT não é compatível com o Snowflake.
Gravidade¶
Low
Descrição¶
Este aviso é adicionado quando o parâmetro orientado é especificado na função ST_GEOGFROMTEXT, porque não é compatível com o Snowflake. Se este parâmetro for definido como TRUE, presume-se que qualquer polígono na entrada é orientado da seguinte forma: se alguém caminha ao longo do limite do polígono na ordem dos vértices de entrada, o interior do polígono será para a esquerda. Isto permite que WKT represente polígonos maiores que um fuso horário. Se o orientado é FALSE ou omitido, esta função retorna o polígono com a menor área.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
SELECT ST_GEOGFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))', TRUE);
Código gerado:¶
Snowflake¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0006 - ORIENTED PARAMETER IN THE ST_GEOGFROMTEXT FUNCTION IS NOT SUPPORTED IN SNOWFLAKE. ***/!!!
ST_GEOGFROMTEXT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))');
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0007¶
A sequência de escape não é válida no Snowflake.
Gravidade¶
Low
Descrição¶
O caractere de sino (\a) e o caractere vertical (\v) são sequências de escape válidas no BigQuery, mas não no Snowflake.
Este aviso é adicionado quando uma sequência de escape de caractere de sino ou caractere vertical é encontrada ao traduzir código do BigQuery. Mais sobre as Sequências de escape do Snowflake.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
SELECT "\a";
SELECT "\v";
Código gerado:¶
Snowflake¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0007 - ESCAPE SEQUENCE \a IS NOT VALID IN SNOWFLAKE. ***/!!!
'\a';
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0007 - ESCAPE SEQUENCE \v IS NOT VALID IN SNOWFLAKE. ***/!!!
'\v';
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0008¶
A sequência de escape Unicode de oito dígitos hexadecimais não é compatível com o Snowflake.
Gravidade¶
Low
Descrição¶
O BigQuery é compatível com sequências Unicode de 8 dígitos hexadecimais. O Snowflake não é compatível com este tipo de sequências Unicode.
Este aviso é adicionado quando uma sequência Unicode de 8 dígitos hexadecimais é encontrada ao traduzir código do BigQuery. Mais sobre Sequências de escape do BigQuery.
Exemplo de código¶
Código de entrada:¶
Snowflake¶
SELECT "\U00100000";
Código gerado:¶
Primeira guia¶
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0008 - EIGHT HEX DIGIT UNICODE ESCAPE SEQUENCE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
'\U00100000';
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0009¶
O SnowConvert AI não pôde gerar a cláusula de tabela de retorno correta.
Gravidade¶
High
Descrição¶
O Snowflake requer uma cláusula RETURNS TABLE válida para instruções CREATE TABLE FUNCTION. O SnowConvert AI tem que construir uma nova a partir do zero. Para isso, é feita uma análise na consulta CREATE TABLE FUNCTION para inferir corretamente os tipos das colunas da tabela resultante; no entanto, pode haver cenários em que o SnowConvert AI atualmente tem uma limitação para poder construir a cláusula de retorno corretamente.
Estes cenários serão considerados no futuro, mas, enquanto isso, este erro será adicionado.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE TABLE FUNCTION tableValueFunction2()
AS
SELECT *
REPLACE("John" AS employee_name)
FROM employees;
Código gerado:¶
Snowflake¶
CREATE FUNCTION tableValueFunction2 ()
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0009 - SnowConvert AI WAS UNABLE TO GENERATE THE CORRECT RETURN TABLE CLAUSE, DUE TO MISSING REFERENCES. ***/!!!
RETURNS TABLE (
)
AS
$$
SELECT
* REPLACE("John" AS employee_name) !!!RESOLVE EWI!!! /*** SSC-EWI-0073 - PENDING FUNCTIONAL EQUIVALENCE REVIEW FOR 'ExceptReplaceOperator' NODE ***/!!!
FROM
employees
$$;
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0011¶
A atribuição de variável de sessão de tipo de dados complexo não é compatível com o Snowflake
Gravidade¶
Medium
Descrição¶
No BigQuery, a declaração de uma variável no nível do script permite que ela seja usada em todo o script para replicar esse comportamento no Snowflake. Variáveis SQL são usadas.
Entretanto, a declaração de variáveis de tipos de dados complexos como ARRAY, GEOGRAPHY, STRUCT ou JSON falhará no Snowflake ao tentar definir o valor para a variável SQL. Quando o SnowConvert AI detecta um desses casos, este EWI será adicionado à declaração de variável SQL.
Variáveis desses tipos podem ser declaradas sem problemas dentro de instruções de bloco e outras instruções processuais. Este EWI aplica-se somente a variáveis declaradas no nível do script.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE TABLE test.JsonTable
(
col1 JSON
);
DECLARE myVar1 JSON DEFAULT JSON'{"name": "John", "age": 30}';
INSERT INTO test.JsonTable VALUES (myVar1);
BEGIN
DECLARE myVar2 JSON DEFAULT JSON'{"name": "Mike", "age": 27}';
INSERT INTO test.JsonTable VALUES (myVar2);
END;
SELECT col1 FROM test.JsonTable;
Código gerado:¶
Snowflake¶
CREATE TABLE test.JsonTable
(
col1 VARIANT
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "07/02/2025", "domain": "no-domain-provided" }}';
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0011 - SESSION VARIABLE ASSIGNMENT OF COMPLEX DATATYPE IS NOT SUPPORTED IN SNOWFLAKE ***/!!!
SET myVar1 = (
SELECT
PARSE_JSON('{"name": "John", "age": 30}')
);
INSERT INTO test.JsonTable
VALUES ($myVar1);
BEGIN
LET myVar2 VARIANT DEFAULT PARSE_JSON('{"name": "Mike", "age": 27}');
INSERT INTO test.JsonTable
VALUES (:myVar2);
END;
SELECT col1 FROM
test.JsonTable;
Recomendações¶
Se os usos da variável estiverem limitados a um único escopo ou seu valor nunca for modificado, considere declarar a variável localmente nos escopos que a utilizam, isso resolverá o problema.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0012¶
Não é possível gerar parâmetros OBJECT_CONSTRUCT corretos
Gravidade¶
High
Descrição¶
O SnowConvert AI não está habilitado para gerar a construção de objeto correta porque o símbolo não é carregado corretamente.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
INSERT INTO test.tuple_sample
VALUES
((12, 34)),
((56, 78)),
((9, 99)),
((12, 35));
Código gerado:¶
Snowflake¶
INSERT INTO test.tuple_sample
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0012 - UNABLE TO GENERATE CORRECT OBJECT_CONSTRUCT PARAMETER. SYMBOL INFORMATION COULD NOT BE COLLECTED. ***/!!!
VALUES
((12, 34)),
((56, 78)),
((9, 99)),
((12, 35));
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0013¶
O formato de dados da tabela externa é incompatível com o Snowflake
Aviso
Este EWI está obsoleto; consulte SSC-EWI-0029 para obter a versão mais recente deste EWI.
Gravidade¶
Medium
Descrição¶
O Snowflake é compatível com os seguintes formatos do BigQuery:
BigQuery |
Snowflake |
|---|---|
AVRO |
AVRO |
CSV |
CSV |
NEWLINE_DELIMITED_JSON |
JSON |
ORC |
ORC |
PARQUET |
PARQUET |
Quando uma tabela externa tem outro FORMAT não especificado na tabela acima, este EWI será gerado para informar ao usuário que o FORMAT não é compatível.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE OR REPLACE EXTERNAL TABLE test.backup_restore_table
OPTIONS (
format = 'DATASTORE_BACKUP',
uris = ['gs://backup_bucket/backup_folder/*']
);
Código gerado:¶
Snowflake¶
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0013 - EXTERNAL TABLE DATA FORMAT NOT SUPPORTED IN SNOWFLAKE ***/!!!
CREATE OR REPLACE EXTERNAL TABLE test.backup_restore_table
OPTIONS (
format = 'DATASTORE_BACKUP',
uris = ['gs://backup_bucket/backup_folder/*']
);
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0014¶
As tabelas externas particionadas do Hive não são compatíveis com o Snowflake
Gravidade¶
Medium
Descrição¶
O Snowflake não é compatível com tabelas externas particionadas do Hive. Quando a cláusula WITH PARTITION COLUMNS for encontrada na tabela externa, ela será marcada como incompatível usando este EWI.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE EXTERNAL TABLE test.CustomHivePartitionedTable
WITH PARTITION COLUMNS (
field_1 STRING,
field_2 INT64)
OPTIONS (
uris = ['gs://sc_external_table_bucket/folder_with_parquet/*'],
format = 'PARQUET',
hive_partition_uri_prefix = 'gs://sc_external_table_bucket/folder_with_parquet',
require_hive_partition_filter = false);
Código gerado:¶
Snowflake¶
CREATE OR REPLACE TEMPORARY FILE FORMAT SC_TEST_CUSTOMHIVEPARTITIONEDTABLE_FORMAT
TYPE = PARQUET;
CREATE EXTERNAL TABLE test.CustomHivePartitionedTable USING TEMPLATE (
SELECT
ARRAY_AGG(OBJECT_CONSTRUCT('COLUMN_NAME', COLUMN_NAME, 'TYPE', TYPE, 'NULLABLE', NULLABLE, 'EXPRESSION', EXPRESSION))
FROM
--** SSC-FDM-0035 - THE INFER_SCHEMA FUNCTION REQUIRES A FILE PATH WITHOUT WILDCARDS TO GENERATE THE TABLE TEMPLATE, REPLACE THE FILE_PATH PLACEHOLDER WITH IT **
TABLE(INFER_SCHEMA(LOCATION => '@EXTERNAL_STAGE/FILE_PATH', FILE_FORMAT => 'SC_TEST_CUSTOMHIVEPARTITIONEDTABLE_FORMAT'))
)
!!!RESOLVE EWI!!! /*** SSC-EWI-0032 - EXTERNAL TABLE REQUIRES AN EXTERNAL STAGE TO ACCESS gs://sc_external_table_bucket, DEFINE AND REPLACE THE EXTERNAL_STAGE PLACEHOLDER ***/!!!
LOCATION = @EXTERNAL_STAGE
AUTO_REFRESH = false
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0014 - HIVE PARTITIONED EXTERNAL TABLES ARE NOT SUPPORTED IN SNOWFLAKE ***/!!!
WITH PARTITION COLUMNS (
field_1 STRING,
field_2 INT64)
PATTERN = 'folder_with_parquet/.*'
FILE_FORMAT = (TYPE = PARQUET)
!!!RESOLVE EWI!!! /*** SSC-EWI-0016 - SNOWFLAKE DOES NOT SUPPORT THE OPTIONS: HIVE_PARTITION_URI_PREFIX, REQUIRE_HIVE_PARTITION_FILTER. ***/!!!
OPTIONS(
hive_partition_uri_prefix = 'gs://sc_external_table_bucket/folder_with_parquet',
require_hive_partition_filter = false
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "bigquery", "convertedOn": "07/02/2025", "domain": "no-domain-provided" }}';
Recomendações¶
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0015¶
A tabela externa requer um estágio externo para acessar uma localização externa, definir e substituir o espaço reservado EXTERNAL_STAGE
Aviso
Este EWI está obsoleto; consulte SSC-EWI-0032 para obter a versão mais recente deste EWI.
Descrição¶
Ao transformar a instrução CREATE EXTERNAL TABLE, o SnowConvert AI vai gerar um espaço reservado EXTERNAL_STAGE, que precisa ser substituído pela área de preparação externa criada para conexão com a localização externa pelo Snowflake.
Consulte os seguintes guias para configurar a integração de armazenamento e a área de preparação externa necessários em sua conta Snowflake:
Para tabelas externas que fazem referência ao Google Cloud Storage
Para tabelas externas que fazem referência ao Armazenamento de blobs Azure
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE OR REPLACE EXTERNAL TABLE test.Employees_test
(
Employee_id INTEGER,
Name STRING,
Mail STRING,
Position STRING,
Salary INTEGER
)
OPTIONS(
FORMAT='CSV',
SKIP_LEADING_ROWS=1,
URIS=['gs://sc_external_table_bucket/folder_with_csv/Employees.csv']
);
Código gerado:¶
Snowflake¶
CREATE OR REPLACE EXTERNAL TABLE test.Employees_test
(
Employee_id INTEGER AS CAST(GET_IGNORE_CASE($1, 'c1') AS INTEGER),
Name STRING AS CAST(GET_IGNORE_CASE($1, 'c2') AS STRING),
Mail STRING AS CAST(GET_IGNORE_CASE($1, 'c3') AS STRING),
Position STRING AS CAST(GET_IGNORE_CASE($1, 'c4') AS STRING),
Salary INTEGER AS CAST(GET_IGNORE_CASE($1, 'c5') AS INTEGER)
)
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0015 - EXTERNAL TABLE REQUIRES AN EXTERNAL STAGE TO ACCESS gs://sc_external_table_bucket, DEFINE AND REPLACE THE EXTERNAL_STAGE PLACEHOLDER ***/!!!
LOCATION = @EXTERNAL_STAGE
AUTO_REFRESH = false
PATTERN = 'folder_with_csv/Employees.csv'
FILE_FORMAT = (TYPE = CSV SKIP_HEADER =1);
Recomendações¶
Configure sua conexão externa na conta Snowflake e substitua o espaço reservado EXTERNAL_STAGE para concluir a transformação.
Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com
SSC-EWI-BQ0016¶
Selecionar * com vários operadores UNNEST produzirá ambiguidade na coluna
Gravidade¶
Medium
Descrição¶
Como parte da transformação do SnowConvert para o operador UNNEST, a função FLATTEN é usada, a qual gera várias colunas que não são necessárias para emular a funcionalidade do operador UNNEST, como as colunas THIS ou PATH.
Quando um SELECT * com o operador UNNEST for encontrado, o SnowConvert removerá as colunas desnecessárias usando a palavra-chave EXCLUDE; no entanto, quando vários operadores UNNEST são usados na mesma instrução, as colunas não podem ser removidas devido a problemas de ambiguidade. Este EWI será gerado para marcar tais casos.
Recomenda-se expandir a lista de expressões SELECT para especificar apenas as colunas esperadas e resolver esse problema.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
SELECT * FROM UNNEST ([10,20,30]);
SELECT * FROM UNNEST ([10,20,30]) AS numbers, UNNEST(['Hi', 'Hello', 'Bye']) AS words;
Código gerado:¶
Snowflake¶
SELECT
* EXCLUDE(SEQ, KEY, PATH, THIS, INDEX)
FROM
TABLE(FLATTEN(INPUT => [10,20,30])) AS F0_ (
SEQ,
KEY,
PATH,
INDEX,
F0_,
THIS
);
SELECT
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0016 - SELECT * WITH MULTIPLE UNNEST OPERATORS WILL RESULT IN COLUMN AMBIGUITY IN SNOWFLAKE ***/!!!
* FROM
TABLE(FLATTEN(INPUT => [10,20,30])) AS numbers (
SEQ,
KEY,
PATH,
INDEX,
numbers,
THIS
),
TABLE(FLATTEN(INPUT => ['Hi', 'Hello', 'Bye'])) AS words (
SEQ,
KEY,
PATH,
INDEX,
words,
THIS
);
SSC-EWI-BQ0017¶
O desaninhamento de uma matriz de estruturas não é compatível
Gravidade¶
Medium
Descrição¶
Ao desaninhar uma matriz de estruturas, o BigQuery irá gerar uma coluna para cada campo de estrutura e dividir os valores de estrutura em suas colunas correspondentes, comportamento que não é compatível atualmente. Sempre que o SnowConvert detecta que o operador UNNEST é aplicado sobre uma matriz de estruturas, este EWI será gerado.
Exemplo de código¶
Código de entrada:¶
BigQuery¶
CREATE TABLE test.myTestTable
(
column1 ARRAY<STRUCT<x INT64, y STRING, z STRUCT<a INT64, b INT64>>>
);
SELECT structValues FROM test.myTestTable AS someTable, UNNEST(someTable.column1) AS structValues;
Código gerado:¶
Snowflake¶
CREATE TABLE test.myTestTable
(
column1 ARRAY DEFAULT []
);
SELECT structValues FROM
test.myTestTable AS someTable,
!!!RESOLVE EWI!!! /*** SSC-EWI-BQ0017 - UNNEST OF AN ARRAY OF STRUCTS IS NOT SUPPORTED ***/!!! UNNEST(someTable.column1) AS structValues;