Avvio rapido: utilizzare un pool SQL serverless
Il pool SQL serverless di Synapse è un servizio di query serverless che consente di eseguire le query SQL sui file presenti in Archiviazione di Azure. Questo argomento di avvio rapido illustra come eseguire query su diversi tipi di file tramite il pool SQL serverless. In OPENROWSET sono elencati i formati supportati.
Questo avvio rapido illustra l'esecuzione di query: file CSV, Apache Parquet e JSON.
Prerequisiti
Scegliere un client SQL per l'esecuzione delle query:
- Azure Synapse Studio è uno strumento Web che può essere usato per esplorare i file nell'archiviazione e creare query SQL.
- Azure Data Studio è uno strumento client che consente di eseguire query SQL e notebook sul database su richiesta.
- SQL Server Management Studio è uno strumento client che consente di eseguire query SQL sul database su richiesta.
Parametri per questo argomento di avvio rapido:
Parametro | Descrizione |
---|---|
indirizzo dell'endpoint di servizio del pool SQL serverless | Usato come nome del server |
area dell'endpoint di servizio del pool SQL serverless | Usata per determinare quale archiviazione si userà negli esempi |
Nome utente e password per l'accesso all'endpoint | Usati per accedere all'endpoint |
Database usato per creare le viste | Database usato come punto di partenza negli esempi |
Prima configurazione
Prima di usare gli esempi:
- Creare un database per le viste (se si vogliono usare le viste)
- Creare le credenziali che devono essere usate dal pool SQL serverless per accedere ai file nell'archiviazione
Creazione del database
Creare un database personalizzato a scopo dimostrativo. Questo database verrà usato per creare le viste e per le query di esempio in questo articolo.
Nota
I database vengono usati solo per visualizzare i metadati, non i dati effettivi. Prendere nota del nome del database per usarlo successivamente nella guida di avvio rapido.
Usare la query seguente, sostituendo mydbname
con un nome a scelta:
CREATE DATABASE mydbname
Creare un'origine dati
Per eseguire query con il pool SQL serverless, creare un'origine dati che possa essere usata dal pool per accedere ai file nell'archiviazione. Eseguire il frammento di codice seguente per creare l’origine dati usata negli esempi di questa sezione:
-- 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
);
Eseguire query su file CSV
L'immagine seguente è un'anteprima del file su cui eseguire le query:
La query seguente mostra come leggere un file CSV che non contiene una riga di intestazione, con il carattere di nuova riga in stile Windows e colonne delimitate da virgole:
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
È possibile specificare lo schema in fase di compilazione della query. Per altri esempi, vedere Eseguire query su file CSV.
Eseguire query su file Parquet
L'esempio seguente mostra le funzionalità di inferenza di schema automatica per l'esecuzione di query sui file Parquet. Restituisce il numero di righe per settembre 2017 senza specificare lo schema.
Nota
Non è necessario specificare le colonne nella clausola OPENROWSET WITH
durante la lettura dei file Parquet. In questo caso, il pool SQL serverless usa i metadati del file Parquet e associa le colonne in base al nome.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Vedere altre informazioni sull'esecuzione di query su file Parquet.
Eseguire query su file JSON
File di esempio JSON
I file sono archiviati nella cartella books del contenitore json e contengono voci di singoli libri con la struttura seguente:
{
"_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"
}
Eseguire query su file JSON
La query seguente mostra come usare JSON_VALUE per recuperare valori scalari (titolo, editore) da un libro intitolato 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'
Importante
L'intero file JSON viene letto come singola riga/colonna, quindi FIELDTERMINATOR, FIELDQUOTE e ROWTERMINATOR sono impostati su 0x0b perché non è previsto trovarli nel file.
Passaggi successivi
A questo punto è possibile continuare con gli articoli seguenti:
- Eseguire query su file CSV
- Eseguire query su cartelle e più file CSV
- Eseguire query su file specifici
- Eseguire query su file Parquet
- Eseguire query su tipi annidati di Parquet
- Eseguire query su file JSON
- Creazione e uso delle viste
- Creazione e uso di tabelle esterne
- Archiviare i risultati delle query in Archiviazione di Azure
- Eseguire query su file CSV