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
Modificare questi valori nella query per riflettere l'ambiente:
- mydbname: modificarlo con il nome del database creato
- storage-account-sas: firma di accesso condiviso per un account di archiviazione in cui si vogliono scrivere i risultati
- your-storage-account-name: il nome dell'account di archiviazione in cui si vogliono scrivere i risultati (assicurarsi di avere un contenitore denominato "csv" o di modificare il nome del contenitore anche qui)
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;
Nota
È necessario modificare questo script e cambiare la posizione di destinazione per eseguirlo di nuovo. Non è possibile creare tabelle esterne nel percorso in cui sono già presenti alcuni dati.
Usare la tabella esterna
È possibile usare la tabella esterna creata tramite CETAS come una normale tabella esterna.
Nota
Modificare la prima riga della query, ovvero [mydbname], in modo da usare il database creato.
USE [mydbname];
GO
SELECT
CountryName, PopulationCount
FROM PopulationCETAS
WHERE
[Year] = 2019
ORDER BY
[PopulationCount] DESC;
Osservazioni:
Dopo aver archiviato i risultati, i dati nella tabella esterna non possono essere modificati. Non è possibile ripetere questo script perché CETAS non sovrascriverà i dati sottostanti creati nell'esecuzione precedente.
Gli unici tipi di output supportati sono attualmente Parquet e CSV.
Contenuto correlato
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.