Megosztás a következőn keresztül:


KÜLSŐ FÁJLFORMÁTUM LÉTREHOZÁSA (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2016 (13.x) û későbbi verziók: Azure SQL Database,Azure SQL Managed Instance,Azure Synapse AnalyticsPlatform 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:

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.

  • am vagy pm (tt) nincs szükség. Az alapértelmezett érték a AM.

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 {+&#124;-}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]. A AM az alapértelmezett. Ha tt meg van adva, az óraértéknek (hh) 0 és 12 közötti tartományban kell lennie.

  • A betűk zzz a 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:

    • 0 ha 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-01 ha az oszlop dátumoszlop.

    • Az Azure Synapse Analytics USE_TYPE_DEFAULT=true nem támogatja a FORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.

  • HAMIS

    Az összes hiányzó érték tárolása a következőképpen NULL: . A NULL tagolt szövegfájlban a szó NULL használatával tárolt értékek sztringként NULLlesznek 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
);