Archiviare i risultati delle query nell'archiviazione tramite il pool SQL serverless in Azure Synapse Analytics
Questo articolo illustra come archiviare i risultati delle query nell'archiviazione tramite il pool SQL serverless.
Prerequisiti
Il primo passaggio consiste nel creare un database in cui verranno eseguite le query. Inizializzare quindi gli oggetti eseguendo uno script di installazione su tale database. Questo script di configurazione creerà le origini dati, le credenziali con ambito database e i formati di file esterni usati per leggere i dati in questi esempi.
Seguire le istruzioni riportate in questo articolo per creare origini dati, credenziali con ambito database e formati di file esterni usati per scrivere i dati nell'archiviazione di output.
CREATE EXTERNAL TABLE AS SELECT
È possibile usare l'istruzione CREATE EXTERNAL TABLE AS SELECT (CETAS) per archiviare i risultati della query nell'archiviazione.
Nota
Cambiare la prima riga della query, ossia [mydbname], in modo da usare il database creato.
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
È necessario modificare questo script e cambiare la posizione di destinazione per eseguirlo di nuovo. Non è possibile creare tabelle esterne nella posizione in cui sono già disponibili dati.
Usare la tabella esterna
È possibile usare la tabella esterna creata tramite CETAS come una normale tabella esterna.
Nota
Cambiare la prima riga della query, ossia [mydbname], in modo da usare il database creato.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Osservazioni:
Una volta archiviati i risultati, non è possibile modificare i dati nella tabella esterna. Non è possibile ripetere questo script perché CETAS non sovrascriverà i dati sottostanti creati nell'esecuzione precedente. Esprimere un voto per gli elementi di feedback seguenti se sono necessari nei propri scenari oppure proporre nuove funzionalità nel sito di feedback di Azure:
- Abilitare l'inserimento di nuovi dati in una tabella esterna
- Abilitare l'eliminazione di dati da una tabella esterna
- Specificare partizioni in CETAS
- Specificare dimensioni e numeri di file
Gli unici tipi di output supportati sono Parquet e CSV. È possibile votare per gli altri tipi nel sito di feedback di Azure.
Passaggi successivi
Per altre informazioni su come eseguire una query su tipi di file diversi, vedere gli articoli Eseguire query su un singolo file CSV, Eseguire query su file Parquet e Eseguire query su file JSON.