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 dozvíte, jak dotazovat různé typy souborů pomocí bezserverového fondu SQL. Podporované formáty jsou uvedeny v OPENROWSET.

Tento rychlý start ukazuje dotazování: CSV, Apache Parquet a soubory JSON.

Předpoklady

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.
  • Azure Data Studio je klientský nástroj, který umožňuje spouštět dotazy SQL a poznámkové bloky v databázi na vyžádání.
  • SQL Server Management Studio je klientský nástroj, který umožňuje spouštět dotazy SQL v databázi na vyžádání.

Parametry pro tento rychlý start:

Parametr Popis
adresa koncového bodu služby bez serveru 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é použijeme 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ření databáze pro zobrazení (pro případ, že chcete použít zobrazení)
  • Vytvoření přihlašovacích údajů pro použití bezserverového fondu 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 použijete k vytvoření zobrazení a ukázkových dotazů 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, který použijete pro pozdější použití v rychlém startu.

Použijte následující dotaz a změňte mydbname ho 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:

-- 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
);

Dotazování souborů CSV

Následující obrázek je náhledem souboru, který se má dotazovat:

First 10 rows of the CSV file without header, Windows style new line.

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í souboru 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 o dotazování souborů parquet

Dotazování souborů JSON

Ukázkový soubor JSON

Soubory se ukládají v kontejneru JSON, knihách složek a obsahují položky s jednou knihou 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"
}

Dotazování souborů JSON

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 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'

Důležité

Celý soubor JSON čteme jako jeden řádek nebo sloupec. Pole FIELDTERMINATOR, FIELDQUOTE a ROWTERMINATOR jsou tedy nastaveny na 0x0b, protože ho v souboru neočekáváme.

Další kroky

Teď jste připraveni pokračovat v následujících článcích: