Partilhar via


Armazene os resultados da consulta no armazenamento usando o pool SQL sem servidor no Azure Synapse Analytics

Neste artigo, você aprenderá como armazenar os resultados da consulta no armazenamento usando o pool SQL sem servidor.

Pré-requisitos

Seu primeiro passo é criar um banco de dados onde você executará as consultas. Em seguida, inicialize os objetos executando o script de instalação nesse banco de dados. Esse script de instalação criará as fontes de dados, credenciais com escopo de banco de dados e formatos de arquivo externos usados para ler dados nesses exemplos.

Siga as instruções neste artigo para criar fontes de dados, credenciais com escopo de banco de dados e formatos de arquivo externos usados para gravar dados no armazenamento de saída.

Criar tabela externa como selecionar

Você pode usar a instrução CREATE EXTERNAL TABLE AS SELECT (CETAS) para armazenar os resultados da consulta no armazenamento.

Nota

Altere esses valores na consulta para refletir seu ambiente:

  • mydbname - altere-o para o nome do banco de dados que você criou
  • storage-account-sas - a assinatura de acesso compartilhado para uma conta de armazenamento onde você deseja escrever seus resultados
  • your-storage-account-name - o nome da sua conta de armazenamento onde pretende escrever os resultados (certifique-se de que tem um contentor chamado 'csv' ou que altera o nome do contentor aqui também)
USE [mydbname];
GO

CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = 'storage-account-sas';
GO

CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
    LOCATION = 'https://your-storage-account-name.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite]
);
GO

CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
GO

CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH (
        LOCATION = 'populationParquet/',
        DATA_SOURCE = [MyDataSource],
        FILE_FORMAT = [ParquetFF]
) AS
SELECT
    *
FROM
    OPENROWSET(
        BULK 'csv/population-unix/population.csv',
        DATA_SOURCE = 'sqlondemanddemo',
        FORMAT = 'CSV', PARSER_VERSION = '2.0'
    ) WITH (
        CountryCode varchar(4),
        CountryName varchar(64),
        Year int,
        PopulationCount int
    ) AS r;

Nota

Você deve modificar esse script e alterar o local de destino para executá-lo novamente. Não é possível criar tabelas externas no local onde você já tem alguns dados.

Usar a tabela externa

Pode utilizar a tabela externa criada através do CETAS como uma tabela externa normal.

Nota

Altere a primeira linha da consulta, ou seja, [mydbname], para que você esteja usando o banco de dados criado.

USE [mydbname];
GO

SELECT
    CountryName, PopulationCount
FROM PopulationCETAS
WHERE
    [Year] = 2019
ORDER BY
    [PopulationCount] DESC;

Observações

Depois de armazenar os resultados, os dados na tabela externa não podem ser modificados. Não é possível repetir este script porque o CETAS não substituirá os dados subjacentes criados na execução anterior.

Os únicos tipos de saída suportados são atualmente Parquet e CSV.

Para obter mais informações sobre como consultar diferentes tipos de arquivo, consulte os artigos Consultar arquivo CSV único, Consultar arquivos Parquet e Consultar arquivos JSON.