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 apprenez à interroger différents types de fichiers en utilisant le pool SQL serverless. Pour afficher la liste des formats pris en charge, consultez OPENROWSET.
Ce démarrage rapide montre comment interroger des 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.
- Visual Studio Code avec l'extension mssql est un outil de développement et de données léger et multi-plateforme 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 laisse exécuter des requêtes SQL sur votre base de données à la demande.
Ce démarrage rapide utilise les paramètres suivants :
Paramètre | Description |
---|---|
Adresse du point de terminaison de service du pool SQL serverless | Utilisée comme nom de serveur |
Région du point de terminaison de service du pool SQL serverless | Utilisée pour déterminer le stockage à 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 pouvez utiliser cette base de données pour créer vos vues et pour les exemples de requêtes fournis dans cet article.
Remarque
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 car vous en aurez besoin plus loin dans le guide de démarrage rapide.
Utilisez la commande T-SQL 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 la source de données utilisée dans les exemples de cette section. Remplacez <strong-password-here>
par un mot de passe fort de votre choix.
-- create master key that will protect the credentials:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong-password-here>'
-- create credentials for containers in our demo storage account
CREATE DATABASE SCOPED CREDENTIAL sqlondemand
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = 'sv=2022-11-02&ss=b&srt=co&sp=rl&se=2042-11-26T17:40:55Z&st=2024-11-24T09:40:55Z&spr=https&sig=DKZDuSeZhuCWP9IytWLQwu9shcI5pTJ%2Fw5Crw6fD%2BC8%3D'
GO
CREATE EXTERNAL DATA SOURCE SqlOnDemandDemo WITH (
LOCATION = 'https://sqlondemandstorage.blob.core.windows.net',
CREDENTIAL = sqlondemand
);
Interroger des fichiers CSV
L’image suivante affiche 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.
Remarque
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 trouver plus d’informations, consultez Interroger des fichiers Parquet à l’aide d’un pool SQL serverless.
Interroger des fichiers JSON
Exemple de fichier JSON
Les fichiers sont stockés au sein d’un conteneur json, à l’aide d’un dossier livres 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"
}
Exemple de requête
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 :
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'
Important
Nous lisons l’intégralité du fichier JSON sous la forme d’une seule ligne ou colonne. Ainsi, FIELDTERMINATOR
, FIELDQUOTE
et ROWTERMINATOR
sont définis sur 0x0b
parce que nous ne nous attendons pas à le trouver dans le fichier.
Contenu connexe
- Interroger des fichiers CSV
- Interroger des dossiers et plusieurs fichiers
- Interroger des fichiers spécifiques
- Interroger des fichiers Parquet à l’aide d’un pool SQL serverless
- Interroger des types imbriqués dans les fichiers Parquet et JSON
- Interroger des fichiers JSON à l’aide d’un pool SQL serverless
- Créer et utiliser des vues à l’aide du pool SQL serverless
- Créer et utiliser des tables externes natives
- Stocker les résultats de la requête dans le stockage