VYTVOŘENÍ EXTERNÍ TABULKY JAKO VÝBĚRU (CETAS)

Dokončeno

Tato lekce se podrobněji podíváme na příkaz CREATE EXTERNAL TABLE AS SELECT (CETAS) a výhody, které poskytuje.

CETAS podporuje Azure Blob Storage, Azure Data Lake Storage, úložiště objektů kompatibilní s S3 a externí databáze. CETAS také podporuje export formátů souborů jako souborů CSV nebo Parquet.

Nejvýkonnější funkcí CETAS je kombinování s jinými operacemi SELECT, jako je kombinace s OPENROWSET nebo s jinými externími tabulkami. Tato kombinace umožňuje použití CETAS různými a flexibilními způsoby.

Případy použití pro CETAS

Pro CETAS existuje mnoho různých případů použití, ale tři hlavní případy jsou:

  • Hlášení
  • Vrstvení dat nebo převod zátěže
  • Centrum exportu dat

Hlášení

Nejzřejmějším případem použití pro CETAS je zjednodušení vytváření sestav využitím všech schopností PolyBase a flexibility SQL Serveru. Můžete se připojit k libovolnému podporovanému zdroji dat, tabulce nebo souboru a použít T-SQL k manipulaci s výsledky a jejich exportu. Například místo připojení nástrojů pro vytváření sestav k SQL Serveru můžete pomocí CETAS provádět všechny potřebné dotazy, exportovat výsledek jako soubor Parquet a nasměrovat nástroj pro vytváření sestav na exportovaná data.

Vrstvení dat nebo převod zátěže

Dalším běžným scénářem je export archivu nebo dat jen pro čtení z tabulek SQL Serveru do vzdáleného úložiště, ale stále je dotazuje normálně prostřednictvím externích tabulek. Tímto způsobem můžete zachovat pouze aktivní data na SQL Serveru, šetřit prostředky, ale stále k datům přistupovat tak, aby to bylo transparentní, kdykoli je to potřeba. Z hlediska aplikace je to stejně jako přístup k běžné tabulce SQL Serveru.

Představte si například, že tabulka order obsahuje historická data minulých let, která se nemění, ale stále ho potřebujete, aby byla plně přístupná. CETAS může pomoct exportovat všechna data tabulky order do jiného umístění, což snižuje velikost databáze a požadovanou dobu údržby. U externí tabulky se exportovaná data chovají stejně jako běžná tabulka.

Centrum exportu dat

Pomocí SQL Serveru 2025 jako datového centra můžete kombinovat CETAS se všemi existujícími funkcemi PolyBase, včetně připojení k dalším zdrojům dat, jako je Oracle, Teradata, ODBC nebo jiné verze SQL Serveru.

Požadavky CETAS

Chcete-li použít CETAS v SQL Serveru 2025, je nutné povolit vlastnost ALLOW POLYBASE EXPORT pomocí sp_configure. Podrobnosti najdete v dalším cvičení.

Oprávnění CETAS

Pokud chcete používat CETAS, potřebujete tři různé úrovně oprávnění:

  • Oprávnění pro přístup ke zdroji dat a čtení ho. Pokud se data nacházejí mimo SQL Server, a to buď ve sdílené síťové složce nebo jiném databázovém serveru, musí mít účet služby SQL Server oprávnění pro přístup ke zdroji dat.

  • Oprávnění k použití příkazu CETAS na SQL Serveru 2025 Aby uživatel databáze spustil příkaz CETAS, potřebuje oprávnění spravovat hromadné operace, měnit jakýkoli externí zdroj dat a měnit jakýkoli externí formát souboru.

  • Oprávnění k zápisu výsledků CETAS pro cílové místo. Aby uživatel mohl zapisovat do cíle, jako je soubor Parquet nebo CSV, potřebuje mít oprávnění k zápisu na cíli. Například k zápisu do Azure Blob Storage nebo Azure Data Lake Storage potřebuje uživatel oprávnění LIST, READ, CREATE a WRITE v těchto cílech.

Další informace o oprávněních pro CETAS naleznete v tématu CREATE EXTERNAL TABLE AS SELECT (CETAS).

Podporované formáty CETAS

CETAS přijímá datový proud pomocí příkazu SELECT jako vstup a exportuje výsledky ve formátu CSV nebo Parquet. Vstup podporuje stejné formáty jako příkaz SELECT, včetně výsledků OPENROWSET.

Vstupem může být tabulka spuštěná místně v instanci SQL Serveru, síťový soubor, ke kterému se přistupuje prostřednictvím operace OPENROWSET, tabulky v jiném databázovém systému nebo souboru Delta uloženého ve službě Azure Blob Storage, Azure Data Lake Storage nebo úložišti objektů kompatibilním s S3.

Struktura T-SQL CETAS

Pokud chcete lépe porozumět CETAS, můžete celkovou syntaxi T-SQL rozdělit do tří částí:

  • CREATE EXTERNAL TABLE klauzule — Toto je první část příkazu, kde deklarujete název externí tabulky a určíte cílové umístění, název souboru a formát souboru pomocí WITH klauzule (která zahrnuje LOCATION, DATA_SOURCEa FILE_FORMAT možnosti).
  • Volitelné parametry odmítnutí – Mezi WITH klauzulí a klíčovým slovem AS můžete zahrnout volitelné parametry pro filtrování nebo odmítnutí dat, která nechcete exportovat.
  • SELECT Poslední část příkazu je standardní SELECT dotaz, který definuje, jaká data se mají exportovat. Tento dotaz určuje definice sloupců, datové typy a zdroj exportovaných dat.

Syntaxe CETAS se řídí logickým tokem: nejprve definujete , kde a jak exportovat, a pak definujete , co se má exportovat. Tato struktura umožňuje kombinaci CETAS s libovolným SELECT příkazem k dotazování dat mimo SQL Server, v rámci SQL Serveru nebo z jakékoli jiné podporované databáze. SQL Server 2025 automaticky vytvoří název souboru a rozdělí výsledky do více souborů pro optimalizaci. Například tabulka exportovaná jako Parquet může vygenerovat několik souborů v závislosti na exportované velikosti dat.

Export tabulky z SQL Serveru jako Parquet

Následující příklad používá CETAS k exportu tabulky z SQL Serveru jako Parquet:

CREATE EXTERNAL TABLE ext_sales
WITH (
      LOCATION = '/cetas',
      DATA_SOURCE = s3_eds,
      FILE_FORMAT = ParquetFileFormat
     ) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];

Čtení souboru Delta a export jako Parquet

Následující příklad používá CETAS ke čtení souboru Delta a jeho exportu jako 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];

V dalším cvičení použijete CETAS k:

  • Export tabulky jako Parquet
  • Přesunutí studených dat z databáze do úložiště
  • Vytvořte externí tabulku pro přístup k uloženým datům.
  • Jako strategie dotazů můžete používat zobrazení, vyhledávání se zástupným znakem, odstranění složek a metadata.