Sdílet prostřednictvím


CREATE EXTERNAL FILE FORMAT (Transact-SQL)

platí pro: SQL Server 2016 (13.x) a novější Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Vytvoří objekt formátu externího souboru definující externí data uložená v Hadoopu, Azure Blob Storage, Azure Data Lake Store nebo pro vstupní a výstupní datové proudy přidružené k externím datovým proudům. Vytvoření formátu externího souboru je předpokladem pro vytvoření externí tabulky. Vytvořením formátu externího souboru určíte skutečné rozložení dat odkazovaných externí tabulkou. Pokud chcete vytvořit externí tabulku, přečtěte si téma CREATE EXTERNAL TABLE (Transact-SQL).

Podporují se následující formáty souborů:

Transact-SQL konvence syntaxe

Syntaxe

-- Create an external file format for DELIMITED (CSV/TSV) files.
CREATE EXTERNAL FILE FORMAT file_format_name
WITH (
        FORMAT_TYPE = DELIMITEDTEXT
    [ , FORMAT_OPTIONS ( <format_options> [ ,...n  ] ) ]
    [ , DATA_COMPRESSION = {
           'org.apache.hadoop.io.compress.GzipCodec'
        }
     ]);

<format_options> ::=
{
    FIELD_TERMINATOR = field_terminator
    | STRING_DELIMITER = string_delimiter
    | FIRST_ROW = integer -- Applies to: Azure Synapse Analytics and SQL Server 2022 and later versions
    | DATE_FORMAT = datetime_format
    | USE_TYPE_DEFAULT = { TRUE | FALSE }
    | ENCODING = {'UTF8' | 'UTF16'}
    | PARSER_VERSION = {'parser_version'}

}

Argumenty

file_format_name

Určuje název pro formát externího souboru.

TYP_FORMÁTU

Určuje formát externích dat.

  • FORMAT_TYPE = PARQUET

    Určuje formát Parquet.

  • FORMAT_TYPE = ORC

    Určuje formát ORC (Optimized Row Columnar). Tato možnost vyžaduje Hive verze 0.11 nebo vyšší v externím clusteru Hadoop. V Systému Hadoop nabízí formát souboru ORC lepší kompresi a výkon než formát RCFILE.

  • FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method

    Určuje formát souboru RcFile (Record Columnar). Tato možnost vyžaduje, abyste zadali metodu Hive Serializer a Deserializer (SerDe). Tento požadavek je stejný, pokud k dotazování souborů RC používáte Hive/HiveQL v Hadoopu. Všimněte si, že metoda SerDe rozlišují malá a velká písmena.

    Příklady zadání RCFile se dvěma metodami SerDe, které PolyBase podporuje.

    • FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'
    • FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
  • FORMAT_TYPE = DELIMITEDTEXT

    Určuje textový formát s oddělovači sloupců, označovanými také jako ukončovací ovládacího prvku pole.

  • FORMAT_TYPE = JSON

    Určuje formát JSON. Platí jenom pro Azure SQL Edge.

  • FORMAT_TYPE = DELTA

    Určuje formát Delta Lake. Platí pro bezserverové fondy SQL v Azure Synapse Analytics a SQL Serveru 2022 (16.x).

FORMAT_OPTIONS

Volitelný. Pouze pro textové datové typy s oddělovači.

Podpora PARSER_VERSIONpouze bezserverových fondů SQL ve službě Azure Synapse Analytics.

Bezserverové fondy SQL možnost nepodporují DATE_FORMAT .

DATA_COMPRESSION = data_compression_method

Určuje metodu komprese dat pro externí data. Pokud DATA_COMPRESSION není zadáno, výchozí je nekomprimovaná data.

Aby správně fungovaly, musí mít komprimované soubory Gzip příponu .gz souboru.

Typ DELIMITEDTEXT formátu podporuje tuto metodu komprese: DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec

Možnosti formátu textu s oddělovači

Možnosti formátu popsané v této části jsou volitelné a vztahují se pouze na textové soubory s oddělovači.

FIELD_TERMINATOR = field_terminator

Platí jenom pro textové soubory s oddělovači. Ukončovací znak pole určuje jeden nebo více znaků, které označují konec každého pole (sloupce) v textovém souboru s oddělovači. Výchozí hodnota je znak |svislé roury . Pro zaručenou podporu doporučujeme použít jeden nebo více znaků ASCII.

Příklady:

  • FIELD_TERMINATOR = '|'
  • FIELD_TERMINATOR = ' '
  • FIELD_TERMINATOR = ꞌ\tꞌ
  • FIELD_TERMINATOR = '~|~'

oddělovač řetězce

STRING_DELIMITER = *string_delimiter*

Určuje znak, který uzavře textové hodnoty do textového souboru s oddělovači. Výchozí hodnota je prázdný řetězec "". Hodnota STRING_DELIMITER je funkčně ekvivalentní možnosti FIELDQUOTE ve OPENROWSET BULK funkci.

Poznámka:

Tabulky Hadoop ve vyhrazených fondech SQL Synapse umožňují zadat jeden nebo více znaků v STRING_DELIMITER. V bezserverovém fondu SQL můžete použít pouze jeden znak.

Příklady:

  • STRING_DELIMITER = '"'

  • STRING_DELIMITER = '0x22' (Dvojitá uvozovka hex)

  • STRING_DELIMITER = '*'

  • STRING_DELIMITER = ꞌ,ꞌ

  • STRING_DELIMITER = '0x7E0x7E' (Například ~~dvě tildy) – podporováno ve vyhrazeném fondu SQL.

FIRST_ROW = first_row_int

Platí pro: Azure Synapse Analytics, SQL Server 2022 a novější verze

Určuje číslo řádku, které se při načítání PolyBase čte jako první ve všech souborech. Tento parametr může mít hodnoty 1 až 15. Pokud je hodnota nastavená na dvě, při načtení dat se první řádek v každém souboru (řádku záhlaví) přeskočí. Řádky se přeskočí na základě existence ukončovačů řádků (/r/n, /r, /n). Pokud se tato možnost používá k exportu, řádky se přidají do dat, aby se zajistilo, že se soubor dá číst bez ztráty dat. Pokud je hodnota nastavena na >hodnotu 2, první řádek exportovaný je názvy sloupců externí tabulky.

DATE_FORMAT = datetime_format

Určuje vlastní formát pro všechna data data a času, která se můžou zobrazovat v textovém souboru s oddělovači. Pokud zdrojový soubor používá výchozí formáty data a času, tato možnost není nutná. Pro každý soubor je povolený pouze jeden vlastní formát data a času. Pro každý soubor nelze zadat více než jeden vlastní formát data a času. Pokud je ale každý z nich výchozím formátem pro příslušný datový typ v definici externí tabulky, můžete použít více formátů data a času.

Důležité

PolyBase používá pouze vlastní formát data pro import dat. Nepoužívá vlastní formát pro zápis dat do externího souboru.

Pokud DATE_FORMAT není zadán nebo je prázdný řetězec, PolyBase používá následující výchozí formáty:

  • datum a čas: 'yyyy-MM-dd HH:mm:ss'

  • smalldatetime: 'yyyy-MM-dd HH:mm'

  • datum: 'yyyy-MM-dd'

  • datetime2: 'yyyy-MM-dd HH:mm:ss'

  • datetimeoffset: 'yyyy-MM-dd HH:mm:ss'

  • čas: 'HH:mm:ss'

Důležité

Zadání vlastních DATE_FORMAT formátů přepíše všechny výchozí formáty typů. To znamená, že budete muset mít stejné formáty kalendářních dat ve všech buňkách data a času ve všech datech, datech a časech v souborech. Při přepsání DATE_FORMATnemůžete mít hodnoty data a času v jiném formátu.

Příklady formátů kalendářních dat jsou v následující tabulce:

Poznámky k tabulce:

  • Rok, měsíc a den můžou mít několik formátů a objednávek. Tabulka zobrazuje pouze formát ymd . Měsíc může mít jednu nebo dvě číslice nebo tři znaky. Den může mít jednu nebo dvě číslice. Rok může mít dvě nebo čtyři číslice.

  • Milisekundy (fffffff) nejsou povinné.

  • am nebo pm (tt) není povinné. Výchozí hodnota je AM.

Typ datumu Příklad Popis
datum a čas DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff Kromě roku, měsíce a dne zahrnuje tento formát data 00–24 hodin, 00–59 minut, 00–59 sekund a tři číslice pro milisekundy.
datum a čas DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt Kromě roku, měsíce a dne zahrnuje tento formát data 00–12 hodin, 00–59 minut, 00–59 sekund, tři číslice pro milisekundy a AM, am, , PMnebo pm.
smalldatetime DATE_FORMAT = yyyy-MM-dd HH:mm Kromě roku, měsíce a dne zahrnuje tento formát data 00–23 hodin, 00–59 minut.
smalldatetime DATE_FORMAT = yyyy-MM-dd hh:mmtt Kromě roku, měsíce a dne zahrnuje tento formát data 00–11 hodin, 00–59 minut, bez sekund a AM, am, PMnebo pm.
datum DATE_FORMAT = yyyy-MM-dd Rok, měsíc a den. Není zahrnutý žádný časový prvek.
datum DATE_FORMAT = yyyy-MMM-dd Rok, měsíc a den. Pokud je měsíc zadán s MMM, vstupní hodnota je jedna nebo řetězce, Jan, , Feb, Mar, Apr, MayJun, , Jul, , Aug, , Sep, , Octnebo NovDec.
datetime2 DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff Kromě roku, měsíce a dne zahrnuje tento formát data 00–23 hodin, 00–59 minut, 00–59 sekund a sedm číslic pro milisekundy.
datetime2 DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt Kromě roku, měsíce a dne zahrnuje tento formát data 00–11 hodin, 00–59 minut, 00–59 sekund, sedm číslic pro milisekundy a AM, am, , PMnebo pm.
datetimeoffset DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz Kromě roku, měsíce a dne zahrnuje tento formát data 00–23 hodin, 00–59 minut, 00–59 sekund a 7 číslic pro milisekundy a posun časového pásma, který vložíte do vstupního souboru jako {+&#124;-}HH:ss. Například vzhledem k tomu, že los angelesský čas bez letního času je 8 hodin za UTC, určuje hodnota -08:00 ve vstupním souboru časové pásmo pro Los Angeles.
datetimeoffset DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz Kromě roku, měsíce a dne zahrnuje tento formát data 00–11 hodin, 00–59 minut, 00–59 sekund, sedm číslic pro milisekundy, (AM, am, PMnebo pm) a posun časového pásma. Podívejte se na popis v předchozím řádku.
Čas DATE_FORMAT = HH:mm:ss Neexistuje žádná hodnota data, pouze 00–23 hodin, 00–59 minut a 00–59 sekund.

Podporované formáty data a času

Formát externího souboru může popisovat velký počet formátů data a času:

datum a čas smalldatetime datum datetime2 datetimeoffset
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] [M[M]]M-[d]d-[yy]yy HH:mm[:00] [M[M]]M-[d]d-[yy]yy [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] [M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] [M[M]]M-[yy]yy-[d]d HH:mm[:00] [M[M]]M-[yy]yy-[d]d [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] [M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] [yy]yy-[M[M]]M-[d]d HH:mm[:00] [yy]yy-[M[M]]M-[d]d [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] [yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] [yy]yy-[d]d-[M[M]]M HH:mm[:00] [yy]yy-[d]d-[M[M]]M [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] [yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] [d]d-[M[M]]M-[yy]yy HH:mm[:00] [d]d-[M[M]]M-[yy]yy [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] [d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] [d]d-[yy]yy-[M[M]]M HH:mm[:00] [d]d-[yy]yy-[M[M]]M [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] [d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz

Podrobnosti:

  • Chcete-li oddělit hodnoty měsíce, dne a roku, je nutné použít jeden z následujících oddělovačů: -, /, nebo .. Pro zjednodušení tabulka používá pouze - oddělovač.

  • Pokud chcete zadat měsíc jako text, použijte tři nebo více znaků. Měsíce s jedním nebo dvěma znaky se interpretují jako číslo.

  • K oddělení časových hodnot použijte : symbol.

  • Písmena uzavřená v hranatých závorkách jsou volitelná.

  • Písmena tt označují [AM|PM|am|pm]. AM je výchozí. Pokud tt je zadána hodnota hodiny (hh) musí být v rozsahu od 0 do 12.

  • Písmena zzz označují posun časového pásma pro aktuální časové pásmo systému ve formátu {+|-}HH:ss].

USE_TYPE_DEFAULT = { TRUE | FALSE }

Určuje, jak zpracovat chybějící hodnoty v textových souborech s oddělovači, když PolyBase načte data z textového souboru. Výchozí hodnota je FALSE.

  • PRAVDIVÝ

    Při načítání dat z textového souboru uložte každou chybějící hodnotu pomocí výchozí hodnoty pro datový typ odpovídajícího sloupce v definici externí tabulky. Například nahraďte chybějící hodnotu následujícím kódem:

    • 0 pokud je sloupec definován jako číselný sloupec. Desetinné sloupce nejsou podporované a dojde k chybě.

    • Prázdný řetězec "", pokud je sloupec řetězcový sloupec.

    • 1900-01-01 pokud je sloupec sloupcem kalendářního data.

    • Ve službě Azure Synapse Analytics USE_TYPE_DEFAULT=true se nepodporuje FORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.

  • NEPRAVDA

    Uložte všechny chybějící hodnoty jako NULL. Všechny NULL hodnoty uložené pomocí slova NULL v textovém souboru s oddělovači se naimportují jako řetězec NULL.

KÓDOVÁNÍ = {'UTF8' | 'UTF16'}

Ve službě Azure Synapse Analytics a Analytics Platform System (PDW) (APS CU7.4) může PolyBase číst UTF8 a UTF16-LE kódované textové soubory s oddělovači.

PolyBase na SQL Serveru nepodporuje čtení souborů s kódováním UTF16.

Povolení

Vyžaduje oprávnění ALTER ANY EXTERNAL FILE FORMAT.

Poznámky

Formát externího souboru je oborem databáze v SQL Serveru a Azure Synapse Analytics. Je vymezený serverem v systému PDW (Analytics Platform System).

Možnosti formátu jsou všechny volitelné a vztahují se pouze na textové soubory s oddělovači.

Pokud jsou data uložena v jednom z komprimovaných formátů, PolyBase nejprve dekomprimuje data před vrácením datových záznamů.

Omezení

Oddělovač řádků v textových souborech s oddělovači musí být podporován čtečkou LineRecordReader systému Hadoop. To znamená, že musí být buď \r, \nnebo \r\n. Tyto oddělovače nejsou konfigurovatelné uživatelem.

Kombinace podporovaných metod SerDe s RCFiles a podporované metody komprese dat jsou uvedeny dříve v tomto článku. Nepodporují se všechny kombinace.

Maximální počet souběžných dotazů PolyBase je 32. Když je spuštěno 32 souběžných dotazů, může každý dotaz číst maximálně 33 000 souborů z umístění externího souboru. Kořenová složka a každá podsložka se také počítají jako soubor. Pokud je stupeň souběžnosti menší než 32, může umístění externího souboru obsahovat více než 33 000 souborů.

Kvůli omezení počtu souborů v externí tabulce doporučujeme uložit méně než 30 000 souborů v kořenovém adresáři a podsložkách umístění externího souboru. Doporučujeme také zachovat počet podsložek v kořenovém adresáři na malé číslo. Pokud se odkazuje na příliš mnoho souborů, může dojít k výjimce z nedostatku paměti virtuálního počítače Java.

Při exportu dat do Hadoopu nebo Azure Blob Storage prostřednictvím PolyBase se exportují pouze data, nikoli názvy sloupců (metadata) definované v příkazu CREATE EXTERNAL TABLE.

Uzamčení

Vezme sdílený zámek u objektu EXTERNAL FILE FORMAT.

Výkon

Použití komprimovaných souborů vždy přináší kompromis mezi přenosem méně dat mezi externím zdrojem dat a SQL Serverem a zvýšením využití procesoru ke komprimaci a dekomprimaci dat.

Komprimované textové soubory Gzip nejsou rozdělené. Pokud chcete zvýšit výkon komprimovaných textových souborů Gzip, doporučujeme generovat více souborů, které jsou všechny uložené ve stejném adresáři v rámci externího zdroje dat. Tato struktura souborů umožňuje PolyBase rychleji číst a dekomprimovat data pomocí více procesů čtení a dekomprese. Ideální počet komprimovaných souborů je maximální počet procesů čtečky dat na výpočetní uzel. Na SQL Serveru

V systému PDW (Analytics Platform System) je maximální počet procesů čtečky dat 8 na uzel. V Azure Synapse Analytics je maximální počet procesů čtečky dat 20 čtenářů na uzel.

Příklady

A. Vytvoření formátu externího souboru DELIMITEDTEXT

Tento příklad vytvoří formát externího souboru s názvem textdelimited1 pro soubor s oddělovači textu. Možnosti uvedené pro FORMAT_OPTIONS určují, že pole v souboru by měla být oddělena znakem |svislé roury . Textový soubor je také komprimován kodekem Gzip. Pokud DATA_COMPRESSION není zadaný, textový soubor se nekomprimuje.

U textového souboru s oddělovači může být metoda komprese dat buď výchozí kodek, org.apache.hadoop.io.compress.DefaultCodecnebo Gzip Kodek, org.apache.hadoop.io.compress.GzipCodec.

CREATE EXTERNAL FILE FORMAT textdelimited1
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = '|',
        DATE_FORMAT = 'MM/dd/yyyy' ),
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);

B. Vytvoření formátu externího souboru RCFile

Tento příklad vytvoří formát externího souboru pro RCFile, který používá metodu serialization/deserializationorg.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe. Určuje také použití výchozího kodeku pro metodu komprese dat. Pokud DATA_COMPRESSION není zadáno, výchozí hodnota není komprese.

CREATE EXTERNAL FILE FORMAT rcfile1
WITH (
    FORMAT_TYPE = RCFILE,
    SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe',
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.DefaultCodec'
);

C. Vytvoření formátu externího souboru ORC

Tento příklad vytvoří formát externího souboru pro soubor ORC, který komprimuje data pomocí org.apache.io.compress.SnappyCodec metody komprese dat. Pokud DATA_COMPRESSION není zadáno, výchozí hodnota není komprese.

CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
    FORMAT_TYPE = ORC,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

D. Vytvoření formátu externího souboru PARQUET

Tento příklad vytvoří formát externího souboru pro soubor Parquet, který komprimuje data pomocí org.apache.io.compress.SnappyCodec metody komprese dat. Pokud DATA_COMPRESSION není zadáno, výchozí hodnota není komprese.

CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

E. Vytvoření textového souboru s oddělovači, který přeskočí řádek záhlaví

Platí pro: Azure Synapse Analytics a SQL Server 2022 (16.x) a novější.

Tento příklad vytvoří formát externího souboru pro soubor CSV s jedním řádkem záhlaví. Další informace naleznete v tématu Virtualizace souboru CSV pomocí PolyBase.

CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
      FORMAT_OPTIONS(
          FIELD_TERMINATOR = ',',
          STRING_DELIMITER = '"',
          FIRST_ROW = 2,
          USE_TYPE_DEFAULT = True)
);

F. Vytvoření formátu externího souboru JSON

Platí pro: Azure SQL Edge.

Tento příklad vytvoří formát externího souboru pro soubor JSON, který komprimuje data pomocí org.apache.io.compress.SnappyCodec metody komprese dat. Pokud DATA_COMPRESSION není zadáno, výchozí hodnota není komprese. Tento příklad platí pro Azure SQL Edge a v současné době se nepodporuje pro ostatní produkty SQL.

CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
    FORMAT_TYPE = JSON,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

G. Vytvoření formátu externího souboru tabulky Delta

Tento příklad vytvoří formát externího souboru pro formát souboru typu tabulka Delta. Tento příklad platí pro SQL Server 2022 (16.x). Další informace naleznete v tématu Virtualize delta table with PolyBase.

CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
    FORMAT_TYPE = DELTA
);