Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2016 (13.x) û későbbi verziók
: Azure SQL Database,
Azure SQL Managed Instance
,Azure Synapse Analytics
Platform System (PDW)
SQL database in Microsoft Fabric
Létrehoz egy külső fájlformátumú objektumot, amely külső adatokat definiál Hadoopban, Azure Blob Storage-ben, Azure Data Lake Store-ban, OneLake-ben a Microsoft Fabric-ben, vagy a külső streamekhez tartozó input és output streamekhez. Külső fájlformátum létrehozása előfeltétele egy külső tábla létrehozásának. Külső fájlformátum létrehozásával megadhatja a külső tábla által hivatkozott adatok tényleges elrendezését. Külső tábla létrehozásához lásd a CREATE EXTERNAL TABLE (Transact-SQL) című témakört.
A következő fájlformátumok támogatottak:
Tagolt szöveg
Az SQL adatbázis a Microsoft Fabric-ben csak CSV formátumú desplitált szöveget támogat.
Hive RCFile
Nem vonatkozik Azure Synapse Analyticsre, Azure SQL Managed Instance-ra, Azure SQL Database-re, SQL adatbázisra a Microsoft Fabric-ben vagy SQL Server 2022-re (16.x).
Hive ORC
Nem vonatkozik Azure Synapse Analyticsre, Azure SQL Managed Instance-ra, Azure SQL Database-re, SQL adatbázisra a Microsoft Fabric-ben vagy SQL Server 2022-re (16.x).
Parketta
JSON
Csak az Azure SQL Edge-ra vonatkozik. A JSON-adatok más platformokon történő importálásával
OPENROWSETkapcsolatos információkért lásd: JSON-dokumentumok importálása SQL Serverbe vagy JSON-fájlok lekérdezése kiszolgáló nélküli SQL-készlet használatával az Azure Synapse Analyticsben.Delta
Csak Azure Synapse Analytics, Azure SQL Database, SQL Server 2022 (16.x) és későbbi verziók szerver nélküli SQL poolokra vonatkozik. Lekérdezheti a Delta Lake 1.0-s verzióját. Az azóta bevezetett módosítások a Delta Lake 1.2-ben, például az oszlopok átnevezése nem támogatottak. Ha a Delta magasabb verzióit használja törlési vektorokkal, v2-ellenőrzőpontokkal és egyéb funkciókkal, fontolja meg más lekérdezési motorok, például a Microsoft Fabric SQL Analytics végpontjának használatát a Lakehouse-hoz.
Transact-SQL szintaxis konvenciók
Szemantika
-- 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'}
}
Érvek
file_format_name
Megadja a külső fájlformátum nevét.
TÍPUS_FORMATUM
A külső adatok formátumát adja meg.
FORMAT_TYPE = PARKETT
Parquet formátumot ad meg.
FORMAT_TYPE = ORC
Optimalizált soroszlop (ORC) formátumot ad meg. Ehhez a beállításhoz a Hive 0.11-es vagy újabb verziója szükséges a külső Hadoop-fürtön. A Hadoopban az ORC fájlformátum jobb tömörítést és teljesítményt nyújt, mint az RCFILE fájlformátum.
FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method
Rekordoszlopos fájlformátumot (RcFile) ad meg. Ehhez a beállításhoz meg kell adnia egy Hive Szerializáló és Deszerializáló (SerDe) metódust. Ez a követelmény ugyanaz, ha a Hive/HiveQL-t használja a Hadoopban az RC-fájlok lekérdezéséhez. Vegye figyelembe, hogy a SerDe metódus megkülönbözteti a kis- és nagybetűk megkülönböztetettségét.
Példák az RCFile megadására a PolyBase által támogatott két SerDe metódussal.
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
Meghatároz egy szövegformátumot oszlop-elválasztókkal, más néven mezőterminátorokkal.
FORMAT_TYPE = JSON
JSON-formátumot ad meg. Csak az Azure SQL Edge-ra vonatkozik.
FORMAT_TYPE = DELTA
Delta Lake-formátumot ad meg. Az Azure Synapse Analytics és az SQL Server 2022 kiszolgáló nélküli SQL-készleteire vonatkozik (16.x).
FORMAT_OPTIONS
Opcionális. Csak tagolt szöveges adattípusok esetén.
Csak kiszolgáló nélküli SQL-készletek támogatottak PARSER_VERSIONaz Azure Synapse Analyticsben.
A kiszolgáló nélküli SQL-készletek nem támogatják a DATE_FORMAT beállítást.
DATA_COMPRESSION = data_compression_method
Megadja a külső adatok adattömörítési módszerét. Ha DATA_COMPRESSION nincs megadva, az alapértelmezett a tömörítetlen adatok.
A megfelelő működéshez a Gzip tömörített fájljainak fájlkiterjesztéssel .gz kell rendelkezniük.
A DELIMITEDTEXT formátumtípus támogatja ezt a tömörítési módszert: DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec
Tagolt szövegformátum beállításai
Az ebben a szakaszban ismertetett formátumbeállítások nem kötelezőek, és csak a tagolt szövegfájlokra vonatkoznak.
FIELD_TERMINATOR = field_terminator
Csak a tagolt szövegfájlokra vonatkozik. A mezőkifejezés egy vagy több karaktert határoz meg, amely a szöveghatárolt fájlban lévő egyes mezők (oszlopok) végét jelöli. Az alapértelmezett a cső karaktere |. A garantált támogatás érdekében egy vagy több ASCII-karakter használatát javasoljuk.
Példák:
FIELD_TERMINATOR = '|'FIELD_TERMINATOR = ' 'FIELD_TERMINATOR = ꞌ\tꞌFIELD_TERMINATOR = '~|~'
STRING_DELIMITER
STRING_DELIMITER = *string_delimiter*
Olyan karaktert ad meg, amely a szöveghatárolt fájl szöveges értékeit tartalmazza. Az alapértelmezett érték a "" üres sztring. Az érték STRING_DELIMITER funkcionálisan egyenértékű a függvény FIELDQUOTE beállításával OPENROWSET BULK .
Megjegyzés:
A dedikált Synapse SQL-készletek Hadoop-táblái lehetővé teszik egy vagy több karakter megadását STRING_DELIMITER. Kiszolgáló nélküli SQL-készletben csak egy karaktert használhat.
Példák:
STRING_DELIMITER = '"'STRING_DELIMITER = '0x22'(Dupla idézőjel hexa)STRING_DELIMITER = '*'STRING_DELIMITER = ꞌ,ꞌSTRING_DELIMITER = '0x7E0x7E'(Két tildes, például:~~) - dedikált SQL-készletben támogatott.
FIRST_ROW = first_row_int
A következőkre vonatkozik: Azure Synapse Analytics, SQL Server 2022 és újabb verziók
A PolyBase-betöltés során az összes fájlban elsőként beolvasott sorszámot adja meg. Ez a paraméter 1–15 értéket vehet fel. Ha az érték két értékre van állítva, az adatok betöltésekor minden fájl (fejlécsor) első sora ki lesz hagyva. A sorok kihagyása a sorkifejezők (/r/n, /r, /n) megléte alapján lesz kihagyva. Ha ezt a lehetőséget használja az exportáláshoz, a rendszer sorokat ad hozzá az adatokhoz, így biztosítva, hogy a fájl adatvesztés nélkül olvasható legyen. Ha az érték >2, az első exportált sor a külső tábla oszlopnevei.
DATE_FORMAT = datetime_format
Egyéni formátumot ad meg minden olyan dátum- és időadathoz, amely egy tagolt szövegfájlban jelenhet meg. Ha a forrásfájl alapértelmezett dátum/idő formátumot használ, ez a beállítás nem szükséges. Fájlonként csak egy egyéni dátum/idő formátum engedélyezett. Fájlonként legfeljebb egy egyéni dátum/idő formátumot adhat meg. Azonban több datetime formátumot is használhat, ha mindegyik a külső tábladefinícióban a megfelelő adattípus alapértelmezett formátuma.
Fontos
A PolyBase csak az egyéni dátumformátumot használja az adatok importálásához. Nem használja az egyéni formátumot adatok külső fájlba való írásához.
Ha DATE_FORMAT nincs megadva, vagy az üres sztring, a PolyBase a következő alapértelmezett formátumokat használja:
Időpont:
'yyyy-MM-dd HH:mm:ss'Littledatetime:
'yyyy-MM-dd HH:mm'dátum:
'yyyy-MM-dd'Dátumidő2:
'yyyy-MM-dd HH:mm:ss'Datetimeoffset:
'yyyy-MM-dd HH:mm:ss'idő:
'HH:mm:ss'
Fontos
Egyéni DATE_FORMAT felülbírálások megadása az összes alapértelmezett típusformátumban. Ez azt jelenti, hogy a fájlok minden dátum-, dátum- és időcellájában ugyanazokat a dátumformátumokat kell használnia. A felülírt DATE_FORMATértékekkel nem rendelkezhet eltérő formátumú dátum- és időértékekkel.
A példa dátumformátumai a következő táblázatban találhatók:
Megjegyzések a tábláról:
Az év, a hónap és a nap számos formátumot és megrendelést tartalmazhat. A táblázatban csak az ymd formátum látható. A hónap egy vagy két számjegyből vagy három karakterből állhat. A napnak lehet egy vagy két számjegye. Az évnek két vagy négy számjegye lehet.
Ezredmásodperc (
fffffff) nem szükséges.amvagypm(tt) nincs szükség. Az alapértelmezett érték aAM.
| Dátumtípus | példa | Leírás |
|---|---|---|
| datetime | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff |
Az év, hónap és nap mellett ez a dátumformátum 00-24 órát, 00-59 percet, 00-59 másodpercet és három számjegyet tartalmaz ezredmásodperchez. |
| datetime | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt |
Az év, hónap és nap mellett ez a dátumformátum 00-12 óra, 00-59 perc, 00-59 másodperc, ezredmásodperc három számjegye és AM, amPM, vagy pm. |
| smalldatetime | DATE_FORMAT = yyyy-MM-dd HH:mm |
Az év, hónap és nap mellett ez a dátumformátum 00-23 órát, 00-59 percet is tartalmaz. |
| smalldatetime | DATE_FORMAT = yyyy-MM-dd hh:mmtt |
Az év, a hónap és a nap mellett ez a dátumformátum 00-11 órát, 00-59 percet, másodpercet AMés , amvagy PMpm. |
| dátum | DATE_FORMAT = yyyy-MM-dd |
Év, hónap és nap. Nincs időelem. |
| dátum | DATE_FORMAT = yyyy-MMM-dd |
Év, hónap és nap. Ha a hónap meg van advaMMM, a bemeneti érték egy vagy a sztringek, Jan, Feb, Mar, Apr, MayJun, Jul, Aug, Sep, OctNov, vagy Dec. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff |
Az év, hónap és nap mellett ez a dátumformátum 00-23 órát, 00-59 percet, 00-59 másodpercet és hét számjegyet tartalmaz ezredmásodpercben. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt |
Az év, hónap és nap mellett ez a dátumformátum 00-11 órát, 00-59 percet, 00-59 másodpercet, hét számjegyet tartalmaz ezredmásodperchez, és AM, amPMvagy pm. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz |
Az év, a hónap és a nap mellett ez a dátumformátum 00-23 órát, 00-59 percet, 00–59 másodpercet és 7 számjegyet tartalmaz ezredmásodperchez, valamint a bemeneti fájlba {+|-}HH:ssbeírt időzóna-eltolást. Mivel például a nyári időszámítás nélküli Los Angeles idő 8 órával elmarad az UTC-től, a bemeneti fájlban a -08:00 érték határozza meg a Los Angeles időzónáját. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz |
Az év, hónap és nap mellett ez a dátumformátum 00-11 órát, 00–59 percet, 00–59 másodpercet, hét számjegyet tartalmaz ezredmásodperchez, (AM, am, PM, vagy pm) és az időzónia eltolását. Lásd a leírást az előző sorban. |
| idő | DATE_FORMAT = HH:mm:ss |
Nincs dátumérték, csak 00-23 óra, 00-59 perc és 00-59 másodperc. |
Támogatott dátum- és időformátumok
A külső fájlformátum számos dátum- és időformátumot ír le:
| datetime | smalldatetime | dátum | 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 |
Részletek:
A hónap, a nap és az év értékeinek elkülönítéséhez a következő elválasztójelek egyikét kell használnia:
-,/vagy.. Az egyszerűség kedvéért a táblázat csak az elválasztót-használja.A hónap szövegként való megadásához használjon három vagy több karaktert. Az egy vagy két karaktert tartalmazó hónapokat számként értelmezi a rendszer.
Az időértékek elkülönítéséhez használja a
:szimbólumot.A szögletes zárójelbe zárt betűk megadása nem kötelező.
A betűk [
ttAM|PM|am|pm]. AAMaz alapértelmezett. Hattmeg van adva, az óraértéknek (hh) 0 és 12 közötti tartományban kell lennie.A betűk
zzza rendszer aktuális időzónájának időzóna-eltolását jelölik meg a formátumban{+|-}HH:ss].
USE_TYPE_DEFAULT = { IGAZ | HAMIS }
Megadja, hogyan kezelhetők a hiányzó értékek a tagolt szövegfájlokban, amikor a PolyBase adatokat kér le a szövegfájlból. Az alapértelmezett érték HAMIS.
IGAZ
Amikor adatokat kér le a szövegfájlból, tárolja az egyes hiányzó értékeket a külső tábladefiníció megfelelő oszlopának adattípusának alapértelmezett értékével. Például cserélje le a hiányzó értéket a következőre:
0ha az oszlop numerikus oszlopként van definiálva. A tizedesoszlopok nem támogatottak, és hiba lépnek fel.Üres "" sztring, ha az oszlop egy sztringoszlop.
1900-01-01ha az oszlop dátumoszlop.Az Azure Synapse Analytics
USE_TYPE_DEFAULT=truenem támogatja aFORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.
HAMIS
Az összes hiányzó érték tárolása a következőképpen
NULL: . ANULLtagolt szövegfájlban a szóNULLhasználatával tárolt értékek sztringkéntNULLlesznek importálva.
KÓDOLÁS = {'UTF8' | 'UTF16'}
Az Azure Synapse Analytics and Analytics Platform Systemben (PDW) (APS CU7.4) a PolyBase képes olvasni az UTF8-at és UTF16-LE kódolt tagolt szövegfájlokat.
Az SQL Serverben a PolyBase nem támogatja az UTF16 kódolású fájlok olvasását.
Engedélyek
A KÜLSŐ FÁJLFORMÁTUM MÓDOSÍTÁSA engedély szükséges.
Megjegyzések
A külső fájlformátum adatbázis-hatókörrel van elosztva az SQL Serverben és az Azure Synapse Analyticsben. A kiszolgáló hatóköre az Analytics Platform System (PDW) szolgáltatásban található.
A Hadoop formátumot csak az SQL Server 2016, 2017 és 2019 támogatja.
A formátumbeállítások nem kötelezőek, és csak a tagolt szövegfájlokra vonatkoznak.
Amikor az adatokat az egyik tömörített formátumban tárolják, a PolyBase először kibontja az adatokat, mielőtt visszaadja az adatrekordokat.
Az SQL adatbázis a Microsoft Fabric-ben csak CSV formátumú departált szöveget és Parquet fájlformátumokat támogat. A Fabric SQL adatbázis csak a OneLake-et támogatja a Microsoft Fabric-ben adatforrásként.
Korlátozások
A tagolt szövegfájlok sorhatárolóját a Hadoop LineRecordReader alkalmazásának kell támogatnia. Vagyis \rvagy , \nvagy \r\n. Ezek a elválasztók nem konfigurálhatók felhasználó által.
A támogatott SerDe-metódusok és az RCFiles kombinációi és a támogatott adattömörítési módszerek már szerepelnek a cikkben. Nem minden kombináció támogatott.
Az egyidejű PolyBase-lekérdezések maximális száma 32. Ha 32 egyidejű lekérdezés fut, mindegyik lekérdezés legfeljebb 33 000 fájlt tud beolvasni a külső fájl helyéről. A gyökérmappa és az egyes almappák is fájlnak számítanak. Ha az egyidejűség mértéke kisebb, mint 32, a külső fájl helye több mint 33 000 fájlt tartalmazhat.
A külső táblában lévő fájlok számának korlátozása miatt javasoljuk, hogy kevesebb mint 30 000 fájlt tároljunk a külső fájl helyének gyökér- és almappáiban. Azt is javasoljuk, hogy a gyökérkönyvtár alatti almappák számát kis számra tartsa. Ha túl sok fájlra hivatkozik, előfordulhat, hogy a Java virtuális gép memórián kívüli kivételt tapasztal.
Amikor adatokat exportál a Hadoopba vagy az Azure Blob Storage-ba a PolyBase-en keresztül, csak az adatokat exportálja a rendszer, a CREATE EXTERNAL TABLE parancsban meghatározott oszlopneveket (metaadatokat) nem.
Zárolás
A KÜLSŐ FÁJLFORMÁTUM objektum megosztott zárolását használja.
Teljesítmény
A tömörített fájlok használata mindig kompromisszumot jelent a kevesebb adat külső adatforrás és az SQL Server közötti átvitele között, miközben növeli a processzorhasználatot az adatok tömörítéséhez és tömörítéséhez.
A Gzip tömörített szövegfájljai nem oszthatók fel. A Gzip által tömörített szöveges fájlok teljesítményének javítása érdekében javasoljuk, hogy több olyan fájlt is generáljon, amelyek mindegyike ugyanabban a könyvtárban van tárolva a külső adatforráson belül. Ez a fájlstruktúra lehetővé teszi a PolyBase számára az adatok gyorsabb olvasását és felbontását több olvasó és dekompressziós folyamat használatával. A tömörített fájlok ideális száma a számítási csomópontonkénti adatolvasó folyamatok maximális száma. Az SQL Serverben
Az Analytics Platform Systemben (PDW) az adatolvasó folyamatok maximális száma csomópontonként 8. Az Azure Synapse Analyticsben az adatolvasói folyamatok maximális száma csomópontonként 20 olvasó.
Példák
Egy. DELIMITEDTEXT külső fájlformátum létrehozása
Ez a példa egy textdelimited1 nevű külső fájlformátumot hoz létre egy szöveghatárolt fájlhoz. A FORMAT_OPTIONS felsorolt beállítások megadják, hogy a fájl mezőit csőkarakterek |használatával kell elválasztani. A szövegfájlt a Gzip-kodek is tömöríti. Ha DATA_COMPRESSION nincs megadva, a szövegfájl nincs tömörítve.
Tagolt szövegfájlok esetén az adattömörítési módszer lehet az alapértelmezett kodek, org.apache.hadoop.io.compress.DefaultCodecvagy a Gzip Codec 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. RCFile külső fájlformátum létrehozása
Ez a példa egy külső fájlformátumot hoz létre a metódust serialization/deserializationhasználó org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe RCFile-fájlhoz. Emellett meghatározza az alapértelmezett kodek használatát az adattömörítési módszerhez. Ha DATA_COMPRESSION nincs megadva, az alapértelmezett nem tömörítés.
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. ORC külső fájlformátum létrehozása
Ez a példa létrehoz egy külső fájlformátumot egy OLYAN ORC-fájlhoz, amely az adatokat az adattömörítési org.apache.io.compress.SnappyCodec módszerrel tömöríti. Ha DATA_COMPRESSION nincs megadva, az alapértelmezett nem tömörítés.
CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
FORMAT_TYPE = ORC,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
D. PARQUET külső fájlformátum létrehozása
Ez a példa létrehoz egy külső fájlformátumot egy Parquet-fájlhoz, amely az adatokat az adattömörítési org.apache.io.compress.SnappyCodec módszerrel tömöríti. Ha DATA_COMPRESSION nincs megadva, az alapértelmezett nem tömörítés.
CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
E. Tagolt szövegfájl létrehozása a fejlécsor kihagyásával
A következőkre vonatkozik: Az Azure Synapse Analytics és az SQL Server 2022 (16.x) és újabb verziói.
Ez a példa egy külső fájlformátumot hoz létre egyetlen fejlécsort tartalmazó CSV-fájlhoz. További információ: CSV-fájl virtualizálása a PolyBase használatával.
CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True)
);
F. Külső JSON-fájlformátum létrehozása
A következőkre vonatkozik: Azure SQL Edge.
Ez a példa létrehoz egy külső fájlformátumot egy olyan JSON-fájlhoz, amely az adattömörítési módszerrel tömöríti az org.apache.io.compress.SnappyCodec adatokat. Ha DATA_COMPRESSION nincs megadva, az alapértelmezett nem tömörítés. Ez a példa az Azure SQL Edge-ra vonatkozik, és más SQL-termékek esetében jelenleg nem támogatott.
CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
FORMAT_TYPE = JSON,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
G. Delta-tábla külső fájlformátumának létrehozása
Ez a példa létrehoz egy külső fájlformátumot a Delta táblatípus fájlformátumához. Ez a példa az SQL Server 2022 -re (16.x) vonatkozik. További információ: Delta-tábla virtualizálása a PolyBase használatával.
CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
FORMAT_TYPE = DELTA
);