OPRET EKSTERN TABEL SOM VÆLG (CETAS)

Fuldført

I dette undermodul ser vi nærmere på kommandoen OPRET EKSTERN TABEL SOM SELECT (CETAS) og de fordele, den giver.

CETAS understøtter Azure Blob Storage, Azure Data Lake Storage, S3-kompatibelt objektlager og eksterne databaser. CETAS understøtter også eksport af filformater som enten CSV- eller Parquet-filer.

CETAS' mest effektive funktionalitet er at kombinere med andre SELECT-handlinger, f.eks. at kombinere med OPENROWSET eller med andre eksterne tabeller. Denne kombination gør det muligt at bruge CETAS på forskellige og fleksible måder.

Eksempler på anvendelse af CETAS

Der er mange forskellige use cases til CETAS, men de tre vigtigste er:

  • Rapportering
  • Datainddeling eller aflastning
  • Dataeksporthub

Rapportering

Den mest oplagte brugssag for CETAS er at forenkle rapporteringen ved hjælp af alle funktionerne i PolyBase- og SQL Server-fleksibilitet. Du kan oprette forbindelse til en hvilken som helst understøttet datakilde, tabel eller fil og bruge T-SQL til at manipulere og eksportere resultaterne. I stedet for at oprette forbindelse mellem rapporteringsværktøjer og SQL Server kan du f.eks. bruge CETAS til at udføre alle de nødvendige forespørgsler, eksportere resultatet som en Parquet-fil og pege rapporteringsværktøjet på de eksporterede data.

Datainddeling eller aflastning

Et andet almindeligt scenarie er eksport af arkivdata eller skrivebeskyttede data fra SQL Server-tabeller til fjernlager, men det forespørges stadig normalt via eksterne tabeller. På denne måde kan du kun beholde de aktive data på SQL Server og gemme ressourcer, men stadig få adgang til dataene på en gennemsigtig måde, når det er nødvendigt. Fra et programmæssigt synspunkt er det ligesom at få adgang til en almindelig SQL Server-tabel.

Forestil dig f.eks., at din order tabel indeholder historiske data fra de seneste år, der ikke ændres, men du stadig har brug for, at den er fuldt tilgængelig. CETAS kan hjælpe med at eksportere alle order tabeldata til en anden placering, hvilket reducerer databasestørrelsen og den påkrævede vedligeholdelsestid. Med en ekstern tabel fungerer de eksporterede data på samme måde som en almindelig tabel.

Dataeksporthub

Ved at bruge SQL Server 2025 som en datahub kan du kombinere CETAS med alle eksisterende PolyBase-funktioner, herunder oprette forbindelse til andre datakilder som Oracle, Teradata, ODBC eller andre versioner af SQL Server.

CETAS-krav

Hvis du vil bruge CETAS i SQL Server 2025, skal du aktivere egenskaben ALLOW POLYBASE EXPORT ved hjælp af sp_configure. Du kan finde flere oplysninger i den næste øvelse.

CETAS-tilladelser

Hvis du vil bruge CETAS, skal du have tre forskellige tilladelsesniveauer:

  • Tilladelse til at få adgang til og læse datakilden. Hvis dataene er placeret uden for SQL Server, enten på et netværksshare eller en anden databaseserver, skal SQL Server-tjenestekontoen have tilladelse til at få adgang til datakilden.

  • Tilladelse på SQL Server 2025 til at bruge CETAS-kommandoen. Hvis databasebrugeren skal udføre CETAS-kommandoen, skal vedkommende ADMINISTRERE MASSEHANDLINGER, ÆNDRE EVENTUELLE eksterne datakilderog ÆNDRE EVENTUELLE TILLADELSER TIL EKSTERNT FILFORMAT.

  • Skrivetilladelse til destinationen for at skrive CETAS-resultaterne. Brugeren skal have skrivetilladelser til destinationen for at kunne skrive til destinationen, parquetfilen eller CSV-filen. Hvis brugeren f.eks. vil skrive til Azure Blob Storage eller Azure Data Lake Storage, skal vedkommende LIST, READ, CREATEog SKRIVE tilladelser til disse destinationer.

Du kan få flere oplysninger om tilladelser til CETAS under CREATE EXTERNAL TABLE AS SELECT-tilladelser (CETAS).

Understøttede CETAS-formater

CETAS modtager en strøm af data ved hjælp af en SELECT-kommando som input og eksporterer resultaterne i CSV- eller Parquet-format. Inputtet understøtter de samme formater som en SELECT-kommando, herunder OPENROWSET-resultater.

Inputtet kan være en tabel, der kører lokalt på din SQL Server-forekomst, en netværksfil, der er åbnet via en OPENROWSET-handling, en tabel i et andet databasesystem eller en Delta-fil, der er gemt på Azure Blob Storage, Azure Data Lake Storage eller S3-kompatibelt objektlager.

CETAS T-SQL-struktur

For bedre at forstå CETAS kan du bryde den overordnede T-SQL-syntaks ned. CETAS' t-sql-struktur følger en bottom-up logiktilgang. Det er nemmere at starte i slutningen af sætningen og derefter arbejde sig op til toppen af T-SQL-sætningen.

  • Bunden af CETAS-strukturen indeholder en SELECT-sætning, du bruger til at definere, hvilke data der skal eksporteres.
  • I midten er der valgfrie parametre, du kan bruge til at afvise data, du ikke ønsker at eksportere.
  • Øverst i CETAS-sætningen, efter at have erklæret CREATE EXTERNAL TABLE, tilføjer du information om destinationsplacering, filnavn og filformat.

Denne struktur gør det muligt at kombinere CETAS med enhver SELECT-sætning for at forespørge data uden for SQL Server, inden for SQL Server eller fra enhver anden understøttet database. SQL Server 2025 opretter automatisk filnavnet og opdeler resultaterne i flere filer til optimering. En tabel, der eksporteres som en parquet, kan f.eks. generere flere filer, afhængigt af den eksporterede datastørrelse. Select-sætningen definerer kolonnedefinitionen og typen for den eksterne tabel.

Eksportér en tabel fra SQL Server som parquet

I følgende eksempel bruges CETAS til at eksportere en tabel fra 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æs en Delta-fil, og eksportér som parquet

I følgende eksempel bruges CETAS til at læse en Delta-fil og eksportere 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 den næste øvelse skal du bruge CETAS til at:

  • Eksportér en tabel som Parquet.
  • Flyt kolde data ud af en database til lageret.
  • Opret en ekstern tabel for at få adgang til lagrede data.
  • Brug visninger, jokertegnsøgning, fjernelse af mapper og metadata som forespørgselsstrategier.