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, amellyel SQL-lekérdezéseket futtathat 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 listáját az OPENROWSET című témakörben találja.
Ez a rövid útmutató bemutatja, hogyan kérdezhet le CSV-, Apache Parquet- és JSON-fájlokat.
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 mssql-bővítményt tartalmazó Visual Studio Code egy platformfüggetlen, egyszerűsített fejlesztői és adateszköz, amellyel SQL-lekérdezéseket és jegyzetfüzeteket futtathat az igény szerinti adatbázison.
- Az SQL Server Management Studio egy ügyféleszköz, amellyel SQL-lekérdezéseket futtathat az igény szerinti adatbázisban.
Ez a rövid útmutató a következő paramétereket használja:
Paraméter | 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 | A mintákban használandó tárterület meghatározására szolgál |
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:
- Hozzon létre egy adatbázist a nézetekhez (abban az esetben, ha nézeteket szeretne használni).
- Hozzon létre olyan hitelesítő adatokat, amelyeket a kiszolgáló nélküli SQL-készlet használ a tárolóban lévő fájlok eléréséhez.
Adatbázis létrehozása
Saját adatbázis létrehozása bemutató célokra. Ezzel az adatbázissal létrehozhatja a nézeteit és a cikkben szereplő mintalekérdezéseket.
Feljegyzés
Az adatbázisok csak a metaadatok megtekintésére szolgálnak, a tényleges adatokhoz nem. Írja le az adatbázis nevét a rövid útmutató későbbi részében.
Használja a következő T-SQL-parancsot, é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 egy adatforrást, amellyel a kiszolgáló nélküli SQL-készlet hozzáférhet a tárolóban lévő fájlokhoz. 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. Cserélje le <strong-password-here>
egy tetszőleges erős jelszóra.
-- 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
);
CSV-fájlok lekérdezése
Az alábbi képen a lekérdezendő fájl előnézete látható:
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ájlok 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.
Feljegyzés
A 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ó: Lekérdezési parquet-fájlok kiszolgáló nélküli SQL-készlet használatával.
JSON-fájlok lekérdezése
JSON-mintafájl
A fájlok egy json-tárolóban vannak tárolva mappakönyvek használatával, és egyetlen könyvbejegyzést tartalmaznak az alábbi 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"
}
Mintalekérdezés
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:
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'
Fontos
A teljes JSON-fájlt egyetlen sorként vagy oszlopként olvastuk. Tehát FIELDTERMINATOR
, FIELDQUOTE
és ROWTERMINATOR
azért vannak beállítva, 0x0b
mert nem várjuk, hogy megtaláljuk a fájlban.
Kapcsolódó tartalom
- CSV-fájlok lekérdezése
- Mappák és több fájl lekérdezése
- Adott fájlok lekérdezése
- Parquet-fájlok lekérdezése kiszolgáló nélküli SQL-készlet használatával
- Beágyazott típusok lekérdezése Parquet- és JSON-fájlokban
- JSON-fájlok lekérdezése kiszolgáló nélküli SQL-készlet használatával
- Nézetek létrehozása és használata kiszolgáló nélküli SQL-készlet használatával
- Natív külső táblák létrehozása és használata
- Lekérdezési eredmények tárolása tárolóba