Schnellstart: Verwenden eines serverlosen SQL-Pools
Der serverlose SQL-Pool von Synapse ist ein serverloser Abfragedienst zum Ausführen von SQL-Abfragen für Dateien in Azure Storage. In dieser Schnellstartanleitung erfahren Sie, wie Sie mithilfe eines serverlosen SQL-Pools verschiedene Dateitypen abfragen. Unterstützte Formate sind in OPENROWSET aufgeführt.
In dieser Schnellstartanleitung sehen Sie, wie Abfragen folgender Dateiformate ausgeführt werden: CSV-, Apache Parquet- und JSON-Dateien.
Voraussetzungen
Wählen Sie einen SQL-Client aus, der zum Ausgeben von Abfragen verwendet werden soll:
- Azure Synapse Studio ist ein Webtool, mit dem Sie Dateien im Speicher durchsuchen und SQL-Abfragen erstellen können.
- Azure Data Studio ist ein Clienttool, mit dem Sie SQL-Abfragen und Notebooks für Ihre On-Demand-Datenbank ausführen können.
- SQL Server Management Studio ist ein Clienttool, mit dem Sie SQL-Abfragen für Ihre On-Demand-Datenbank ausführen können.
Parameter für diesen Schnellstart:
Parameter | BESCHREIBUNG |
---|---|
Adresse des Dienstendpunkts des serverlosen SQL-Pools | Wird als Servername verwendet. |
Region des Dienstendpunkts des serverlosen SQL-Pools | Wird verwendet, um zu bestimmen, welcher Speicher in Beispielen genutzt wird. |
Benutzername und Kennwort für den Endpunktzugriff | Wird für den Zugriff auf den Endpunkt verwendet. |
Datenbank für die Erstellung von Sichten | Die Datenbank wird in Beispielen als Ausgangspunkt verwendet. |
Erstmalige Einrichtung
Vor der Verwendung der Beispiele:
- Erstellen Sie eine Datenbank für Ihre Sichten (sofern Sie Sichten verwenden möchten).
- Erstellen Sie Anmeldeinformationen, die vom serverlosen SQL-Pool für den Zugriff auf Dateien im Speicher verwendet werden können.
Erstellen einer Datenbank
Erstellen Sie zu Demonstrationszwecken eine eigene Datenbank. Sie verwenden diese Datenbank zum Erstellen der Ansichten sowie für die Beispielabfragen in diesem Artikel.
Hinweis
Die Datenbanken werden nicht für tatsächliche Daten, sondern nur für Sichtmetadaten verwendet. Notieren Sie sich den verwendeten Datenbanknamen. Er wird im weiteren Verlauf der Schnellstartanleitung benötigt.
Verwenden Sie die folgende Abfrage, und ändern Sie mydbname
in einen Namen Ihrer Wahl:
CREATE DATABASE mydbname
Erstellen der Datenquelle
Wenn Sie Abfragen mithilfe eines serverlosen SQL-Pools ausführen möchten, erstellen Sie eine Datenquelle, über die der serverlose SQL-Pool auf Dateien im Speicher zugreifen kann. Führen Sie den folgenden Codeausschnitt aus, um die in den Beispielen in diesem Abschnitt verwendete Datenquelle zu erstellen:
-- 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
);
Abfragen von CSV-Dateien
Die folgende Abbildung zeigt eine Vorschau der abzufragenden Datei:
Die folgende Abfrage zeigt, wie eine CSV-Datei ohne Kopfzeile gelesen wird, die Neue-Zeile-Zeichen im Windows-Stil und kommagetrennte Spalten enthält:
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
Das Schema kann zum Zeitpunkt der Abfragekompilierung angegeben werden. Weitere Beispiele finden Sie unter Abfragen von CSV-Datei.
Abfragen von Parquet-Dateien
Im folgenden Beispiel werden die Funktionen des automatischen Schemarückschlusses beim Abfragen von Parquet-Dateien gezeigt. Hierzu wird die Anzahl von Zeilen im September 2017 ohne Angabe eines Schemas zurückgegeben.
Hinweis
Beim Lesen von Parquet-Dateien müssen keine Spalten in der Klausel OPENROWSET WITH
angegeben werden. In diesem Fall verwendet der serverlose SQL-Pool Metadaten in der Parquet-Datei und bindet Spalten anhand des Namens.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Weitere Informationen zum Abfragen von Parquet-Dateien finden Sie hier.
Abfragen von JSON-Dateien
JSON-Beispieldatei
Die Dateien sind im Container json im Ordner books gespeichert und enthalten einen einzelnen Bucheintrag mit folgender Struktur:
{
"_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"
}
Abfragen von JSON-Dateien
Die folgende Abfrage zeigt, wie Sie mithilfe von JSON_VALUE skalare Werte (Titel, Verleger) aus einem Buch mit dem Titel Probabilistic and Statistical Methods in Cryptology, An Introduction by Selected articles abrufen:
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'
Wichtig
Sie lesen die gesamte JSON-Datei als einzelne Zeile oder Spalte. FIELDTERMINATOR, FIELDQUOTE und ROWTERMINATOR werden deshalb auf „0x0b“ festgelegt, da nicht erwartet wird, sie in der Datei zu finden.
Nächste Schritte
Nun können Sie mit den folgenden Artikeln fortfahren:
- Abfragen einer einzelnen CSV-Datei
- Abfragen von Ordnern und mehreren CSV-Dateien
- Abfragen bestimmter Dateien
- Abfragen von Parquet-Dateien
- Abfragen von geschachtelten Parquet-Typen
- Abfragen von JSON-Dateien
- Erstellen und Verwenden von Sichten
- Erstellen und Verwenden externer Tabellen
- Speichern des Abfrageergebnisses in Azure Storage
- Abfragen einer einzelnen CSV-Datei