Stocker des résultats de requêtes en utilisant le pool SQL serverless dans Azure Synapse Analytics

Dans cet article, vous allez découvrir comment stocker des résultats de requêtes dans un stockage en utilisant le pool SQL serverless.

Prérequis

La première étape consiste à créer la base de données dans laquelle seront exécutées les requêtes. Ensuite, initialisez les objets en exécutant le script d’installation sur cette base de données. Ce script d’installation crée les sources de données, les informations d’identification limitées à la base de données et les formats de fichiers externes utilisés pour la lecture des données dans ces exemples.

Suivez les instructions de cet article pour créer des sources de données, des informations d’identification limitées à la base de données et des formats de fichiers externes utilisés pour l’écriture des données dans le stockage de sortie.

CREATE EXTERNAL TABLE AS SELECT

Vous pouvez utiliser l’instruction CREATE EXTERNAL TABLE AS SELECT (CETAS) pour stocker les résultats des requêtes dans le stockage.

Notes

Modifiez la première ligne de la requête, c’est-à-dire [mydbname], afin d’utiliser la base de données que vous avez créée.

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;

Notes

Vous devez modifier ce script et changer l’emplacement cible pour le réexécuter. Les tables externes ne peuvent pas être créées à l’emplacement où vous avez déjà des données.

Utiliser la table externe

Vous pouvez utiliser la table externe créée via CETAS comme n’importe quelle table externe.

Notes

Modifiez la première ligne de la requête, c’est-à-dire [mydbname], afin d’utiliser la base de données que vous avez créée.

USE [mydbname];
GO

SELECT
    CountryName, PopulationCount
FROM PopulationCETAS
WHERE
    [Year] = 2019
ORDER BY
    [PopulationCount] DESC;

Notes

Une fois vos résultats stockés, vous ne pouvez pas modifier les données dans la table externe. Vous ne pouvez pas répéter ce script, car CETAS ne remplace pas les données sous-jacentes créées lors de l’exécution précédente. Votez pour les éléments de commentaires suivants si certains d’entre eux sont requis dans vos scénarios, ou proposez-en d’autres sur le site de commentaires Azure :

Les seuls types de sortie pris en charge sont Parquet et CSV. Vous pouvez voter pour les autres types sur le site de commentaires Azure.

Étapes suivantes

Pour plus d’informations sur la façon d’interroger différents types de fichiers, consultez les articles Interroger un fichier CSV, Interroger des fichiers Parquet et Interroger des fichiers JSON.