CREARE TABEL EXTERN CA SELECTARE (CETAS)
Această unitate analizează mai îndeaproape comanda CREATE EXTERNAL TABLE AS SELECT (CETAS) și avantajele pe care le oferă.
CETAS acceptă Azure Blob Storage, Azure Data Lake Storage, stocarea obiectelor compatibile cu S3 și bazele de date externe. DE ASEMENEA, CETAS acceptă exportul formatelor de fișier ca fișiere CSV sau Parquet.
Capacitatea cea mai puternică a CETAS este să se combine cu alte operațiuni SELECT, cum ar fi combinarea cu OPENROWSET sau cu alte tabele externe. Această combinație permite ca CETAS să fie utilizată în moduri diferite și flexibile.
Cazuri de utilizare pentru CETAS
Există multe cazuri diferite de utilizare pentru CETAS, dar cele mai importante sunt:
- Raportare
- Nivelul de date sau dezactivarea încărcării
- Hubul de export date
Raportare
Cel mai evident caz de utilizare pentru CETAS este să simplificați raportarea utilizând toate capacitățile PolyBase și flexibilitatea SQL Server. Puteți să vă conectați la orice sursă de date, tabel sau fișier acceptat și să utilizați T-SQL pentru a manipula și a exporta rezultatele. De exemplu, în loc să conectați instrumentele de raportare la SQL Server, puteți utiliza CETAS pentru a efectua toate interogările necesare, a exporta rezultatul ca fișier De parchetă și a direcționa instrumentul de raportare către datele exportate.
Nivelul de date sau dezactivarea încărcării
Un alt scenariu comun este exportul de arhivă sau date doar în citire din tabele sql Server în stocare la distanță, dar încă interogându-le în mod normal prin tabele externe. Astfel, puteți să păstrați doar datele active pe SQL Server, să economisiți resurse, dar să accesați în continuare datele într-un mod transparent ori de câte ori este necesar. Dintr-un punct de vedere al aplicației, seamănă cu accesarea unui tabel SQL Server obișnuit.
De exemplu, imaginați-vă că tabelul dvs. order are date istorice din ultimii ani care nu se modifică, dar tot trebuie să fie complet accesibil. CETAS vă poate ajuta să exportați toate datele de tabel order în altă locație, reducând dimensiunea bazei de date și timpul de întreținere necesar. Cu un tabel extern, datele exportate se comportă la fel ca un tabel obișnuit.
Hubul de export date
Utilizând SQL Server 2025 ca centru de date, puteți combina CETAS cu toate capacitățile PolyBase existente, inclusiv conectarea la alte surse de date, cum ar fi Oracle, Teradata, ODBC sau alte versiuni de SQL Server.
Cerințe CETAS
Pentru a utiliza CETAS în SQL Server 2025, trebuie să activați proprietatea ALLOW POLYBASE EXPORT utilizând sp_configure. Pentru detalii, consultați următorul exercițiu.
Permisiuni CETAS
Pentru a utiliza CETAS, aveți nevoie de trei niveluri diferite de permisiune:
Permisiunea de a accesa și a citi sursa de date. Dacă datele se află în afara SQL Server, fie într-o partajare de rețea, fie într-un alt server de baze de date, contul serviciului SQL Server trebuie să aibă permisiunea de a accesa sursa de date.
Permisiunea pe SQL Server 2025 pentru a utiliza comanda CETAS. Pentru ca utilizatorul bazei de date să execute comanda CETAS, trebuie să ADMINISTRARE OPERAȚIUNI ÎN MASĂ, ALTER ANY EXTERNAL DATA SOURCEși ALTER ANY EXTERNAL FILE FORMAT permisiuni.
Permisiune de scriere la destinație pentru a scrie rezultatele CETAS. Pentru a putea scrie în fișierul destinație, Parquet sau CSV, utilizatorul are nevoie de permisiuni de scriere pentru destinație. De exemplu, pentru a scrie în Azure Blob Storage sau Azure Data Lake Storage, utilizatorul are nevoie de LIST, READ, CREATEși WRITE permisiuni pentru acele destinații.
Pentru mai multe informații despre permisiunile pentru CETAS, consultați CREATE EXTERNAL TABLE AS SELECT (CETAS) permisiuni.
Formate acceptate de CETAS
CETAS primește un flux de date, utilizând o comandă SELECT ca intrare și exportă rezultatele în format CSV sau Parquet. Intrarea acceptă aceleași formate ca o comandă SELECT, inclusiv rezultatele OPENROWSET.
Intrarea poate fi un tabel care rulează local pe instanța SQL Server, un fișier de rețea care este accesat printr-o operațiune OPENROWSET, un tabel din alt sistem de baze de date sau un fișier Delta stocat în Azure Blob Storage, Azure Data Lake Storage sau stocarea de obiecte compatibile cu S3.
- Pentru o listă completă a formatelor acceptate, consultați CREATE EXTERNAL FILE FORMAT.
- Pentru o listă completă a surselor de date acceptate, consultați CREAREA SURSEI DE DATE EXTERNE.
- Pentru a afla despre accesarea fișierelor la distanță utilizând OPENROWSET, consultați OPENROWSET.
Structură T-SQL CETAS
Pentru a înțelege mai bine CETAS, poți descompune sintaxa generală T-SQL. Structura CETAS T-SQL urmează o abordare logică bottom-up. Este mai ușor să începi de la finalul instrucțiunii și apoi să ajungi în partea de sus a instrucțiunii T-SQL.
- Partea de jos a structurii CETAS conține o instrucțiune SELECT pe care o folosești pentru a defini ce date să exporți.
- La mijloc, există parametri opționali pe care îi poți folosi pentru a respinge date pe care nu vrei să le exporti.
- În partea de sus a instrucțiunii CETAS, după declararea CREATE EXTERNAL TABLE, adaugi informații despre locația destinației, numele fișierului și formatul fișierului.
Această structură permite combinarea CETAS cu orice instrucțiune SELECT pentru a interoga date din afara SQL Server, din SQL Server sau din orice altă bază de date suportată. SQL Server 2025 creează automat numele fișierului și împarte rezultatele în mai multe fișiere pentru optimizare. De exemplu, un tabel exportat ca parquet poate genera mai multe fișiere, în funcție de dimensiunea datelor exportate. Instrucțiunea select definește definiția și tipul coloanei tabelului extern.
Exportul unui tabel din SQL Server ca tabel ca tabel
Următorul exemplu utilizează CETAS pentru a exporta un tabel din SQL Server ca tabel:
CREATE EXTERNAL TABLE ext_sales
WITH (
LOCATION = '/cetas',
DATA_SOURCE = s3_eds,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];
Citirea unui fișier Delta și exportul ca parquet
Următorul exemplu utilizează CETAS pentru a citi un fișier Delta și a-l exporta ca 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];
În următorul exercițiu, utilizați CETAS pentru:
- Exportați un tabel ca tabel ca tabel.
- Mutați datele reci dintr-o bază de date în stocare.
- Creați un tabel extern pentru a accesa datele stocate.
- Utilizați vizualizări, căutare de metacaractere, eliminarea folderelor și metadate ca strategii de interogare.