Snelstartgids: Serverloze SQL-pool gebruiken
Een serverloze Synapse SQL-pool is een serverloze queryservice waarmee u SQL-query's kunt uitvoeren op bestanden die zich bevinden in Azure Storage. In deze quickstart leert u hoe u een query kunt uitvoeren op verschillende typen bestanden, met behulp van een serverloze SQL-pool. De ondersteunde indelingen worden weergegeven in OPENROWSET.
In deze quickstart ziet u query's: 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.
- Azure Data Studio is een clienthulpprogramma 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.
Parameters voor deze quickstart:
Parameter | Omschrijving |
---|---|
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 wordt 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 (wanneer u gebruik wilt maken van weergaven)
- Referenties maken die een serverloze SQL-pool kan gebruiken voor toegang tot bestanden in opslag
Database maken
Maak uw eigen database voor demonstratiedoeleinden. U gebruikt deze database om uw weergaven te maken en voor de voorbeeldquery's in dit artikel.
Notitie
De databases worden alleen gebruikt voor het weergeven van metagegevens, niet voor de werkelijke gegevens. Noteer de naam van de database die u verderop in de quickstart gaat gebruiken.
Gebruik de volgende query om mydbname
te wijzigen 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 in de voorbeelden in deze sectie wordt gebruikt:
-- 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
);
Query's uitvoeren op CSV-bestanden
De volgende afbeelding is 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 Query uitvoeren op CSV-bestandvoor meer voorbeelden.
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 op te geven in de component OPENROWSET WITH
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 Query uitvoeren op Parquet-bestanden voor meer informatie.
Query's uitvoeren op JSON-bestanden
JSON-voorbeeldbestand
Bestanden worden opgeslagen in de json-container en de map boeken 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"
}
Query's uitvoeren op JSON-bestanden
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 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'
Belangrijk
Het gehele JSON-bestand wordt als één rij/kolom gelezen. FIELDTERMINATOR, FIELDQUOTE en ROWTERMINATOR zijn daarom ingesteld op 0x0B, omdat deze naar verwachting niet in het bestand worden gevonden.
Volgende stappen
U kunt nu doorgaan met de volgende artikelen:
- Query's uitvoeren op één CSV-bestand
- Query's uitvoeren op mappen en meerdere CSV-bestanden
- Query's uitvoeren op specifieke bestanden
- Query's uitvoeren op Parquet-bestanden
- Query uitvoeren op met Parquet geneste typen
- Query's uitvoeren op JSON-bestanden
- Weergaven maken en gebruiken
- Externe tabellen maken en gebruiken
- Queryresultaten behouden in Azure Storage
- Query's uitvoeren op één CSV-bestand