SnowConvert AI - Hive - CREATE EXTERNAL TABLE¶
Applies to
Hive SQL
Spark SQL
Databricks SQL
Descrição¶
As tabelas externas definem uma nova tabela usando uma fonte de dados. (Referência de linguagem SQL do Spark CREATE DATASOURCE TABLE)
A instrução CREATE EXTERNAL TABLE do Spark/Databricks será transformada na instrução CREATE EXTERNAL TABLE Snowflake; no entanto, essa transformação exige intervenção do usuário.
To complete the transformation performed by SnowConvert AI, it is necessary to define a Storage Integration, an External Stage, and (optionally) a Notification Integration that have access to the external source where files are located. Please refer to the following guides on how to set up the connection for each provider:
Para tabelas externas que fazem referência ao Google Cloud Storage
Para tabelas externas que fazem referência ao Armazenamento de blobs Azure
Considerações importantes para as transformações mostradas nesta página:
O espaço reservado @EXTERNAL_STAGE deve ser substituído pelo estágio externo criado após seguir as instruções do guia anterior.
Supõe-se que o estágio externo apontará para a raiz do bucket. Isso é importante, porque a cláusula PATTERN gerada para cada tabela especifica os caminhos do arquivo/pasta começando pela base do bucket. Definir um estágio externo que aponta para um local diferente no bucket pode causar um comportamento indesejado.
A cláusula
AUTO_REFRESH = FALSEé gerada para evitar erros. Observe que a atualização automática de metadados de tabela externa só é válida se o provedor de nuvem de sua conta Snowflake e o provedor de bucket iguais, e se uma integração de notificação tiver sido criada.
Amostra de padrões da origem¶
Criar tabela externa com lista de colunas explícita¶
When the column list is provided, SnowConvert AI will automatically generate the AS expression column options for each column to extract the file values.
Código de entrada:¶
Código de saída:¶
CREATE EXTERNAL TABLE sem uma lista de colunas explícita ¶
When the column list is not provided, Spark automatically detects the schema of the columns from the file structure. To replicate this behavior, SnowConvert AI will generate a USING TEMPLATE clause that makes use of the INFER_SCHEMA function to generate the column definitions.
Como a função INFER_SCHEMA requer um formato de arquivo para funcionar, o SnowConvert AI vai gerar um formato de arquivo temporário para essa finalidade. Esse formato de arquivo só é necessário ao executar a instrução CREATE EXTERNAL TABLE e será automaticamente descartado quando a sessão terminar.
Código de entrada:¶
Código de saída:¶
CREATE EXTERNAL TABLE usando o formato Hive¶
A criação de tabelas externas usando o formato Hive também é compatível. Será adicionado um FDM informando ao usuário que a inserção não é suportada nessas tabelas.
Código de entrada:¶
Código de saída:¶
Problemas conhecidos¶
1. Tabelas externas com formatos de arquivo não suportados
O Snowflake oferece suporte aos seguintes formatos Spark:
CSV
PARQUET
ORC
XML
JSON
AVRO
Outros formatos serão marcados como não suportados.
2. Opções de tabela não suportadas
Algumas opções de tabela não são suportadas no SnowConvert AI e são marcados com um EWI.