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

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

Pré-requisitos

Sua primeira etapa é criar um banco de dados em que 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, as credenciais no escopo do banco de dados e os formatos de arquivo externos que são usados para ler os dados nestas amostras.

Siga as instruções deste artigo para criar fontes de dados, credenciais no escopo do banco de dados e formatos de arquivo externos que são usados para gravar dados no armazenamento de saída.

Create external table as select

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

Observação

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

USE [mydbname];
GO

CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D';
GO

CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH (
    LOCATION = 'https://<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;

Observação

Você deve modificar esse script e alterar a localização de destino para executá-lo novamente. Não é possível criar tabelas externas em uma localização em que você já tenha alguns dados.

Usar a tabela externa

Você pode usar a tabela externa criada por meio da CETAS como uma tabela externa normal.

Observação

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

USE [mydbname];
GO

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

Comentários

Depois de armazenar os resultados, os dados na tabela externa não podem ser modificados. Você não pode repetir esse script porque o CETAS não substituirá os dados subjacentes criados na execução anterior. Vote nos seguintes itens de comentários se alguns deles forem necessários em seus cenários ou proponha novos no site de comentários do Azure:

Os únicos tipos de saída com suporte são Parquet e CSV. Vote nos outros tipos no site de comentários do Azure.

Próximas etapas

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