Avvio rapido: utilizzare un pool SQL serverless
Il pool SQL serverless di Synapse è un servizio di query serverless che consente di eseguire query SQL sui file inseriti in Archiviazione di Azure. In questa guida introduttiva si apprenderà come eseguire query su vari tipi di file usando il pool SQL serverless. Per un elenco dei formati supportati, vedere OPENROWSET.
Questa guida introduttiva illustra come eseguire query su 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.
- Visual Studio Code con l'estensionemssql è uno strumento di sviluppo e dati leggero multipiattaforma che consente di eseguire query SQL e notebook nel database su richiesta.
- SQL Server Management Studio è uno strumento client che consente di eseguire query SQL nel database su richiesta.
Questa guida introduttiva usa i parametri seguenti:
Parametro | Descrizione |
---|---|
Indirizzo dell'endpoint servizio del pool SQL serverless | Usato come nome del server |
Area dell'endpoint servizio del pool SQL serverless | Usato per determinare quale spazio di archiviazione usare 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 , nel caso in cui si desideri usare le viste.
- Creare le credenziali da usare dal pool SQL serverless per accedere ai file nell'archiviazione.
Creazione del database
Creare un database personalizzato a scopo dimostrativo. È possibile usare questo database 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. Annotare il nome del database da usare più avanti nella guida introduttiva.
Usare il comando T-SQL seguente, passando <mydbname>
a un nome di propria scelta:
CREATE DATABASE <mydbname>
Creare un'origine dati
Per eseguire query usando il pool SQL serverless, creare un'origine dati che può essere usata dal pool SQL serverless per accedere ai file nell'archiviazione. Eseguire il frammento di codice seguente per creare l'origine dati usata negli esempi in questa sezione. Sostituire <strong-password-here>
con una password efficace a propria scelta.
-- 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
);
Eseguire query su file CSV
L'immagine seguente mostra un'anteprima del file su cui eseguire una 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 Come 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 colonne nella OPENROWSET WITH
clausola 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
Per altre informazioni, vedere Eseguire query sui file Parquet usando il pool SQL serverless.
Eseguire query su file JSON
File di esempio JSON
I file vengono archiviati in un contenitore JSON, usando i libri delle cartelle e contengono una singola voce di libro 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"
}
Query di esempio
La query seguente illustra come usare JSON_VALUE per recuperare i valori scalari (titolo, editore) da un libro con il titolo Probabilistic and Statistical Methods in Cryptologia, 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'
Importante
L'intero file JSON viene letto come una singola riga o colonna. Quindi FIELDTERMINATOR
, FIELDQUOTE
e ROWTERMINATOR
sono impostati su 0x0b
perché non ci aspettiamo di trovarlo nel file.
Contenuto correlato
- Eseguire query su file CSV
- Eseguire query su cartelle e più file
- Eseguire query su file specifici
- Eseguire query sui file Parquet usando il pool SQL serverless
- Eseguire query sui tipi annidati nei file Parquet e JSON
- Eseguire query sui file JSON usando il pool SQL serverless
- Creare e usare viste con il pool SQL serverless
- Creare e usare tabelle esterne native
- Archiviare i risultati delle query nell'archiviazione