Snelstartgids: Serverloze SQL-pool gebruiken
Synapse serverloze SQL-pool is een serverloze queryservice waarmee u SQL-query's kunt uitvoeren op bestanden die in Azure Storage zijn geplaatst. In deze quickstart leert u hoe u query's kunt uitvoeren op verschillende typen bestanden met behulp van een serverloze SQL-pool. Zie OPENROWSET voor een lijst met ondersteunde indelingen.
In deze quickstart ziet u hoe u query's kunt uitvoeren op CSV-, Apache Parquet- en JSON-bestanden.
Vereisten
Kies een SQL-client waarmee u query's wilt uitvoeren:
- Azure Synapse Studio is een webhulpprogramma waarmee u kunt zoeken naar bestanden in opslag en SQL-query's kunt maken.
- Visual Studio Code met de mssql-extensie is een platformoverschrijdend lichtgewicht hulpprogramma voor ontwikkelaars en gegevens waarmee u SQL-query's en notebooks kunt uitvoeren op uw on-demand database.
- SQL Server Management Studio is een clienthulpprogramma waarmee u SQL-query's kunt uitvoeren op uw on-demand database.
In deze quickstart worden de volgende parameters gebruikt:
Parameter | Description |
---|---|
Eindpuntadres van de service voor serverloze SQL-pools | Gebruikt als servernaam |
Eindpuntregio van de service voor serverloze SQL-pools | Wordt gebruikt om te bepalen welke opslag moet worden gebruikt in voorbeelden |
Gebruikersnaam en wachtwoord voor eindpunttoegang | Gebruikt voor toegang tot het eindpunt |
De database die wordt gebruikt voor het maken van weergaven | De database die wordt gebruikt als uitgangspunt in voorbeelden |
De eerste installatie
Voordat u de voorbeelden gaat gebruiken, moet u het volgende doen:
- Maak een database voor uw weergaven (voor het geval u weergaven wilt gebruiken).
- Maak referenties die moeten worden gebruikt door een serverloze SQL-pool voor toegang tot bestanden in de opslag.
Database maken
Maak uw eigen database voor demonstratiedoeleinden. U kunt deze database gebruiken om uw weergaven en voor de voorbeeldquery's in dit artikel te maken.
Notitie
De databases worden alleen gebruikt voor het weergeven van metagegevens, niet voor de werkelijke gegevens. Noteer de databasenaam voor later gebruik in de quickstart.
Gebruik de volgende T-SQL-opdracht en wijzig <mydbname>
deze in een naam van uw keuze:
CREATE DATABASE <mydbname>
Gegevensbron maken
Als u query's wilt uitvoeren met behulp van een serverloze SQL-pool, maakt u een gegevensbron die door een serverloze SQL-pool kan worden gebruikt voor toegang tot bestanden in de opslag. Voer het volgende codefragment uit om de gegevensbron te maken die wordt gebruikt in voorbeelden in deze sectie. Vervang <strong-password-here>
door een sterk wachtwoord van uw keuze.
-- 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
);
Query's uitvoeren op CSV-bestanden
In de volgende afbeelding ziet u een voorbeeld van het bestand waarop een query moet worden uitgevoerd:
De volgende query laat zien hoe u een CSV-bestand leest dat geen headerrij bevat, met een nieuwe regel in Windows-stijl en door komma's gescheiden kolommen:
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
U kunt het schema opgeven bij het compileren van de query. Zie voor meer voorbeelden hoe u query's uitvoert op CSV-bestanden.
Query's uitvoeren op Parquet-bestanden
In het volgende voorbeeld ziet u de mogelijkheden voor het automatisch afleiden van schema's voor het uitvoeren van query's op Parquet-bestanden. Hierbij wordt het aantal rijen in september 2017 geretourneerd zonder een schema op te geven.
Notitie
U hoeft geen kolommen in OPENROWSET WITH
component op te geven bij het lezen van Parquet-bestanden. In dit geval maakt de serverloze SQL-pool gebruik van metagegevens in het Parquet-bestand, en worden kolommen gekoppeld op naam.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Zie Parquet-bestanden opvragen met behulp van een serverloze SQL-pool voor meer informatie.
Query's uitvoeren op JSON-bestanden
JSON-voorbeeldbestand
Bestanden worden opgeslagen in een json-container, met behulp van mapboeken en bevatten één boekvermelding met de volgende structuur:
{
"_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"
}
Voorbeeldquery
De volgende query laat zien hoe u JSON_VALUE kunt gebruiken om scalaire waarden (titel, uitgever) op te halen uit een boek met de titel Probabilistic and Statistical Methods in Cryptologie, 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'
Belangrijk
We hebben het hele JSON-bestand gelezen als één rij of kolom. Dus FIELDTERMINATOR
, FIELDQUOTE
en ROWTERMINATOR
zijn ingesteld op 0x0b
omdat we niet verwachten dat het in het bestand wordt gevonden.
Gerelateerde inhoud
- Query's uitvoeren op CSV-bestanden
- Query uitvoeren op mappen en meerdere bestanden
- Query's uitvoeren op specifieke bestanden
- Query's uitvoeren op Parquet-bestanden met behulp van een serverloze SQL-pool
- Geneste typen query's uitvoeren in Parquet- en JSON-bestanden
- Query's uitvoeren op JSON-bestanden met behulp van een serverloze SQL-pool
- Weergaven maken en gebruiken met behulp van een serverloze SQL-pool
- Systeemeigen externe tabellen maken en gebruiken
- Queryresultaten opslaan in opslag