Támogatott fájlformátumok és tömörítési kodekek Azure Data Factory és Synapse Analytics (örökölt)

A KÖVETKEZŐKRE VONATKOZIK: Azure Data Factory Azure Synapse Analytics

Ez a cikk a következő összekötőkre vonatkozik: Amazon S3,Azure Blob,Azure Data Lake Storage Gen1,Azure Data Lake Storage Gen2,Azure Files,Fájlrendszer,FTP, Google Cloud Storage,HDFS,HTTPés SFTP.

Fontos

A szolgáltatás új formátumalapú adatmodellt vezetett be. A részleteket a megfelelő formátumokkal kapcsolatos cikkben olvashatja el:
- -
- -
- -
- -
- -
- -
A cikkben említett többi konfiguráció továbbra is támogatott a visszamenőleges kompatibilitás érdekében. A 2012-hez javasolt az új modell használata.

Szövegformátum (örökölt)

Megjegyzés

Ismerje meg az új modellt a Tagolt szövegformátum cikkből. A fájlalapú adattár adatkészletének alábbi konfigurációi továbbra is támogatottak a visszamenőleges kompatibilitás érdekében. A 2012-hez javasolt az új modell használata.

Ha egy szövegfájlból szeretne olvasni vagy szövegfájlba írni, állítsa az adathalmaz szakaszának tulajdonságát typeformattype Emellett megadhatja a következő választható tulajdonságokat a szakaszban. A konfigurálással kapcsolatban lásd A TextFormat használatát bemutató példa című szakaszt.

Tulajdonság Leírás Megengedett értékek Kötelező
columnDelimiter A fájlokban az oszlopok elválasztására használt karakter. Érdemes lehet egy ritka, nem nyomtatható karaktert használni, amely esetleg nem létezik az adatokban. Adja meg például a "\u0001" értéket, amely a fejléc kezdete (SOH) értéket jelöli. Csak egy karakter használata engedélyezett. Az alapértelmezett érték a vessző (,).

Unicode-karakter használatával kapcsolatban tekintse meg a Unicode-karaktereket a hozzá tartozó kód lekért értékével.
No
rowDelimiter A fájlokban a sorok elválasztására használt karakter. Csak egy karakter használata engedélyezett. Az alapértelmezett érték olvasáskor a következő értékek bármelyike: [„\r\n”, „\r”, „\n”], illetve „\r\n” írás esetén. No
escapeChar Az oszlophatároló feloldására szolgáló speciális karakter a bemeneti fájl tartalmában.

Egy táblához nem határozható meg az escapeChar és a quoteChar is.
Csak egy karakter használata engedélyezett. Nincs alapértelmezett érték.

Például: ha vessző (,) van az oszlophatárolóként, de a vessző karaktert szeretné tartalmazni a szövegben (például: "Hello, world"), megadhatja a "$" karaktert escape karakterként, és használhatja a "Hello$, world" sztringet a forrásban.
No
quoteChar Egy sztringérték idézéséhez használt karakter. Ekkor az idézőjel-karakterek közötti oszlop- és sorhatárolókat a rendszer a sztringérték részeként kezeli. Ez a tulajdonság a bemeneti és a kimeneti adatkészleteken is alkalmazható.

Egy táblához nem határozható meg az escapeChar és a quoteChar is.
Csak egy karakter használata engedélyezett. Nincs alapértelmezett érték.

Ha például vessző (',' ) van az oszlophatárolóként, de vessző karaktert szeretne a szövegben (például: Hello, world ), megadhatja a " (dupla idézőjel) idézőjelet, és használhatja a "Hello, world" sztringet a <> forrásban.
No
nullValue A null értéket jelölő egy vagy több karakter. Egy vagy több karakter. Az alapértelmezett értékek az „\N” és „NULL” olvasás, illetve „\N” írás esetén. No
encodingName A kódolási név megadására szolgál. Egy érvényes kódolási név. Lásd az Encoding.EncodingName tulajdonságot. Például: windows-1250 vagy shift_jis. Az alapértelmezett érték az UTF-8. No
firstRowAsHeader Megadja, hogy az első sort fejlécnek kell-e tekinteni. Bemeneti adatkészlet esetén a szolgáltatás fejlécként olvassa be az első sort. Kimeneti adatkészletek esetén a szolgáltatás fejlécként írja az első sort.

A és a skipLineCount használatára vonatkozó forgatókönyvekben tekinthet meg minta-forgatókönyveket.
Igaz
False (alapértelmezett)
No
skipLineCount Azt jelzi, hogy a bemeneti fájlokból adatokat olvasva hány nem üres sor kihagyható. Ha a skipLineCount és a firstRowAsHeader tulajdonság is meg van adva, a rendszer először kihagyja a sorokat, majd beolvassa a fejléc-információkat a bemeneti fájlból.

A és a skipLineCount használatára vonatkozó forgatókönyvekben tekinthet meg minta-forgatókönyveket.
Egész szám No
treatEmptyAsNull Meghatározza, hogy az adatok bemeneti fájlból történő olvasásakor a sztring null vagy üres értékeit null értékként kell-e kezelni. True (alapértelmezett)
Hamis
No

A TextFormat használatát bemutató példa

Az adatkészlet alábbi JSON-definíciójában néhány választható tulajdonság meg van adva.

"typeProperties":
{
    "folderPath": "mycontainer/myfolder",
    "fileName": "myblobname",
    "format":
    {
        "type": "TextFormat",
        "columnDelimiter": ",",
        "rowDelimiter": ";",
        "quoteChar": "\"",
        "NullValue": "NaN",
        "firstRowAsHeader": true,
        "skipLineCount": 0,
        "treatEmptyAsNull": true
    }
},

quoteChar helyett quoteChar használatához cserélje le a sort escapeChar értékre a következő escapeChar kifejezéssel:

"escapeChar": "$",

A firstRowAsHeader és a skipLineCount használatára vonatkozó forgatókönyvek

  • Egy nem fájlalapú forrásból másol egy szöveges fájlba, és szeretne hozzáadni egy fejlécsort, amely tartalmazza a séma (például SQL-séma) metaadatait. Ebben a forgatókönyvben adja meg a firstRowAsHeader értékét igazként a kimeneti adatkészletben.
  • Egy fejlécsort tartalmazó szöveges fájlból másol egy nem fájlalapú fogadóba, és el szeretné hagyni azt a sort. Adja meg a firstRowAsHeader értékét igazként a bemeneti adatkészletben.
  • Egy szöveges fájlból másol, és szeretne kihagyni néhány sort az elejéről, amelyek nem tartalmaznak adatokat vagy fejléc-információkat. Adja meg a skipLineCount értékét a kihagyni kívánt sorok számának jelzéséhez. Ha a fájl hátralévő része fejlécsort tartalmaz, a firstRowAsHeader is megadható. Ha a skipLineCount és a firstRowAsHeader is meg van adva, a rendszer először kihagyja a sorokat, majd beolvassa a fejléc-információkat a bemeneti fájlból

JSON formátum (örökölt)

Megjegyzés

Ismerje meg az új modellt a JSON formátumról. A fájlalapú adattár adatkészletének alábbi konfigurációi továbbra is támogatottak a visszamenőleges kompatibilitás érdekében. A 2001-hez javasolt az új modell használata.

Egy JSON-fájl importálásához/exportálásáhozaz Azure Cosmos DB-be vagy onnan másba, tekintse meg az Adatok áthelyezése egy fájlba vagy fájlból Azure Cosmos DB JSON-dokumentumok importálása/exportálása című szakaszát.

Ha a JSON-fájlokat szeretné elemezni, vagy JSON formátumban szeretné megírni az adatokat, állítsa a szakasz tulajdonságát typeformattype Emellett megadhatja a következő választható tulajdonságokat a szakaszban. A konfigurálással kapcsolatban lásd A JsonFormat használatát bemutató példa című szakaszt.

Tulajdonság Leírás Kötelező
filePattern Az egyes JSON-fájlokban tárolt adatok mintáját jelzi. Az engedélyezett értékek a következők: setOfObjects és arrayOfObjects. Az alapértelmezett érték a setOfObjects. A mintákkal kapcsolatban lásd a JSON-fájlminták című szakaszt. No
jsonNodeReference Ha egy azonos mintával rendelkező tömbmezőben található objektumokat szeretne iterálni, vagy azokból adatokat kinyerni, adja meg a tömb JSON-útvonalát. Ez a tulajdonság csak akkor támogatott, ha JSON-fájlokból másol adatokat. No
jsonPathDefinition Megadja az egyes oszlopmegfeleltetések JSON-útvonalának kifejezését testre szabott oszlopnevekkel (kezdje kisbetűvel). Ez a tulajdonság csak akkor támogatott, ha JSON-fájlokból másol adatokat, és kinyerhet adatokat objektumokból vagy tömbökből.

A gyökérobjektum alatti mezők esetében kezdjen a gyökér $ értékkel. A jsonNodeReference tulajdonság által kiválasztott tömbben lévő mezők esetében kezdjen a tömbelemmel. A konfigurálással kapcsolatban lásd A JsonFormat használatát bemutató példa című szakaszt.
No
encodingName A kódolási név megadására szolgál. Az érvényes kódolási nevekkel kapcsolatban lásd az Encoding.EncodingName tulajdonságot. Például: windows-1250 vagy shift_jis. Az alapértelmezett érték: UTF-8. No
nestingSeparator A beágyazási szinteket elválasztó karakter. Az alapértelmezett érték a „.” (pont). No

Megjegyzés

A tömbben lévő adatok több sorra történő keresztalkalmazása esetén (A >>példákban az 1. eset – 2. minta) csak a tulajdonság használatával bontható ki egyetlen jsonNodeReference tömb.

JSON-fájlminták

Copy tevékenység JSON-fájlok következő mintáit tudja kieselkedni:

  • I. típus: setOfObjects

    Minden fájl egyetlen objektumot, illetve több, sorokkal határolt/összefűzött objektumot tartalmaz. Ha ezt a lehetőséget választja egy kimeneti adatkészletben, a másolási tevékenység egyetlen JSON-fájlt állít elő, soronként egy objektummal (sorokkal határolt).

    • példa egy objektumot tartalmazó JSON-fájlra

      {
          "time": "2015-04-29T07:12:20.9100000Z",
          "callingimsi": "466920403025604",
          "callingnum1": "678948008",
          "callingnum2": "567834760",
          "switch1": "China",
          "switch2": "Germany"
      }
      
    • példa sorokkal határolt JSON-fájlra

      {"time":"2015-04-29T07:12:20.9100000Z","callingimsi":"466920403025604","callingnum1":"678948008","callingnum2":"567834760","switch1":"China","switch2":"Germany"}
      {"time":"2015-04-29T07:13:21.0220000Z","callingimsi":"466922202613463","callingnum1":"123436380","callingnum2":"789037573","switch1":"US","switch2":"UK"}
      {"time":"2015-04-29T07:13:21.4370000Z","callingimsi":"466923101048691","callingnum1":"678901578","callingnum2":"345626404","switch1":"Germany","switch2":"UK"}
      
    • példa összefűzött JSON-fájlra

      {
          "time": "2015-04-29T07:12:20.9100000Z",
          "callingimsi": "466920403025604",
          "callingnum1": "678948008",
          "callingnum2": "567834760",
          "switch1": "China",
          "switch2": "Germany"
      }
      {
          "time": "2015-04-29T07:13:21.0220000Z",
          "callingimsi": "466922202613463",
          "callingnum1": "123436380",
          "callingnum2": "789037573",
          "switch1": "US",
          "switch2": "UK"
      }
      {
          "time": "2015-04-29T07:13:21.4370000Z",
          "callingimsi": "466923101048691",
          "callingnum1": "678901578",
          "callingnum2": "345626404",
          "switch1": "Germany",
          "switch2": "UK"
      }
      
  • II. típus: arrayOfObjects

    Minden fájl objektumok egy tömbjét tartalmazza.

    [
        {
            "time": "2015-04-29T07:12:20.9100000Z",
            "callingimsi": "466920403025604",
            "callingnum1": "678948008",
            "callingnum2": "567834760",
            "switch1": "China",
            "switch2": "Germany"
        },
        {
            "time": "2015-04-29T07:13:21.0220000Z",
            "callingimsi": "466922202613463",
            "callingnum1": "123436380",
            "callingnum2": "789037573",
            "switch1": "US",
            "switch2": "UK"
        },
        {
            "time": "2015-04-29T07:13:21.4370000Z",
            "callingimsi": "466923101048691",
            "callingnum1": "678901578",
            "callingnum2": "345626404",
            "switch1": "Germany",
            "switch2": "UK"
        }
    ]
    

A JsonFormat használatát bemutató példa

1. eset: Adatok másolása JSON-fájlokból

1. példa: adatok kigyűjtése objektumból és tömbből

Ebben a példában egy JSON-gyökérobjektum képződik le egyetlen rekordba táblázatos nézetben. Ha a JSON-fájl a következőt tartalmazza:

{
    "id": "ed0e4960-d9c5-11e6-85dc-d7996816aad3",
    "context": {
        "device": {
            "type": "PC"
        },
        "custom": {
            "dimensions": [
                {
                    "TargetResourceType": "Microsoft.Compute/virtualMachines"
                },
                {
                    "ResourceManagementProcessRunId": "827f8aaa-ab72-437c-ba48-d8917a7336a3"
                },
                {
                    "OccurrenceTime": "1/13/2017 11:24:37 AM"
                }
            ]
        }
    }
}

és az adatok objektumokból és tömbökből való kigyűjtésével szeretné átmásolni egy Azure SQL-táblába az alábbi formátumban:

ID (Azonosító) deviceType targetResourceType resourceManagementProcessRunId occurrenceTime
ed0e4960-d9c5-11e6-85dc-d7996816aad3 PC Microsoft.Compute/virtualMachines 827f8aaa-ab72-437c-ba48-d8917a7336a3 1/13/2017 11:24:37 AM

A JsonFormat típusú bemeneti adatkészlet a következőképpen van meghatározva (részleges meghatározás, csak a fontos részekkel). Pontosabban:

  • A structure szakasz határozza meg a testre szabott oszlopneveket és a megfelelő adattípusokat, miközben átalakítja őket táblázatos adatokká. Ez a szakasz nem kötelező, kivéve, ha oszlopleképezést kell végeznie. További információ: Forrásadatkészlet-oszlopok leképezése céladatkészlet-oszlopokra.
  • A jsonPathDefinition határozza meg az egyes oszlopok JSON-útvonalát, amely jelzi, hogy honnan történjen az adatok kinyerése. Az adatok tömbből való másolásához a használatával kinyerheti az adott tulajdonság értékét a objektumból, vagy megkeresheti az értéket bármely olyan objektumból, amely ilyen array[x].propertyxtharray[*].property tulajdonságot tartalmaz.
"properties": {
    "structure": [
        {
            "name": "id",
            "type": "String"
        },
        {
            "name": "deviceType",
            "type": "String"
        },
        {
            "name": "targetResourceType",
            "type": "String"
        },
        {
            "name": "resourceManagementProcessRunId",
            "type": "String"
        },
        {
            "name": "occurrenceTime",
            "type": "DateTime"
        }
    ],
    "typeProperties": {
        "folderPath": "mycontainer/myfolder",
        "format": {
            "type": "JsonFormat",
            "filePattern": "setOfObjects",
            "jsonPathDefinition": {"id": "$.id", "deviceType": "$.context.device.type", "targetResourceType": "$.context.custom.dimensions[0].TargetResourceType", "resourceManagementProcessRunId": "$.context.custom.dimensions[1].ResourceManagementProcessRunId", "occurrenceTime": " $.context.custom.dimensions[2].OccurrenceTime"}
        }
    }
}

2. példa: a tömbből származó ugyanazon minta keresztalkalmazása több objektumra

Ebben a példában egy JSON-gyökérobjektumot alakít át több rekorddá táblázatos nézetben. Ha a JSON-fájl a következőt tartalmazza:

{
    "ordernumber": "01",
    "orderdate": "20170122",
    "orderlines": [
        {
            "prod": "p1",
            "price": 23
        },
        {
            "prod": "p2",
            "price": 13
        },
        {
            "prod": "p3",
            "price": 231
        }
    ],
    "city": [ { "sanmateo": "No 1" } ]
}

és szeretné átmásolni egy Azure SQL-táblába az alábbi formátumban, a tömbben lévő adatok egybesimításával, valamint keresztillesztést létrehozni a közös gyökérinformációval:

ordernumber orderdate order_pd order_price city
01 20170122 P1 23 [{"sanmateo":"No 1"}]
01 20170122 P2 13 [{"sanmateo":"No 1"}]
01 20170122 P3 231 [{"sanmateo":"No 1"}]

A JsonFormat típusú bemeneti adatkészlet a következőképpen van meghatározva (részleges meghatározás, csak a fontos részekkel). Pontosabban:

  • A structure szakasz határozza meg a testre szabott oszlopneveket és a megfelelő adattípusokat, miközben átalakítja őket táblázatos adatokká. Ez a szakasz nem kötelező, kivéve, ha oszlopleképezést kell végeznie. További információ: Forrásadatkészlet-oszlopok leképezése céladatkészlet-oszlopokra.
  • jsonNodeReferenceA azt jelzi, hogy iterálni és kinyerni adatokat a tömb alatti azonos mintával lévő jsonNodeReferenceorderlines
  • A jsonPathDefinition határozza meg az egyes oszlopok JSON-útvonalát, amely jelzi, hogy honnan történjen az adatok kinyerése. Ebben a példában a , a és a gyökérobjektum alatt található, a JSON elérési út a értéktől kezdve, a és a pedig a nélkül a tömbelemből származtatott elérési ordernumberorderdatecity$.order_pdorder_price$. út.
"properties": {
    "structure": [
        {
            "name": "ordernumber",
            "type": "String"
        },
        {
            "name": "orderdate",
            "type": "String"
        },
        {
            "name": "order_pd",
            "type": "String"
        },
        {
            "name": "order_price",
            "type": "Int64"
        },
        {
            "name": "city",
            "type": "String"
        }
    ],
    "typeProperties": {
        "folderPath": "mycontainer/myfolder",
        "format": {
            "type": "JsonFormat",
            "filePattern": "setOfObjects",
            "jsonNodeReference": "$.orderlines",
            "jsonPathDefinition": {"ordernumber": "$.ordernumber", "orderdate": "$.orderdate", "order_pd": "prod", "order_price": "price", "city": " $.city"}
        }
    }
}

Vegye figyelembe a következő szempontokat:

  • Ha a és a nincs definiálva az adatkészletben, a másolási tevékenység észleli a sémát az első objektumból, és lelapul a structurejsonPathDefinition teljes objektumot.
  • Ha a JSON-bemenet egy tömböt tartalmaz, a másolási tevékenység alapértelmezés szerint a tömb teljes értékét egy sztringgé alakítja át. Választhatja, hogy a jsonNodeReference és/vagy a jsonPathDefinition használatával kívánja kinyerni belőle az adatokat, vagy ki is hagyhatja ezt a műveletet, ha nem adja meg a jsonPathDefinition értékét.
  • Ha ismétlődő nevek szerepelnek ugyanazon a szinten, a másolási tevékenység az utolsót választja ki.
  • A tulajdonságnevek megkülönböztetik a kis- és nagybetűket. A rendszer két azonos nevű, de eltérő kis- és nagybetűket tartalmazó tulajdonságot két különálló tulajdonságként kezel.

2. eset: Adatok írása JSON-fájlba

Ha az alábbi táblázat található a SQL Database:

ID (Azonosító) order_date order_price order_by
1 20170119 2000 David
2 20170120 3500 Patrick
3 20170121 4000 Jason

és minden rekordhoz egy JSON-objektumba fog írni a következő formátumban:

{
    "id": "1",
    "order": {
        "date": "20170119",
        "price": 2000,
        "customer": "David"
    }
}

A JsonFormat típusú kimeneti adatkészlet a következőképpen van meghatározva (részleges meghatározás, csak a fontos részekkel). Pontosabban a szakasz határozza meg a testreszabott tulajdonságneveket a célfájlban (az alapértelmezett érték a ".") a beágyazott réteg azonosítására a structurenestingSeparator névből. Ez a szakasz nem kötelező, kivéve, ha módosítani szeretné a tulajdonság nevét a forrásoszlop nevéhez képest, vagy egyes tulajdonságokat egymásba szeretne ágyazni.

"properties": {
    "structure": [
        {
            "name": "id",
            "type": "String"
        },
        {
            "name": "order.date",
            "type": "String"
        },
        {
            "name": "order.price",
            "type": "Int64"
        },
        {
            "name": "order.customer",
            "type": "String"
        }
    ],
    "typeProperties": {
        "folderPath": "mycontainer/myfolder",
        "format": {
            "type": "JsonFormat"
        }
    }
}

Parquet formátum (örökölt)

Megjegyzés

Ismerje meg az új modellt a Parquet formátumról. A fájlalapú adattár adatkészletének alábbi konfigurációi továbbra is támogatottak a visszamenőleges kompatibilitás érdekében. A 2001-hez javasolt az új modell használata.

Ha elemezni szeretné a Parquet-fájlokat, vagy Parquet formátumban szeretne adatokat írni, állítsa a formattype tulajdonságot format értékre. Nem kell meghatároznia semmilyen tulajdonságot a Format szakaszban a typeProperties szakaszon belül. Példa:

"format":
{
    "type": "ParquetFormat"
}

Vegye figyelembe a következő szempontokat:

  • Az összetett adattípusok nem támogatottak (MAP, LIST).
  • Az oszlopnévben található térköz nem támogatott.
  • A Parquet-fájlok a következő tömörítéshez kapcsolódó beállításokat használják: NONE, SNAPPY, GZIP és LZO. A szolgáltatás az LZO kivételével bármelyik tömörített formátumban támogatja az adatok Parquet-fájlból való beolvasását – a metaadatokban található tömörítési kodeket használja az adatok beolvasására. Parquet-fájlba való íráskor azonban a szolgáltatás a SNAPPY formátumot választja, amely a Parquet alapértelmezett formátuma. Jelenleg nincs lehetőség ennek a viselkedésnek a felülírására.

Fontos

A helyi Integration Runtime által lehetővé teszi például a helyszíni és a felhőalapú adattárak közötti másoláshoz, ha nem a ként másolja a Parquet-fájlokat, telepítenie kell a 64 bites JRE 8 (Java Runtime Environment) vagy az OpenJDK-t az ir-gépre. További részleteket a következő bekezdésben talál.

A helyi integrációs rendszeren Parquet-fájlszerializálással/deszerializálással futtatott másoláshoz a szolgáltatás megkeresi a Java-futtatókörnyezetet, először ellenőrzi a JRE beállításjegyzékét, ha nem található, másodszor pedig ellenőrzi a rendszerváltozót az (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome)JAVA_HOME OpenJDK-hoz.

  • A JRE használatához:A 64 bites ir-hez 64 bites JRE szükséges. Ezt itt találhatja meg:.
  • Az OpenJDK használata:az IR 3.13-as verziója óta támogatott. Csomagolja jvm.dll openJDK összes többi szükséges szerelvényét egy saját üzemeltetett integrációsrendszer-gépre, és ennek megfelelően állítsa be a JAVA_HOME változót.

Tipp

Ha az adatokat a Parquet formátumba vagy onnan másoló helyi Integration Runtime használatával másolja, és a következő hibaüzenet jelenik meg: "Hiba történt java, üzenet: java.lang.OutOfMemoryError:Java-halomtér"üzenet, hozzáadhat egy környezeti változót az önkiszolgáló integrációs összekötőt tartalmazó gépen a JVM minimális/maximális halomméretének módosításához, majd újrafuttathatja a folyamatot.

JVM-halommemóta méretének beállítása a saját üzemeltetett integrációs szolgáltatáson

Példa: állítsa be a _JAVA_OPTIONS változót -Xms256m -Xmx16g értékkel. A jelző a kezdeti memóriafoglalási készletet adja meg egy Java virtuális gép (JVM) számára, a maximális memóriafoglalási XmsXmx készletet pedig megadja. Ez azt jelenti, hogy a JVM nagy mennyiségű memóriával fog elindulni, és Xms maximális Xmx memóriamennyiséget tud majd használni. Alapértelmezés szerint a szolgáltatás minimálisan 64 MB-ot és maximum 1G-t használ.

Adattípus-leképezés Parquet-fájlokhoz

Ideiglenes szolgáltatás adattípusa Parquet primitív típus Parquet eredeti típusa (deserialize) Parquet eredeti típusa (szerializálás)
Logikai érték Logikai érték N.A. N.A.
SByte Int32 Int8 Int8
Bájt Int32 UInt8 Int16
Int16 Int32 Int16 Int16
UInt16 Int32 UInt16 Int32
Int32 Int32 Int32 Int32
UInt32 Int64 UInt32 Int64
Int64 Int64 Int64 Int64
UInt64 Int64/Binary UInt64 Tizedesjegy
Egyirányú Float N.A. N.A.
Dupla Dupla N.A. N.A.
Tizedesjegy Bináris Tizedesjegy Tizedesjegy
Sztring Bináris Utf8 Utf8
DateTime Int96 N.A. N.A.
időtartam Int96 N.A. N.A.
DateTimeOffset (Dátum és idő lefolyása) Int96 N.A. N.A.
ByteArray Bináris N.A. N.A.
Guid Bináris Utf8 Utf8
Char Bináris Utf8 Utf8
CharArray Nem támogatott N.A. N.A.

ORC formátum (örökölt)

Megjegyzés

Ismerje meg az új modellt az ORC formátumról. A fájlalapú adattár adatkészletének alábbi konfigurációi továbbra is támogatottak a visszamenőleges kompatibilitás érdekében. A 2012-hez javasolt az új modell használata.

Ha elemezni szeretné a ORC-fájlokat, vagy ORC formátumban szeretne adatokat írni, állítsa a formattype tulajdonságot format értékre. Nem kell meghatároznia semmilyen tulajdonságot a Format szakaszban a typeProperties szakaszon belül. Példa:

"format":
{
    "type": "OrcFormat"
}

Vegye figyelembe a következő szempontokat:

  • Az összetett adattípusok nem támogatottak (STRUCT, MAP, LIST, UNION).
  • Az oszlopnévben található térköz nem támogatott.
  • Az ORC-fájlok három, tömörítéshez kapcsolódó beállítással rendelkeznek: NONE, ZLIB, SNAPPY. A szolgáltatás a tömörített formátumok bármelyikében támogatja az ADATOK ORC-fájlból való beolvasását. Az adatok olvasásához a metaadatokban szereplő tömörítési kodeket használja. ORC-fájlba való íráskor azonban a szolgáltatás a ZLIB-t választja, amely az ORC alapértelmezett beállítása. Jelenleg nincs lehetőség ennek a viselkedésnek a felülírására.

Fontos

A helyi Integration Runtime által lehetővé teszi például a helyszíni és a felhőbeli adattárak közötti másolást, ha nem az adott ként másol ORC-fájlokat, telepítenie kell a 64 bites JRE 8 (Java Runtime Environment) vagy OpenJDK-t az ir-gépre. További részleteket a következő bekezdésben talál.

A helyi integrációs rendszeren ORC-fájlszerializálással/deszerializálással futtatott másoláshoz a szolgáltatás megkeresi a Java-futtatókörnyezetet, először ellenőrzi a JRE beállításjegyzékét, ha nem található, majd ellenőrzi a rendszerváltozót az (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome)JAVA_HOME OpenJDK-hoz.

  • A JRE használatához:A 64 bites ir használatához 64 bites JRE szükséges. Ezt itt találhatja meg:.
  • Az OpenJDK használata:az integrációs program 3.13-as verziója óta támogatott. Csomagolja a jvm.dll OpenJDK összes többi szükséges szerelvényével egy saját üzemeltetett integrációsrendszer-gépre, és állítsa be ennek megfelelően a JAVA_HOME változót.

ORC-fájlok adattípus-leképezése

Ideiglenes szolgáltatás adattípusa ORC-típusok
Logikai érték Logikai érték
SByte (SBYTE) Bájt
Bájt Rövid
Int16 Rövid
UInt16 Int
Int32 Int
UInt32 Hosszú
Int64 Hosszú
UInt64 Sztring
Egyirányú Float
Dupla Dupla
Tizedesjegy Tizedesjegy
Sztring Sztring
DateTime Időbélyeg
DateTimeOffset (Dátum és idő lefolyása) Időbélyeg
időtartam Időbélyeg
ByteArray Bináris
Guid Sztring
Char Char(1)

AVRO formátum (örökölt)

Megjegyzés

Ismerje meg az új modellt az Avro format cikkből. A fájlalapú adattár adatkészletének alábbi konfigurációi továbbra is támogatottak a visszamenőleges kompatibilitás érdekében. A 2012-hez javasolt az új modell használata.

Ha elemezni szeretné a Avro-fájlokat, vagy Avro formátumban szeretne adatokat írni, állítsa a formattype tulajdonságot format értékre. Nem kell meghatároznia semmilyen tulajdonságot a Format szakaszban a typeProperties szakaszon belül. Példa:

"format":
{
    "type": "AvroFormat",
}

Az Avro formátum Hive-táblában való használatával kapcsolatban tekintse meg a Apache Hive oktatóanyagát.

Vegye figyelembe a következő szempontokat:

Tömörítés támogatása (örökölt)

A szolgáltatás támogatja az adatok tömörítését/kibontása a másolás során. Amikor tulajdonságot ad meg egy bemeneti adatkészletben, a másolási tevékenység beolvassa a tömörített adatokat a forrásból, és kibontja azokat; és amikor megadja a tulajdonságot egy kimeneti adatkészletben, a másolási tevékenység tömöríti, majd adatokat ír a compression fogadóba. Íme néhány példaforgatókönyv:

  • GZIP tömörített adatok olvasása egy Azure-blobból, kicsomagolásuk és eredményadatok írása a Azure SQL Database. A bemeneti Azure Blob-adatkészletet A compressiontype tulajdonsággal GZIP-ként definiálhatja.
  • Beolvassa az adatokat egy egyszerű szöveges fájlból a helyszíni fájlrendszerből, GZip formátumban tömöríti, majd a tömörített adatokat egy Azure-blobba írja. A kimeneti Azure Blob-adatkészletet A compressiontype tulajdonsággal GZip-ként határozhatja meg.
  • Olvassa .zip fájlt az FTP-kiszolgálóról, majd kibontsa, hogy beolvassa a fájlokat, és ezeket a fájlokat az Azure Data Lake Store. A bemeneti FTP-adatkészletet compressiontype ZipDeflate (ZipDeflate) tulajdonsággal kell definiálni.
  • GZIP-tömörített adatok beolvasása egy Azure-blobból, kibontása, BZIP2 használatával való tömörítése és eredményadatok írása egy Azure-blobba. A bemeneti Azure Blob-adatkészletet GZIP-re, a kimeneti adatkészletet pedig compressiontypecompressiontype BZIP2-re kell állítani.

Egy adatkészlet tömörítésének megadásához használja az adatkészlet JSON-fájlban található compression tulajdonságot az alábbi példában megadottak szerint:

{
    "name": "AzureBlobDataSet",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "StorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "fileName": "pagecounts.csv.gz",
            "folderPath": "compression/file/",
            "format": {
                "type": "TextFormat"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

A tömörítés szakasz két tulajdonsággal rendelkezik:

  • Típus: a tömörítési kodek, amely lehet GZIP,Deflate, BZIP2vagy ZipDeflate. Vegye figyelembe, hogy ha másolási tevékenységgel bontja ki a ZipDeflate-fájlokat, és fájlalapú fogadóadattárba ír, a fájlok a következő mappába lesznek kibontva: <path specified in dataset>/<folder named as source zip file>/ .

  • Szint: a tömörítési arány, amely optimális vagyleggyorsabb lehet.

    • Leggyorsabb: A tömörítési műveletnek a lehető leggyorsabban kell befejeződni, még akkor is, ha az eredményül kapott fájl nincs optimálisan tömörítve.

    • Optimális:A tömörítési műveletet optimálisan tömöríteni kell, még akkor is, ha a művelet hosszabb ideig tart.

      További információkért lásd a Tömörítési szint témakört.

Megjegyzés

Az AvroFormat,OrcFormatvagy ParquetFormatadattömörítési beállításai nem támogatottak. Az ilyen formátumú fájlok olvasása során a szolgáltatás észleli és használja a tömörítési kodeket a metaadatokban. Az ilyen formátumú fájlokba való íráskor a szolgáltatás az alapértelmezett tömörítési kodet választja ki. Például ZLIB for OrcFormat és SNAPPY a ParquetFormathoz.

Nem támogatott fájltípusok és tömörítési formátumok

A nem támogatott fájlok átalakításához használhatja a extenzibilitási funkciókat. Két lehetőség van a Azure Functions feladatok és az egyéni feladatok Azure Batch.

Láthat egy mintát, amely egy Azure-függvény használatával bontja ki egy tar-fájl tartalmát. További információ: Azure Functions.

Ezt a funkciót egyéni dotnet tevékenységgel is létrehozhatja. További információk itt érhetők el

Következő lépések

Ismerje meg a támogatott fájlformátumok és tömörítések legújabb támogatott formátumát és tömörítését a támogatott fájlformátumokról és tömörítésről.