VYTVOŘIT EXTERNÍ TABULKU POMOCÍ 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:

  • Podávání zpráv
  • Vrstvení dat nebo převod zátěže
  • Centrum exportu dat

Podávání zpráv

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 rozdělit celkovou syntaxi T-SQL. Struktura T-SQL CETAS se řídí logickým přístupem směrem dolů. Je jednodušší začít na konci příkazu a pak přejít na začátek příkazu T-SQL.

  • V dolní části struktury CETAS je příkaz SELECT, který slouží k definování dat, která se mají exportovat.
  • Uprostřed jsou volitelné parametry, které můžete použít k odmítnutí dat, která nechcete exportovat.
  • V horní části příkazu CETAS po deklarování CREATE EXTERNAL TABLE přidáte informace o cílovém umístění, názvu souboru a formátu souboru.

Tato struktura umožňuje kombinaci CETAS s libovolným příkazem SELECT za účelem 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. Příkaz select definuje definici a typ externího sloupce tabulky.

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.