Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2016 (13.x) a novější
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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ů:
Text s oddělovači
Hive RCFile
Nevztahuje se na Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database ani SQL Server 2022 (16.x).
Podregistr ORC
Nevztahuje se na Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database ani SQL Server 2022 (16.x).
Parkety
JSON
Platí jenom pro Azure SQL Edge. Informace o použití
OPENROWSET
k importu dat JSON na jiných platformách najdete v tématu Import dokumentů JSON do SQL Serveru nebo dotazování souborů JSON pomocí bezserverového fondu SQL ve službě Azure Synapse Analytics.Delta
Platí jenom pro bezserverové fondy SQL ve službě Azure Synapse Analytics, Azure SQL Database, SQL Serveru 2022 (16.x) a novějších verzích. Můžete dotazovat Delta Lake verze 1.0. Změny zavedené od verze Delta Lake 1.2, jako je přejmenování sloupců, se nepodporují. Pokud používáte vyšší verze Delta s vektory odstranění, kontrolními body v2 a dalšími funkcemi, zvažte použití jiných dotazovacích modulů, jako je koncový bod Microsoft Fabric SQL Analytics pro Lakehouses.
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_VERSION
pouze 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_FORMAT
nemůž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
nebopm
(tt
) není povinné. Výchozí hodnota jeAM
.
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 , , PM nebo 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 , PM nebo 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 , May Jun , , Jul , , Aug , , Sep , , Oct nebo Nov Dec . |
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 , , PM nebo 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 {+|-}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 , PM nebo 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í. Pokudtt
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 nepodporujeFORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'
.
NEPRAVDA
Uložte všechny chybějící hodnoty jako
NULL
. VšechnyNULL
hodnoty uložené pomocí slovaNULL
v textovém souboru s oddělovači se naimportují jako řetězecNULL
.
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
, \n
nebo \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.DefaultCodec
nebo 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/deserialization
org.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
);
Související obsah
- VYTVOŘIT EXTERNÍ ZDROJ DAT (Transact-SQL)
- VYTVOŘIT EXTERNÍ TABULKU (Transact-SQL)
- CREATE EXTERNAL TABLE AS SELECT (CETAS) (Transact-SQL)
- VYTVOŘIT TABULKU JAKO VÝBĚR
- sys.external_file_formats (Transact-SQL)