Linhagem de dados Criar tabela externa | Gudu SQLFlow

No data warehouse, os dados originais são sempre provenientes de armazenamento em massa, como Amazon S3, Google Cloud Storage e Microsoft Azure, e esses dados serão carregados no sistema, como BigQuery, Snowflake, Redshift e Microsoft Azure. Um dos métodos usados para carregar ou usar esses dados é usar a instrução SQL "create external table". A linhagem dos dados do arquivo externo para a tabela externa pode ser facilmente capturada pelo Gudu SQLFlow analisando a consulta SQL de criação de tabela externa. Com esses dados em mãos, Gudu SQLFlow simplifica muito a capacidade de rastrear erros até a causa raiz em um processo de análise de dados.

Linhagem de Dados Criar Tabela Externa

Linhagem de Dados Criar Tabela Externa

No artigo, apresentaremos a instrução SQL de criação de tabela externa usada no BigQuery, Snowflake, Redshift e Microsoft Azure e veremos a linhagem de dados gerada pela Gudu SQLFlow depois de analisar o script SQL.

BigQuery cria tabela externa

Tabelas externas permitem que o BigQuery consulte dados armazenados fora do armazenamento do BigQuery. Para obter mais informações sobre tabelas externas, consulte introdução a fontes de dados externas.

Gudu SQLFlow pode analisar a instrução de criação de tabela externa do BigQuery e criar a linhagem de dados depois de analisar esta instrução SQL.

Aqui está uma consulta SQL para criação de tabela externa do BigQuery:

CRIAR OU SUBSTITUIR TABELA EXTERNA dataset.CsvTable ( x INT64, y STRING ) OPÇÕES ( format = 'CSV', uris = ['gs://bucket/path1.csv'], field_delimiter = '|', max_bad_records = 5 );

A linhagem de dados gerada para o SQL acima aqui, como você pode ver, o arquivo gs://bucket/path1.csv armazenado no Google Storage é tratado como a origem da tabela externa dataset.CsvTable.

Linhagem de Dados Criar Tabela Externa
Eumparaum eueueeumge Creumparae Exparaereumeu Tumbeue

Floco de neve cria tabela externa

O Snowflake cria uma tabela externa para ler dados de um conjunto de um ou mais arquivos em um estágio externo especificado e gera os dados em uma única coluna VARIANT. Criar instrução de tabela externa cria uma nova tabela externa no esquema atual/especificado ou substitui uma tabela externa existente.

Antes de criar uma tabela externa, precisamos criar um palco externo para o local de armazenamento onde os arquivos de dados são armazenados.

criar estágio s1 url='s3://mybucket/files/logs/' ... ;

Crie a tabela externa particionada:

criar tabela externa et1( date_part data como to_date(split_part(metadata$filename, '/', 3) || '/' || split_part(metadata$filename, '/', 4) || '/' || split_part(metadata$filename, '/', 5), 'AAAA/MM/DD'), timestamp bigint como (valor:timestamp::bigint), col2 varchar como (valor:col2::varchar)) partição por (date_part) localização=@s1/logs/ atualização_automática = true formato_de_arquivo = (tipo = parquet) aws_sns_topic = 'arn:aws:sns:us-west-2:001234567890:s3_mybucket';

O Gudu SQLFlow pode processar a instrução de consulta de criação de tabela externa do Snowflake e construir uma linhagem de dados entre os arquivos no estágio externo e a tabela externa como esta:

Linhagem de Dados Criar Tabela Externa
Eumparaum eueueeumge Creumparae Exparaereumeu Tumbeue

No Snowflake, os dados de arquivos externos também podem ser movidos para a tabela usando copiar para A instrução SQL e o Gudu SQLFlow também podem detectar a linhagem de dados na cópia para a instrução de consulta SQL.

SQL Server e Azure Synapse Analytics

O comando Create external table cria uma tabela externa para o PolyBase acessar dados armazenados em um cluster Hadoop ou armazenamento de blobs do Azure. A tabela externa do PolyBase que faz referência a dados armazenados em um cluster Hadoop ou armazenamento de blobs do Azure.

No Azure Synapse Analytics, a tabela externa criada:

  • Consulte dados de armazenamento de blobs do Hadoop ou do Azure com instruções Transact-SQL.
  • Importe e armazene dados do Hadoop ou do armazenamento de blobs do Azure.
  • Importe e armazene dados do Azure Data Lake Store.

Para criar uma tabela externa, uma fonte de dados externa deve ser criada primeiro:

CRIAR FONTE DE DADOS EXTERNA AzureDataLakeStore COM (TIPO = HADOOP, LOCALIZAÇÃO = 'abfss://data@pbasetr.azuredatalakestore.net' )

Em seguida, crie uma tabela externa usando esta consulta SQL:

CRIAR TABELA EXTERNA [dbo].[DimProductexternal] ( [ProductKey] [int] NÃO NULO, [ProductLabel] nvarchar NULO, [ProductName] nvarchar NULO ) COM ( LOCALIZAÇÃO='/DimProduct/' , ORIGEM_DE_DADOS = AzureDataLakeStore , FORMATO_DE_ARQUIVO = TextFileFormat , TIPO_DE_REJEIÇÃO = VALOR , VALOR_DE_REJEIÇÃO = 0 ) ;

A linhagem de dados gerada pelo Gudu SQLFlow após analisar a instrução create external table é:

SPeu Servocêer creumparae exereumeu paraumbeue eumparaum eueueeumge

AWS Redshift cria tabela externa

Você pode criar uma tabela externa no Amazon Redshift, AWS Glue, Amazon Athena ou em um metastore do Apache Hive. Se a sua tabela externa estiver definida no AWS Glue, Athena ou em um metastore do Hive, primeiro crie um esquema externo que faça referência ao banco de dados externo. Em seguida, você pode referenciar a tabela externa na sua instrução SELECT prefixando o nome da tabela com o nome do esquema, sem precisar criar a tabela no Amazon Redshift. 

O exemplo a seguir cria uma tabela chamada SALES no esquema externo do Amazon Redshift chamado espectro. Os dados estão em arquivos de texto delimitados por tabulação.

criar tabela externa spectrum.sales( salesid inteiro, listid inteiro, sellerid inteiro, buyerid inteiro, eventid inteiro, dateid smallint, qtysold smallint, pricepaid decimal(8,2), commission decimal(8,2), saletime timestamp) formato de linha campos delimitados terminados por 't' armazenados como arquivo de texto local 's3://awssampledbuswest2/tickit/spectrum/sales/' propriedades da tabela ('numRows'='172000');

A linhagem de dados gerada pelo Gudu SQLFlow após analisar o SQL acima é:

Reeeoeuepara Creumparae Exparaereumeu Tumbeue Eumparaum eueueeumge

Conclusão 

Obrigado por ler nosso artigo e se ele puder ajudá-lo a ter um melhor entendimento de como a linhagem de dados cria uma tabela externa, ficaríamos muito felizes. Se você quiser saber mais sobre linhagem de dados cria tabela externa, gostaríamos de aconselhá-lo a visitar o nosso site Gudu SQLFlow para mais informações. (Editado por Ryan em 25 de abril de 2022)

Experimente o Gudu SQLFlow Live

Versão SQLFlow Cloud

Assine o boletim semanal

Deixe um comentário