KÜLSŐ TÁBLA LÉTREHOZÁSA KIVÁLASZTÁSKÉNT (CETAS)
Ez a lecke közelebbről is áttekinti a CREATE EXTERNAL TABLE AS SELECT (CETAS) parancsot és az általa nyújtott előnyöket.
A CETAS támogatja az Azure Blob Storage-t, az Azure Data Lake Storage-t, az S3-kompatibilis objektumtárolót és a külső adatbázisokat. A CETAS támogatja a fájlformátumok CSV- vagy Parquet-fájlokként való exportálását is.
A CETAS leghatékonyabb képessége az, hogy más SELECT-műveletekkel kombinálható, például az OPENROWSET-szel vagy más külső táblákkal kombinálva. Ez a kombináció lehetővé teszi a CETAS különböző és rugalmas használatát.
Használati esetek a CETAS-hez
A CETAS-hez számos különböző használati eset létezik, de a három fő eset a következő:
- Jelentési
- Adatrétegezés vagy -kiszervezés
- Adatexportálási központ
Jelentési
A CETAS legnyilvánvalóbb felhasználási esete a jelentéskészítés egyszerűsítése a PolyBase és az SQL Server minden funkciójának használatával. Bármilyen támogatott adatforráshoz, táblához vagy fájlhoz csatlakozhat, és a T-SQL használatával módosíthatja és exportálhatja az eredményeket. A jelentéskészítő eszközök SQL Serverhez való csatlakoztatása helyett például a CETAS használatával végrehajthatja az összes szükséges lekérdezést, exportálhatja az eredményt Parquet-fájlként, és a jelentéskészítő eszközt az exportált adatokra irányíthatja.
Adatrétegezés vagy -kiszervezés
Egy másik gyakori forgatókönyv az archivált vagy írásvédett adatok exportálása az SQL Server-táblákból a távoli tárolóba, de azokat továbbra is szokványos módon, külső táblákon keresztül kérdezi le. Így csak az aktív adatokat tárolhatja az SQL Serveren, erőforrásokat menthet, de szükség esetén továbbra is transzparens módon férhet hozzá az adatokhoz. Alkalmazás szempontjából ez olyan, mint egy normál SQL Server-tábla elérése.
Tegyük fel például, hogy a order táblázata az elmúlt évek olyan előzményadataival rendelkezik, amelyek nem változnak, de továbbra is teljes mértékben hozzáférhetőnek kell lenniük. A CETAS segítségével az összes order táblaadatot exportálhatja egy másik helyre, csökkentve az adatbázis méretét és a szükséges karbantartási időt. Külső tábla esetén az exportált adatok ugyanúgy viselkednek, mint egy normál tábla.
Adatexportálási központ
Az SQL Server 2025 adatközpontként való használatával kombinálhatja a CETAS-t az összes meglévő PolyBase-funkcióval, beleértve a csatlakozást más adatforrásokhoz, például az Oracle-hez, a Teradata-hoz, az ODBC-hez vagy az SQL Server más verzióihoz.
CETAS-követelmények
A CETAS SQL Server 2025-ben való használatához engedélyeznie kell a ALLOW POLYBASE EXPORT tulajdonságot a sp_configure használatával. További részletekért lásd a következő gyakorlatot.
CETAS-engedélyek
A CETAS használatához három különböző engedélyszint szükséges:
Az adatforrás elérésére és olvasására vonatkozó engedély. Ha az adatok az SQL Serveren kívül találhatók egy hálózati megosztáson vagy egy másik adatbázis-kiszolgálón, az SQL Server szolgáltatásfiókjának engedéllyel kell rendelkeznie az adatforrás eléréséhez.
Az SQL Server 2025 engedélye a CETAS parancs használatára. Ahhoz, hogy az adatbázis-felhasználó végrehajthassa a CETAS parancsot, tömeges műveleteket kell felügyelnie, módosítania kell a külső adatforrásokat, és módosítania kell a KÜLSŐ FÁJLFORMÁTUM engedélyeit.
Írási engedély a célhelyen a CETAS-eredmények írásához. Ahhoz, hogy a cél-, Parquet- vagy CSV-fájlba tudjon írni, a felhasználónak írási engedélyekre van szüksége a célhelyen. Ha például az Azure Blob Storage-ba vagy az Azure Data Lake Storage-ba szeretne írni, a felhasználónak LIST, READ, CREATE és WRITE engedélyre van szüksége ezeken a célhelyeken.
A CETAS-engedélyekről további információt a CREATE EXTERNAL TABLE AS SELECT (CETAS) engedélyekkel kapcsolatban talál.
CETAS által támogatott formátumok
A CETAS egy adatstreamet fogad egy SELECT paranccsal bemenetként, és CSV vagy Parquet formátumban exportálja az eredményeket. A bemenet ugyanazokat a formátumokat támogatja, mint a SELECT parancsok, beleértve az OPENROWSET-eredményeket is.
A bemenet lehet egy helyileg futó tábla az SQL Server-példányon, egy OPENROWSET művelettel elért hálózati fájl, egy másik adatbázisrendszer táblája, vagy az Azure Blob Storage-ban, az Azure Data Lake Storage-ban vagy az S3-kompatibilis objektumtárolóban tárolt Delta-fájl.
- A támogatott formátumok teljes listáját a CREATE EXTERNAL FILE FORMAT (KÜLSŐ FÁJLFORMÁTUM LÉTREHOZÁSA) című témakörben találja.
- A támogatott adatforrások teljes listáját a CREATE EXTERNAL DATA SOURCE (KÜLSŐ ADATFORRÁS LÉTREHOZÁSA) című témakörben találja.
- A távoli fájlok OPENROWSET használatával való eléréséről az OPENROWSET-ben tájékozódhat.
CETAS T-SQL-struktúra
A CETAS jobb megértéséhez az általános T-SQL szintaxist három részre bonthatja:
-
CREATE EXTERNAL TABLEzáradék – Ez az utasítás első része, amelyben deklarálja a külső tábla nevét, és megadja a célhelyet, a fájlnevet és a fájlformátumot aWITHzáradék használatával (amely tartalmazzaLOCATIONa ,DATA_SOURCEésFILE_FORMATa beállításokat). -
Választható elutasító paraméterek – A
WITHzáradék és aASkulcsszó között választható paramétereket is megadhat az exportálni nem kívánt adatok szűréséhez vagy elutasításához. -
SELECTutasítás – Az utasítás utolsó része egy szabványosSELECTlekérdezés, amely meghatározza az exportálandó adatokat. Ez a lekérdezés határozza meg az oszlopdefiníciókat, az adattípusokat és az exportált adatok forrását.
A CETAS szintaxisa egy logikai folyamatot követ: először meghatározza, hogy hol és hogyan kell exportálni, majd meg kell határoznia, hogy mit exportáljon. Ez a struktúra lehetővé teszi, hogy a CETAS bármely SELECT utasítással kombinálva adatokat lehessen lekérdezni az SQL Serveren belül, az SQL Serveren kívül vagy bármely más támogatott adatbázisból. Az SQL Server 2025 automatikusan létrehozza a fájlnevet, és több fájlban osztja fel az eredményeket optimalizáláshoz. A Parquetként exportált táblák például az exportált adatmérettől függően több fájlt is létrehozhatnak.
Tábla exportálása az SQL Serverből Parquet formátumba
Az alábbi példa a CETAS használatával exportál egy táblát az SQL Serverből Parquetként:
CREATE EXTERNAL TABLE ext_sales
WITH (
LOCATION = '/cetas',
DATA_SOURCE = s3_eds,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];
Delta-fájl olvasása és exportálás parquetként
Az alábbi példa a CETAS-t használja egy Delta-fájl olvasásához és parquetként való exportálásához:
CREATE EXTERNAL TABLE Delta_to_Parquet
WITH (
LOCATION = N'/backup/sales',
DATA_SOURCE = s3_parquet,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM OPENROWSET(BULK N'/delta/sales_fy22/',
FORMAT = 'DELTA',
DATA_SOURCE = 's3_delta') AS [r];
A következő gyakorlatban a CETAS használatát fogja használni a következőkre:
- Tábla exportálása Parquet formátumban.
- Hideg adatok áthelyezése az adatbázisból a tárolóba.
- Hozzon létre egy külső táblát a tárolt adatok eléréséhez.
- Nézetek, helyettesítő karakterek keresése, mappaelimináció és metaadatok használata lekérdezési stratégiákként.