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
A primeira etapa é criar um banco de dados no qual 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 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 na qual você deseja gravar seus resultados
- your-storage-account-name - o nome da conta de armazenamento em que você deseja gravar os resultados (certifique-se de ter um contêiner chamado “csv” ou de alterar o nome do contêiner 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;
Observação
Você deve modificar esse script e alterar a localização de destino para executá-lo novamente. As tabelas externas não podem ser criadas no local onde você já tem 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], para que você esteja usando o banco de dados que criou.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Comentários
Depois que você armazena seus 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.
Os únicos tipos de saída com suporte atualmente são Parquet e CSV.
Conteúdo relacionado
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.