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:
- Ativar a inserção de novos dados numa tabela externa
- Ativar a eliminação de dados da tabela externa
- Especificar partições no CETAS
- Especificar tamanhos e contagens de ficheiros
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 .