Rychlý start: Používání bezserverového fondu SQL
Bezserverový fond SQL Synapse je bezserverová služba dotazů, která umožňuje spouštět dotazy SQL na souborech umístěných ve službě Azure Storage. V tomto rychlém startu se naučíte dotazovat různé typy souborů pomocí bezserverového fondu SQL. Seznam podporovaných formátů naleznete v tématu OPENROWSET.
V tomto rychlém startu se dozvíte, jak dotazovat soubory CSV, Apache Parquet a JSON.
Požadavky
Vyberte si klienta SQL pro vydávání dotazů:
- Azure Synapse Studio je webový nástroj, který můžete použít k procházení souborů v úložišti a vytváření dotazů SQL.
- Visual Studio Code s rozšířením mssql je multiplatformní odlehčený vývojářský a datový nástroj, který umožňuje spouštět dotazy a poznámkové bloky SQL v databázi na vyžádání.
- SQL Server Management Studio je klientský nástroj, který umožňuje spouštět dotazy SQL na databázi na vyžádání.
V tomto rychlém startu se používají následující parametry:
Parametr | Popis |
---|---|
Adresa koncového bodu služby bezserverového fondu SQL | Používá se jako název serveru. |
Bezserverová oblast koncového bodu služby fondu SQL | Používá se k určení úložiště, které se má použít v ukázkách. |
Uživatelské jméno a heslo pro přístup ke koncovému bodu | Používá se pro přístup ke koncovému bodu. |
Databáze použitá k vytvoření zobrazení | Databáze použitá jako výchozí bod v ukázkách |
První nastavení
Před použitím ukázek:
- Vytvořte databázi pro svá zobrazení (pro případ, že chcete použít zobrazení).
- Vytvořte přihlašovací údaje, které bude používat bezserverový fond SQL pro přístup k souborům v úložišti.
Vytvoření databáze
Vytvořte si vlastní databázi pro ukázkové účely. Tuto databázi můžete použít k vytvoření zobrazení a pro ukázkové dotazy v tomto článku.
Poznámka:
Databáze se používají jenom pro zobrazení metadat, ne pro skutečná data. Poznamenejte si název databáze pro pozdější použití v rychlém startu.
Použijte následující příkaz T-SQL, který se změní <mydbname>
na název podle vašeho výběru:
CREATE DATABASE <mydbname>
Vytvoření zdroje dat
Pokud chcete spouštět dotazy pomocí bezserverového fondu SQL, vytvořte zdroj dat, který může bezserverový fond SQL používat pro přístup k souborům v úložišti. Spuštěním následujícího fragmentu kódu vytvořte zdroj dat použitý v ukázkách v této části. Nahraďte <strong-password-here>
silným heslem podle svého výběru.
-- 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
);
Dotazování souborů CSV
Následující obrázek ukazuje náhled souboru, který se má dotazovat:
Následující dotaz ukazuje, jak číst soubor CSV, který neobsahuje řádek záhlaví, s novým řádkem ve stylu Windows a sloupci oddělenými čárkami:
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
Schéma můžete zadat v době kompilace dotazu. Další příklady najdete v tématu Dotazování souborů CSV.
Dotazování souborů Parquet
Následující ukázka ukazuje možnosti automatického odvozování schématu pro dotazování souborů Parquet. Vrátí počet řádků v září 2017 bez zadání schématu.
Poznámka:
Při čtení souborů Parquet nemusíte zadávat sloupce v OPENROWSET WITH
klauzuli. V takovém případě bezserverový fond SQL využívá metadata v souboru Parquet a sváže sloupce podle názvu.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
Další informace najdete v tématu Dotazování souborů Parquet pomocí bezserverového fondu SQL.
Dotazování souborů JSON
Ukázkový soubor JSON
Soubory se ukládají v kontejneru JSON pomocí knih složek a obsahují jednu položku knihy s následující strukturou:
{
"_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"
}
Ukázkový dotaz
Následující dotaz ukazuje, jak pomocí JSON_VALUE načíst skalární hodnoty (název, vydavatel) z knihy s názvem Probabilistic and Statistical Methods in Cryptology, 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'
Důležité
Celý soubor JSON čteme jako jeden řádek nebo sloupec. Takže FIELDTERMINATOR
, FIELDQUOTE
a ROWTERMINATOR
jsou nastavené, 0x0b
protože neočekáváme, že ho v souboru nenajdeme.
Související obsah
- Dotazování souborů CSV
- Dotazování složek a několika souborů
- Dotazování na konkrétní soubory
- Dotazování souborů Parquet pomocí bezserverového fondu SQL
- Dotazování vnořených typů v souborech Parquet a JSON
- Dotazování souborů JSON pomocí bezserverového fondu SQL
- Vytváření a používání zobrazení pomocí bezserverového fondu SQL
- Vytváření a používání nativních externích tabulek
- Ukládání výsledků dotazů do úložiště