Partilhar via


Armazenar os resultados da consulta no armazenamento com o conjunto de SQL sem servidor no Azure Synapse Analytics

Neste artigo, irá aprender a armazenar os resultados da consulta no armazenamento com o conjunto de SQL sem servidor.

Pré-requisitos

O primeiro passo é criar uma base de dados onde irá executar as consultas. Em seguida, inicialize os objetos ao executar o script de configuração nessa base de dados. Este script de configuração irá criar as origens de dados, as credenciais no âmbito da base de dados e os formatos de ficheiro externos que são utilizados para ler dados nestes exemplos.

Siga as instruções neste artigo para criar origens de dados, credenciais no âmbito da base de dados e formatos de ficheiro externos que são utilizados para escrever dados no armazenamento de saída.

Criar tabela externa à medida que seleciona

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

Nota

Altere a primeira linha na consulta, ou seja, [mydbname], por isso está a utilizar a base de dados que criou.

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;

Nota

Tem de modificar este script e alterar a localização de destino para executá-lo novamente. Não é possível criar tabelas externas na localização onde já tem alguns dados.

Utilizar a tabela externa

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

Nota

Altere a primeira linha na consulta, ou seja, [mydbname], por isso está a utilizar a base de dados que criou.

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 pode repetir este script porque o CETAS não substituirá os dados subjacentes criados na execução anterior. Vote nos seguintes itens de comentários se alguns destes itens forem necessários nos seus cenários ou proponha os novos no site de comentários do Azure:

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

Passos seguintes

Para obter mais informações sobre como consultar diferentes tipos de ficheiros, veja os artigos Consultar ficheiro CSV único, Consultar Ficheiros Parquet e Consultar ficheiros JSON .