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

Conseil / Astuce

Microsoft Fabric Data Warehouse est un entrepôt relationnel à l’échelle de l’entreprise sur une base de lac de données, avec une architecture future, une IA intégrée et de nouvelles fonctionnalités. Si vous débutez avec l'entreposage de données, commencez par Fabric Data Warehouse. Les charges de travail de pool SQL existantes dédicées peuvent être mises à niveau vers Fabric pour accéder à de nouvelles fonctionnalités dans la science des données, l’analytique en temps réel et la création de rapports.

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.

Créer une table externe en tant que sélection

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

Remarque

Modifiez ces valeurs dans la requête pour refléter votre environnement :

  • mydbname : Remplacez-le par le nom de la base de données que vous avez créée
  • storage-account-sas : La signature d’accès partagé pour un compte de stockage dans lequel vous souhaitez écrire vos résultats
  • your-storage-account-name : Le nom de votre compte de stockage où vous voulez écrire vos résultats (Assurez-vous que vous disposez d’un conteneur appelé « csv » ou que vous modifiez le nom du conteneur ici aussi)
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;

Remarque

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.

Remarque

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;

Observations

Une fois que vous avez enregistré vos résultats, les données de la table externe ne peuvent plus être modifiées. Vous ne pouvez pas répéter ce script car CETAS n’écrasera pas les données sous-jacentes créées lors de l’exécution précédente.

Les seuls types de sortie pris en charge sont actuellement Parquet et CSV.

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.