Démarrage rapide : Utiliser un pool SQL serverless
Le pool SQL serverless Synapse est un service de requête serverless qui vous permet d’exécuter des requêtes SQL sur des fichiers placés dans le Stockage Azure. Dans ce guide de démarrage rapide, vous allez apprendre à interroger différents types de fichiers en utilisant le pool SQL serverless. Les formats pris en charge sont répertoriés dans OPENROWSET.
Ce démarrage rapide montre comment interroger : Fichiers CSV, Apache Parquet et JSON.
Prérequis
Choisissez le client SQL avec lequel vous souhaitez émettre les requêtes :
- Azure Synapse Studio est un outil web que vous pouvez utiliser pour parcourir les fichiers dans le stockage et créer des requêtes SQL.
- Azure Data Studio est un outil client qui vous permet d’exécuter des requêtes SQL et des notebooks sur votre base de données à la demande.
- SQL Server Management Studio est un outil client qui vous permet d’exécuter des requêtes SQL sur votre base de données à la demande.
Paramètres pour ce guide de démarrage rapide :
Paramètre | Description |
---|---|
Adresse du point de terminaison du service de pool SQL serverless | Utilisée comme nom de serveur |
Région du point de terminaison du service de pool SQL serverless | Utilisée pour déterminer le stockage que nous allons utiliser dans les exemples |
Nom d’utilisateur et mot de passe pour l’accès au point de terminaison | Utilisés pour accéder au point de terminaison |
Base de données utilisée pour créer des vues | Base de données utilisée comme point de départ dans les exemples |
Première configuration
Avant d’utiliser les exemples :
- Créer une base de données pour vos vues (au cas où vous souhaiteriez utiliser des vues)
- Créer les informations d’identification que devra utiliser le pool SQL serverless pour accéder aux fichiers dans le stockage
Créer une base de données
Créez votre propre base de données à des fins de démonstration. Vous utiliserez cette base de données pour créer vos vues et pour les exemples de requêtes fournis dans cet article.
Notes
Les bases de données sont utilisées uniquement pour les métadonnées de vue, et non pour les données réelles. Notez le nom de base de données que vous utilisez, car vous en aurez besoin plus loin dans le Guide de démarrage rapide.
Utilisez la requête suivante, en remplaçant mydbname
par le nom de votre choix :
CREATE DATABASE mydbname
Créer une source de données
Pour exécuter des requêtes à l’aide du pool SQL serverless, créez une source de données que le pool peut utiliser pour accéder aux fichiers dans le stockage. Exécutez l’extrait de code suivant pour créer une source de données utilisée dans les exemples de cette section :
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <enter very strong password here>
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28&ss=bf&srt=sco&sp=rl&st=2019-10-14T12%3A10%3A25Z&se=2061-12-31T12%3A10%3A00Z&sig=KlSU2ullCscyTS0An0nozEpo4tO5JAgGBvw%2FJX2lguw%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Interroger des fichiers CSV
L’image suivante est un aperçu du fichier à interroger :
La requête suivante montre comment lire un fichier CSV qui ne contient pas de ligne d’en-tête et comprend des caractères de nouvelle ligne de style Windows et des colonnes délimitées par des virgules :
SELECT TOP 10 *
FROM OPENROWSET
(
BULK 'csv/population/*.csv',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT = 'CSV', PARSER_VERSION = '2.0'
)
WITH
(
country_code VARCHAR (5)
, country_name VARCHAR (100)
, year smallint
, population bigint
) AS r
WHERE
country_name = 'Luxembourg' AND year = 2017
Vous pouvez spécifier le schéma au moment de la compilation de la requête. Pour plus d’exemples, consultez la procédure indiquant comment interroger des fichiers CSV.
Interroger des fichiers Parquet
L’exemple suivant montre les fonctionnalités d’inférence automatique du schéma pour l’interrogation des fichiers Parquet. Il retourne le nombre de lignes en septembre 2017 sans spécifier de schéma.
Notes
Vous n’avez pas besoin de spécifier de colonnes dans la clause OPENROWSET WITH
lors de la lecture de fichiers Parquet. Dans ce cas, le pool SQL serverless utilise les métadonnées dans le fichier Parquet et lie les colonnes par nom.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Pour plus d’informations sur l’interrogation des fichiers Parquet, cliquez ici.
Interroger des fichiers JSON
Exemple de fichier JSON
Les fichiers sont stockés dans un dossier books au sein d’un conteneur json, et contiennent une entrée de livre unique avec la structure suivante :
{
"_id":"ahokw88",
"type":"Book",
"title":"The AWK Programming Language",
"year":"1988",
"publisher":"Addison-Wesley",
"authors":[
"Alfred V. Aho",
"Brian W. Kernighan",
"Peter J. Weinberger"
],
"source":"DBLP"
}
Interroger des fichiers JSON
La requête suivante montre comment utiliser JSON_VALUE pour récupérer des valeurs scalaires (titre, éditeur) à partir d’un livre intitulé Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected articles :
SELECT
JSON_VALUE(jsonContent, '$.title') AS title
, JSON_VALUE(jsonContent, '$.publisher') as publisher
, jsonContent
FROM OPENROWSET
(
BULK 'json/books/*.json',
DATA_SOURCE = 'SqlOnDemandDemo'
, FORMAT='CSV'
, FIELDTERMINATOR ='0x0b'
, FIELDQUOTE = '0x0b'
, ROWTERMINATOR = '0x0b'
)
WITH
( jsonContent varchar(8000) ) AS [r]
WHERE
JSON_VALUE(jsonContent, '$.title') = 'Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected Topics'
Important
Nous lisons l’intégralité du fichier JSON sous la forme d’une seule ligne/colonne. Ainsi, FIELDTERMINATOR, FIELDQUOTE et ROWTERMINATOR sont définis sur 0x0B, car nous ne pensons pas les trouver dans le fichier.
Étapes suivantes
Vous êtes maintenant prêt à poursuivre avec les articles suivants :
- Interroger un fichier CSV
- Interroger des dossiers et plusieurs fichiers CSV
- Interroger des fichiers spécifiques
- Interroger des fichiers Parquet
- Interroger des types imbriqués Parquet
- Interroger des fichiers JSON
- Création et utilisation de vues
- Création et utilisation de tables externes
- Conserver le résultat d’une requête dans le stockage Azure
- Interroger un fichier CSV