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:
- Habilitar a inserção de novos dados em uma tabela externa
- Habilitar a exclusão de dados da tabela externa
- Especificar partições no CETAS
- Especificar tamanhos e contagens de arquivos
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.