Rövid útmutató: Kiszolgáló nélküli SQL-készlet használata
A Synapse kiszolgáló nélküli SQL-készlet egy kiszolgáló nélküli lekérdezési szolgáltatás, amely lehetővé teszi SQL-lekérdezések futtatását az Azure Storage-ban elhelyezett fájlokon. Ebben a rövid útmutatóban megtudhatja, hogyan kérdezhet le különböző típusú fájlokat kiszolgáló nélküli SQL-készlet használatával. A támogatott formátumok az OPENROW Standard kiadás T listában találhatók.
Ez a rövid útmutató a következő lekérdezéseket mutatja be: CSV-, Apache Parquet- és JSON-fájlok.
Előfeltételek
Válasszon ki egy SQL-ügyfelet a lekérdezések kibocsátásához:
- Az Azure Synapse Studio egy webes eszköz, amellyel fájlokat tallózhat a tárban, és SQL-lekérdezéseket hozhat létre.
- Az Azure Data Studio egy ügyféleszköz, amely lehetővé teszi, hogy SQL-lekérdezéseket és jegyzetfüzeteket futtasson az igény szerinti adatbázison.
- Az SQL Server Management Studio egy ügyféleszköz, amely lehetővé teszi, hogy SQL-lekérdezéseket futtasson az igény szerinti adatbázison.
A rövid útmutató paraméterei:
Parameter | Leírás |
---|---|
kiszolgáló nélküli SQL-készletszolgáltatás végpontcíme | Kiszolgálónévként használva |
kiszolgáló nélküli SQL-készletszolgáltatás végpontrégiója | Annak meghatározására szolgál, hogy milyen tárolót használunk a mintákban |
Felhasználónév és jelszó a végponthoz való hozzáféréshez | Végpont elérésére szolgál |
A nézetek létrehozásához használt adatbázis | A minták kiindulópontjaként használt adatbázis |
Első beállítás
A minták használata előtt:
- Adatbázis létrehozása a nézetekhez (abban az esetben, ha nézeteket szeretne használni)
- A kiszolgáló nélküli SQL-készlet által a tárban tárolt fájlok eléréséhez használandó hitelesítő adatok létrehozása
Adatbázis létrehozása
Saját adatbázis létrehozása bemutató célokra. Ezzel az adatbázissal hozhatja létre a nézeteit és a cikkben szereplő mintalekérdezéseket.
Megjegyzés:
Az adatbázisok csak a metaadatok megtekintésére szolgálnak, a tényleges adatokhoz nem. Írja le a rövid útmutató későbbi részében használt adatbázisnevet.
Használja a következő lekérdezést, és váltson mydbname
egy tetszőleges névre:
CREATE DATABASE mydbname
Adatforrás létrehozása
Ha kiszolgáló nélküli SQL-készlet használatával szeretne lekérdezéseket futtatni, hozzon létre olyan adatforrást, amelyet a kiszolgáló nélküli SQL-készlet használhat a tárolóban lévő fájlok eléréséhez. Hajtsa végre a következő kódrészletet az ebben a szakaszban található mintákban használt adatforrás létrehozásához:
-- 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
);
CSV-fájlok lekérdezése
A következő kép a lekérdezendő fájl előnézete:
Az alábbi lekérdezés bemutatja, hogyan olvasható be egy olyan CSV-fájl, amely nem tartalmaz fejlécsort, Windows-stílusú új sorokkal és vesszővel tagolt oszlopokkal:
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
A sémát a lekérdezés fordítási ideje alatt adhatja meg. További példákért tekintse meg a CSV-fájl lekérdezését.
Parquet-fájlok lekérdezése
Az alábbi minta a Parquet-fájlok lekérdezéséhez használható automatikus sémakövető képességeket mutatja be. A 2017. szeptemberi sorok számát adja vissza séma megadása nélkül.
Megjegyzés:
Parquet-fájlok olvasásakor nem kell oszlopokat megadnia a záradékban OPENROWSET WITH
. Ebben az esetben a kiszolgáló nélküli SQL-készlet metaadatokat használ a Parquet-fájlban, és név szerint köti össze az oszlopokat.
SELECT COUNT_BIG(*)
FROM OPENROWSET
(
BULK 'parquet/taxi/year=2017/month=9/*.parquet',
DATA_SOURCE = 'SqlOnDemandDemo',
FORMAT='PARQUET'
) AS nyc
További információ a parquet-fájlok lekérdezéséről.
JSON-fájlok lekérdezése
JSON-mintafájl
A fájlok json-tárolóban, mappakönyvekben vannak tárolva, és egyetlen könyvbejegyzést tartalmaznak a következő struktúrával:
{
"_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"
}
JSON-fájlok lekérdezése
Az alábbi lekérdezés bemutatja, hogyan használható JSON_VALUE skaláris értékek (cím, kiadó) lekérésére egy olyan könyvből, amelynek címe 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'
Fontos
A teljes JSON-fájlt egyetlen sor/oszlopként olvasjuk. A FIELDTERMINATOR, a FIELDQUOTE és a ROWTERMINATOR értéke tehát 0x0b, mert nem számítunk rá, hogy megtalálja a fájlban.
Következő lépések
Most már készen áll a következő cikkek folytatására:
- Egyetlen CSV-fájl lekérdezése
- Lekérdezési mappák és több CSV-fájl
- Adott fájlok lekérdezése
- Parquet-fájlok lekérdezése
- Beágyazott lekérdezési parquet-típusok
- JSON-fájlok lekérdezése
- Nézetek létrehozása és használata
- Külső táblák létrehozása és használata
- Lekérdezési eredmény megőrzése az Azure Storage-ban
- Egyetlen CSV-fájl lekérdezése