SKAPA EXTERN TABELL MED SELECT (CETAS)
Den här enheten tar en närmare titt på kommandot CREATE EXTERNAL TABLE AS SELECT (CETAS) och de fördelar som den ger.
CETAS stöder Azure Blob Storage, Azure Data Lake Storage, S3-kompatibel objektlagring och externa databaser. CETAS stöder också export av filformat som antingen CSV- eller Parquet-filer.
CETAS mest kraftfulla funktion är att kombinera med andra SELECT-åtgärder, till exempel att kombinera med OPENROWSET eller med andra externa tabeller. Den här kombinationen gör att CETAS kan användas på olika och flexibla sätt.
Användningsfall för CETAS
Det finns många olika användningsfall för CETAS, men de tre viktigaste är:
- Rapportering
- Datanivåindelning eller avlastning
- Data-exporthubben
Rapportering
Det mest uppenbara användningsfallet för CETAS är att förenkla rapporteringen med hjälp av alla funktioner i PolyBase och SQL Server-flexibilitet. Du kan ansluta till alla datakällor, tabeller eller filer som stöds och använda T-SQL för att ändra och exportera resultaten. I stället för att ansluta rapporteringsverktyg till SQL Server kan du till exempel använda CETAS för att utföra alla nödvändiga frågor, exportera resultatet som en Parquet-fil och peka rapporteringsverktyget på exporterade data.
Datanivåindelning eller avlastning
Ett annat vanligt scenario är att exportera arkiv- eller skrivskyddade data från SQL Server-tabeller till fjärrlagring, men ändå köra frågor mot dem via externa tabeller. På så sätt kan du bara behålla aktiva data på SQL Server, spara resurser, men ändå komma åt data på ett transparent sätt när det behövs. Ur programsynpunkt är det precis som att komma åt en vanlig SQL Server-tabell.
Anta till exempel att din order-tabell har historiska data från tidigare år som inte ändras, men du behöver den fortfarande för att vara helt tillgänglig. CETAS kan hjälpa till att exportera alla order tabelldata till en annan plats, vilket minskar databasens storlek och nödvändig underhållstid. Med en extern tabell fungerar exporterade data precis som en vanlig tabell.
Data-exporthubben
Genom att använda SQL Server 2025 som en datahubb kan du kombinera CETAS med alla befintliga PolyBase-funktioner, inklusive anslutning till andra datakällor som Oracle, Teradata, ODBC eller andra versioner av SQL Server.
CETAS-krav
Om du vill använda CETAS i SQL Server 2025 måste du aktivera egenskapen ALLOW POLYBASE EXPORT med hjälp sp_configureav . Mer information finns i nästa övning.
CETAS-behörigheter
Om du vill använda CETAS behöver du tre olika behörighetsnivåer:
Behörighet att komma åt och läsa datakällan. Om data finns utanför SQL Server, antingen på en nätverksresurs eller på en annan databasserver, måste SQL Server-tjänstkontot ha behörighet att komma åt datakällan.
Behörighet på SQL Server 2025 att använda CETAS-kommandot. För att databasanvändaren ska kunna köra CETAS-kommandot behöver de ADMINISTRERA MASSÅTGÄRDER, ÄNDRA VALFRI EXTERN DATAKÄLLA och ÄNDRA EVENTUELLA EXTERNA FILFORMATbehörigheter .
Skrivbehörighet på måldestinationen för att skriva CETAS-resultaten. För att kunna skriva till destinationsfilen, vare sig det är en Parquet- eller CSV-fil, behöver användaren skrivbehörighet på destinationen. Om du till exempel vill skriva till Azure Blob Storage eller Azure Data Lake Storage behöver användaren behörigheterna LIST, READ, CREATE och WRITE på dessa mål.
För mer information om behörigheter för CETAS, se behörigheter för SKAPA EXTERN TABELL SOM SELECT (CETAS).
CETAS-format som stöds
CETAS tar emot en dataström med ett SELECT-kommando som indata och exporterar resultatet i CSV- eller Parquet-format. Indata stöder samma format som ett SELECT-kommando, inklusive OPENROWSET-resultat.
Indata kan vara en tabell som körs lokalt på din SQL Server-instans, en nätverksfil som nås via en OPENROWSET-åtgärd, en tabell i ett annat databassystem eller en Delta-fil som lagras på Azure Blob Storage, Azure Data Lake Storage eller S3-kompatibel objektlagring.
- En fullständig lista över format som stöds finns i SKAPA EXTERNT FILFORMAT.
- En fullständig lista över datakällor som stöds finns i SKAPA EXTERN DATAKÄLLA.
- Mer information om hur du kommer åt fjärrfiler med hjälp av OPENROWSET finns i OPENROWSET.
CETAS T-SQL-struktur
För att bättre förstå CETAS kan du dela upp den övergripande T-SQL-syntaxen. CETAS T-SQL-strukturen följer en logikmetod nedifrån och upp. Det är enklare att börja i slutet av -instruktionen och sedan arbeta dig upp till toppen av T-SQL-instruktionen.
Bild av T-SQL-strukturen för CREATE EXTERNAL TABLE som SELECT-instruktion.
- Längst ned i CETAS-strukturen finns en SELECT-instruktion som du använder för att definiera vilka data som ska exporteras.
- I mitten finns det valfria parametrar som du kan använda för att avvisa data som du inte vill exportera.
- Längst upp i CETAS-instruktionen lägger du till information om målplatsen, filnamnet och filformatet när du har deklarerat SKAPA EXTERN TABELL.
Den här strukturen gör att CETAS kan kombineras med valfri SELECT-instruktion för att fråga efter data utanför SQL Server, i SQL Server eller från någon annan databas som stöds. SQL Server 2025 skapar automatiskt filnamnet och delar upp resultatet i flera filer för optimering. En tabell som exporteras som en Parquet kan till exempel generera flera filer, beroende på den exporterade datastorleken. Select-instruktionen definierar definitionen och typen av extern tabellkolumn.
Exportera en tabell från SQL Server som Parquet
I följande exempel används CETAS för att exportera en tabell från SQL Server som Parquet:
CREATE EXTERNAL TABLE ext_sales
WITH (
LOCATION = '/cetas',
DATA_SOURCE = s3_eds,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];
Läsa en Delta-fil och exportera som Parquet
I följande exempel används CETAS för att läsa en Delta-fil och exportera den som Parquet:
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];
I nästa övning använder du CETAS för att:
- Exportera en tabell som Parquet-format.
- Flytta kalla data från en databas till lagring.
- Skapa en extern tabell för att komma åt lagrade data.
- Använd vyer, jokerteckensökning, mappeliminering och metadata som frågestrategier.