Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: SQL Server 2022 (16.x)
Az SQL Server 2022 (16.x) képes virtualizálni az adatokat a parquet-fájlokból. Ez a folyamat lehetővé teszi az adatok eredeti helyének megtartását, de lekérdezhetők egy T-SQL-parancsokkal rendelkező SQL Server-példányból, mint bármely más tábla. Ez a funkció PolyBase-összekötőket használ, és minimalizálja a kinyerési, átalakítási és betöltési (ETL-) folyamatok szükségességét.
Az alábbi példában egy S3-kompatibilis objektumtárolóban tárolt parquetfájlt virtualizálunk.
Az adatvirtualizálással kapcsolatos további információkért lásd: Adatok virtualizálása a PolyBase használatával.
Előfeltételek
Az S3-kompatibilis objektumtároló-integrációs funkciók használatához a következő eszközökre és erőforrásokra van szüksége:
- Telepítse az SQL Server PolyBase szolgáltatását.
- Telepítse az SQL Server Management Studio (SSMS) alkalmazást.
- S3-kompatibilis tároló.
- Létrehozva egy S3 tároló. A tárolók nem hozhatók létre vagy konfigurálhatók az SQL Serverből.
- A felhasználó (
Access Key ID) és a titkos kód (Secret Key ID) és a felhasználó ismert Az Ön számára. Mindkettőtöknek hitelesítenie kell az S3 objektumtár-végpontnál. - Az ListBucket engedély S3-felhasználóra vonatkozóan.
- ReadOnly engedélyt az S3-felhasználónak.
- A TLS-t konfigurálni kell. Feltételezzük, hogy az összes kapcsolat biztonságosan lesz továbbítva HTTPS-en keresztül, nem HTTP-en keresztül. A végpontot az SQL Server operációsrendszer-gazdagépre telepített tanúsítvány ellenőrzi.
Engedély
Ahhoz, hogy a proxyfelhasználó felolvassa egy S3-gyűjtő tartalmát, a felhasználónak engedélyeznie kell a következő műveleteket az S3-végponton:
- ListBucket;
- ReadOnly;
Előkonfiguráció
- A PolyBase engedélyezése a
sp_configure:
exec sp_configure @configname = 'polybase enabled', @configvalue = 1
;
RECONFIGURE
;
exec sp_configure @configname = 'polybase enabled'
;
- Az adatbázis hatókörébe tartozó hitelesítő adatok létrehozása előtt a felhasználói adatbázisnak rendelkeznie kell egy fő kulccsal a hitelesítő adatok védelméhez. További információ: CREATE MASTER KEY.
Adatbázis-hatókörű hitelesítő adatok létrehozása
Az alábbi példaszkript adatbázis-hatókörű hitelesítő adatokat s3-dc hoz létre az SQL Server forrásfelhasználói adatbázisában. További információ: CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).
IF NOT EXISTS(SELECT * FROM sys.credentials WHERE name = 's3_dc')
BEGIN
CREATE DATABASE SCOPED CREDENTIAL s3_dc
WITH IDENTITY = 'S3 Access Key',
SECRET = '<AccessKeyID>:<SecretKeyID>' ;
END
Ellenőrizze az új adatbázis-hatókörű hitelesítő adatokat sys.database_scoped_credentials (Transact-SQL):
SELECT * FROM sys.database_scoped_credentials;
Külső adatforrás létrehozása
Az alábbi példaszkript létrehoz egy külső adatforrást s3_ds az SQL Server forrásfelhasználói adatbázisában. A külső adatforrás a s3_dc adatbázis hatókörébe tartozó hitelesítő adatokra hivatkozik. További információ: KÜLSŐ ADATFORRÁS LÉTREHOZÁSA.
CREATE EXTERNAL DATA SOURCE s3_ds
WITH
( LOCATION = 's3://<ip_address>:<port>/'
, CREDENTIAL = s3_dc
);
GO
Ellenőrizze az új külső adatforrást sys.external_data_sources.
SELECT * FROM sys.external_data_sources;
Virtuálisan üzemeltetett URL-címek
Egyes S3-kompatibilis tárolórendszerek (például az Amazon Web Services) virtual_hosted stílusú URL-címeket használnak a mappastruktúra S3-gyűjtőben való implementálásához. Adja hozzá a következő CONNECTION_OPTIONS, hogy lehetővé tegye az S3 gyűjtőben lévő mappahelyekre mutató külső táblák létrehozását, például CONNECTION_OPTIONS = '{"s3":{"url_style":"virtual_hosted"}}'.
E CONNECTION_OPTIONS beállítás nélkül, ha egy mappára mutató külső táblákat kérdez le, a következő hibát tapasztalhatja:
Msg 13807, Level 16, State 1, Line 23
Content of directory on path '/<folder_name>/' cannot be listed.
SELECT egy parquet-fájlból az OPENROWSET használatával
Az alábbi példa bemutatja, hogy a T-SQL használatával lekérdezhető egy S3-kompatibilis objektumtárolóban tárolt parquet fájl OPENROWSET-lekérdezésen keresztül. További információ: OPENROWSET (Transact-SQL).
Mivel ez egy parquet fájl, két fontos dolog történik automatikusan:
- Az SQL Server magától a fájlból olvassa be a sémát, így nincs szükség a tábla, oszlopok vagy adattípusok definiálására.
- Nem szükséges deklarálni a fájl olvasásához szükséges tömörítés típusát.
SELECT *
FROM OPENROWSET
( BULK '/<bucket>/<parquet_folder>'
, FORMAT = 'PARQUET'
, DATA_SOURCE = 's3_ds'
) AS [cc];
S3-kompatibilis objektumtároló lekérdezése külső táblán keresztül
Az alábbi példa bemutatja, hogy a T-SQL használatával lekérdezhető egy S3-kompatibilis objektumtárolóban tárolt parquet fájl külső tábla lekérdezésével. A minta egy relatív elérési utat használ a külső adatforráson belül.
CREATE EXTERNAL FILE FORMAT ParquetFileFormat WITH(FORMAT_TYPE = PARQUET);
GO
CREATE EXTERNAL TABLE Region (
r_regionkey BIGINT,
r_name CHAR(25),
r_comment VARCHAR(152) )
WITH (LOCATION = '/region/', DATA_SOURCE = 's3_ds',
FILE_FORMAT = ParquetFileFormat);
GO
SELECT * FROM [Region];
További információkért lásd:
Korlátozások
- Az S3-kompatibilis tárolóval támogatott külső táblán futó SQL Server-lekérdezések előtagonként 1000 objektumra korlátozódnak. Ennek az az oka, hogy az S3-kompatibilis objektumok listája előtagonként 1000 objektumkulcsra korlátozódik.
- Az S3-kompatibilis objektumtárolók esetében az ügyfelek nem hozhatják létre a hozzáférési kulcs azonosítóját egy
:karakterrel. - A teljes URL-cím hossza legfeljebb 259 karakter lehet. Ez azt jelenti, hogy
s3://<hostname>/<objectkey>nem haladhatja meg a 259 karaktert. As3://beleszámít ebbe a korlátba, így az elérési út hossza nem haladhatja meg a 259-5 = 254 karaktert. - Az SQL-hitelesítő adatok neve 128 karakterből áll UTF-16 formátumban.
- A létrehozott hitelesítőadat-névnek tartalmaznia kell a gyűjtő nevét, kivéve, ha ez a hitelesítő adat egy új külső adatforráshoz tartozik.
- A hozzáférési kulcs azonosítója és a titkos kulcs azonosítója csak alfanumerikus értékeket tartalmazhat.
Következő lépések
- További információ a PolyBase-ről: Az SQL Server PolyBase áttekintése
- A PolyBase konfigurálása külső adatok eléréséhez az S3-kompatibilis objektumtárolóban