JSON formátum Azure Data Factory és Azure Synapse Analytics

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

Akkor kövesse ezt a cikket, ha a JSON-fájlokat szeretné elemezni, vagy JSON formátumba szeretné írni az adatokat.

A JSON formátum a következő összekötők esetén támogatott:

Adatkészlet tulajdonságai

Az adatkészletek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az Adatkészletek cikkben olvashatja el. Ez a szakasz a JSON-adatkészlet által támogatott tulajdonságok listáját tartalmazza.

Tulajdonság Leírás Kötelező
típus Az adatkészlet type (típus) tulajdonságát Json (JSON) típusúra kell állítani. Yes
location A fájl(nak) helybeállítása. Minden fájlalapú összekötő saját helytípussal és a alatt támogatott tulajdonságokkal location rendelkezik. Részleteket az összekötővel kapcsolatos cikkben talál – Adatkészlet tulajdonságai szakasz. Yes
encodingName A tesztfájlok olvasására/írására használt kódolási típus.
Az engedélyezett értékek a következők: "UTF-8", "UTF-8 BOM nélkül", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOBÁJT", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-125" 2, "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258".
No
tömörítés A fájltömörítés konfigurálni kívánt tulajdonságok csoportja. Akkor konfigurálja ezt a szakaszt, ha a tevékenység végrehajtása során tömörítést/kifejtést szeretne. No
típus
( a alatt )
A JSON-fájlok olvasása/írása során használt tömörítési kodek.
Megengedett értékek: bzip2,gzip,deflate, ZipDeflate,TarGzip,Tar,snappy, vagy lz4. Az alapértelmezett érték nem tömörített.
Vegye figyelembe Copy tevékenység hogy a jelenleg nem támogatja a "snappy" "lz4"-et, a leképezési adatfolyam pedig nem támogatja a "ZipDeflate", a "TarGzip" és a "Tar" adatfolyamot.
Vegye figyelembe, hogy ha másolási tevékenységgel bontja ki a ZipDeflateTarGzipTar-fájlokat, és fájlalapú fogadóadattárba ír, a rendszer alapértelmezés szerint a következő mappába csomagolja ki a fájlokat: , a másolási tevékenység forrásán a használatával szabályozhatja, hogy meg kell-e őrizni a tömörített /preserveCompressionFileNameAsFolder fájl(k) / nevét mappastruktúraként.
Nem.
szint
( a alatt )
A tömörítési arány.
Az engedélyezett értékek az Optimális vagy a Leggyorsabb.
- - A tömörítési műveletnek a lehető leggyorsabban be kell fejeződni, még akkor is, ha az eredményül kapott fájl nincs optimálisan tömörítve.
- - A tömörítési műveletnek optimálisan tömörítve kell lennie, 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.
No

Az alábbi példa egy JSON-adatkészletet mutat be az Azure Blob Storage:

{
    "name": "JSONDataset",
    "properties": {
        "type": "Json",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compression": {
                "type": "gzip"
            }
        }
    }
}

Másolási tevékenység tulajdonságai

A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok cikkben olvashatja el. Ez a szakasz a JSON-forrás és -fogadó által támogatott tulajdonságok listáját tartalmazza.

Ismerje meg, hogyan lehet adatokat kinyerni JSON-fájlokból, és leképezni a fogadó adattárra/formátumra, vagy fordítva a sémaleképezésből.

JSON mint forrás

A másolási tevékenység *forrás* szakaszában a következő tulajdonságok támogatottak.

Tulajdonság Leírás Kötelező
típus A másolási tevékenység forrásának type (típus) tulajdonságát JSONSource (JSON-forrás) értékre kell állítani. Yes
formatSettings Tulajdonságok egy csoportja. Tekintse meg az alábbi JSON olvasási beállítások táblázatát. No
storeSettings Tulajdonságok csoportja arra, hogyan lehet adatokat beolvasni egy adattárból. Minden fájlalapú összekötő saját támogatott olvasási beállításokkal rendelkezik a storeSettings alatt. Részleteket az összekötővel kapcsolatos cikkben talál – Copy tevékenység tulajdonságok szakaszt. No

Támogatott JSON-olvasási beállítások a alatt:

Tulajdonság Leírás Kötelező
típus A formatSettings típusának JsonReadSettingsnekkell lennie. Yes
compressionProperties (tömörítéstulajdonságok) Tulajdonságok csoportja egy adott tömörítési kod adatainak kibontása érdekében. No
preserveZipFileNameAsFolder
(a alatt - >type as ZipDeflateReadSettings)
Akkor érvényes, ha a bemeneti adatkészlet ZipDeflate tömörítéssel van konfigurálva. Jelzi, hogy meg kell-e őrizni a forrás zip-fájl nevét mappastruktúraként a másolás során.
- Ha true (default) (igaz) (alapértelmezett) értéket ad meg),a szolgáltatás a kicsomagolt fájlokat a következőbe írja: .
– Ha false (hamis) értéket admeg, a szolgáltatás közvetlenül a fájlba írja a kicsomagolt fájlokat. Győződjön meg arról, hogy nem tartalmaz duplikált fájlneveket különböző forrás zip-fájlokban, hogy elkerülje a versenyzést vagy a váratlan viselkedést.
No
preserveCompressionFileNameAsFolder
(a alatt – as >typeTarGZipReadSettings vagy TarReadSettings)
Akkor érvényes, ha a bemeneti adatkészlet TarGzipTar-tömörítéssel van konfigurálva. Jelzi, hogy meg kell-e őrizni a forrásként tömörített fájlnevet mappastruktúraként a másolás során.
– Ha true (default) (igaz) (alapértelmezett) )értékre van állítva, a szolgáltatás a kibontott fájlokat a következőre írja: .
– Ha false (hamis) értéket admeg, a szolgáltatás közvetlenül a fájlba írja a kibontott fájlokat. Győződjön meg arról, hogy nem tartalmaz duplikált fájlneveket különböző forrásfájlokban, hogy elkerülje a versenyzést vagy a váratlan viselkedést.
No

JSON mint fogadó

A másolási tevékenység *fogadó* szakaszában a következő tulajdonságok támogatottak.

Tulajdonság Leírás Kötelező
típus A másolási tevékenység forrásának type (típus) tulajdonságát JSONSink (JSONSink) típusúra kell állítani. Yes
formatSettings Tulajdonságok egy csoportja. Tekintse meg az alábbi JSON-írási beállítások táblázatát. No
storeSettings Tulajdonságok csoportja arra, hogyan lehet adatokat írni egy adattárba. Minden fájlalapú összekötő saját támogatott írási beállításokkal rendelkezik a storeSettings alatt. Részleteket az összekötővel kapcsolatos cikkben talál – Copy tevékenység tulajdonságok szakaszt. No

Támogatott JSON-írási beállítások a alatt:

Tulajdonság Leírás Kötelező
típus A formatSettings típusának JsonWriteSettingsnekkell lennie. Yes
filePattern Az egyes JSON-fájlokban tárolt adatok mintáját jelzi. Megengedett értékek: setOfObjects (JSON-sorok) és arrayOfObjects. Az alapértelmezett érték a setOfObjects. A mintákkal kapcsolatban lásd a JSON-fájlminták című szakaszt. No

JSON-fájlminták

Amikor JSON-fájlokból másol adatokat, a másolási tevékenység automatikusan képes észlelni és elemezni a JSON-fájlok következő mintáit. Amikor JSON-fájlokba ír adatokat, konfigurálhatja a fájlmintát a másolási tevékenység fogadójában.

  • I. típus: setOfObjects

    Minden fájl egyetlen objektumot, JSON-sorokat vagy összetolt objektumokat tartalmaz.

    • 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"
      }
      
    • JSON-sorok (a fogadó alapértelmezett beállítása)

      {"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"
        }
    ]
    

Adatfolyam-tulajdonságok leképezése

A leképezésiadatfolyamokban a következő adattárakban olvashat és írhat JSON formátumban: Azure Blob Storage,Azure Data Lake Storage Gen1 és Azure Data Lake Storage Gen2,valamint JSON formátum az Amazon S3-ban.

Forrástulajdonságok

Az alábbi táblázat a JSON-forrás által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Forrásbeállítások lapon szerkesztheti.

Név Leírás Kötelező Megengedett értékek Adatfolyam-szkript tulajdonság
Helyettesítő elérési utak A helyettesítő karakteres elérési úttal egyező összes fájl fel lesz feldolgozva. Felülbírálja az adatkészletben beállított mappát és elérési utat. nem Sztring[] helyettesítőpaths (helyettesítő karakterek)
Partíció gyökérútvonala Particionált fájladatokhoz megadhatja a partíció gyökérútvonalát, hogy a particionált mappákat oszlopként olvassa be nem Sztring partitionRootPath
Fájlok listája Azt határozza meg, hogy a forrás olyan szövegfájlra mutasson-e, amely a feldolgozni kívánt fájlokat listázza nem true vagy false Filelist
A fájlnév tárolására kívánt oszlop Új oszlop létrehozása a forrásfájl nevével és elérési útával nem Sztring rowUrlColumn
A befejezés után Törölje vagy helyezze át a fájlokat a feldolgozás után. A fájl elérési útja a tároló gyökerénél kezdődik nem Törlés: true vagy false
Mozgatni: ['<from>', '<to>']
purgeFiles
moveFiles
Szűrés az utolsó módosítás alapján A fájlok szűrése az utolsó módosításjuk alapján nem Időbélyeg modifiedAfter (módosítás után)
modifiedBefore
Egyetlen dokumentum A leképezési adatfolyamok minden fájlból egy JSON-dokumentumot olvasnak nem true vagy false singleDocument
Nem idézőjeles oszlopnevek Ha a Nem idézőjeles oszlopnevek van kiválasztva, a leképezési adatfolyamok olyan JSON-oszlopokat olvasnak, amelyek nincsenek idézőjelek között. nem true vagy false unquotedColumnNames
Megjegyzésekkel rendelkezik Válassza a Megjegyzéseket tartalmaz lehetőséget, ha a JSON-adatok C vagy C++ stílusú megjegyzéseket tartalmaznak nem true vagy false asComments (AsComments)
Egyszeres idézet Olyan JSON-oszlopokat olvas be, amelyek nincsenek idézőjelek között nem true vagy false singleQuoted (egyszeres idézőjel)
Escape-perjel Ha a JSON-adatokban szereplő karaktereket a rendszer a perjellel való escape-karakterként használja, válassza a Escape-karakter lehetőséget. nem true vagy false backslashEscape (vissza perjel)
Nem található fájl engedélyezése Ha igaz, a rendszer nem ad vissza hibát, ha nem található fájl nem true vagy false ignoreNoFilesFound

Forrásformátum beállításai

Ha JSON-adatkészletet használ adatforrásként az adatfolyamban, öt további beállítást is meg lehet állítani. Ezek a beállítások a Forrásbeállítások lapon, a JSON-beállítások imionion (JSON-beállítások) alatt találhatók. A Dokumentuműrlap beállításnál választhat egyet az Egydokumentum, a Dokumentum soronként és a Dokumentumtípusok tömbje közül.

JSON-Gépház

Alapértelmezett

Alapértelmezés szerint a JSON-adatok az alábbi formátumban olvashatók.

{ "json": "record 1" }
{ "json": "record 2" }
{ "json": "record 3" }

Egyetlen dokumentum

Ha egyetlen dokumentum van kiválasztva, a leképezési adatfolyamok minden fájlból egy JSON-dokumentumot olvasnak be.

File1.json
{
    "json": "record 1"
}
File2.json
{
    "json": "record 2"
}
File3.json
{
    "json": "record 3"
}

Ha a Dokumentum soronként beállítás be van jelölve, a leképezési adatfolyamok egy-egy JSON-dokumentumot olvasnak be a fájl minden sorában.

File1.json
{"json": "record 1"}

File2.json
 {"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"}

File3.json
 {"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"}

Ha a Dokumentumok tömbje van kijelölve, a leképezési adatfolyamok egy dokumentumtömböt olvasnak be egy fájlból.

File.json
[
        {
            "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"
        }
    ]

Megjegyzés

Ha az adatfolyamok "corrupt_record" hibaüzenetet jeleznek a JSON-adatok előnézetekor, akkor valószínű, hogy az adatok egyetlen dokumentumot tartalmaznak a JSON-fájlban. Az "egyetlen dokumentum" beállításának törlődik a hibaüzenet.

Nem idézőjeles oszlopnevek

Ha a Nem idézőjeles oszlopnevek lehetőség van kiválasztva, a leképezési adatfolyamok olyan JSON-oszlopokat olvasnak, amelyek nincsenek idézőjelek között.

{ json: "record 1" }
{ json: "record 2" }
{ json: "record 3" }

Megjegyzésekkel rendelkezik

Válassza a Megjegyzéseket tartalmaz lehetőséget, ha a JSON-adatok C vagy C++ stílusú megjegyzéseket tartalmaznak.

{ "json": /** comment **/ "record 1" }
{ "json": "record 2" }
{ /** comment **/ "json": "record 3" }

Egyszeres idézet

Válassza az Egyszeres idézőjeles lehetőséget, ha a JSON-mezők és -értékek a dupla idézőjelek helyett a egyszeres idézőjeleket használják.

{ 'json': 'record 1' }
{ 'json': 'record 2' }
{ 'json': 'record 3' }

Escape-perjel

Ha a JSON-adatokban a karaktereket a perjellel való escape-karakterként használja, válassza a Escape-perjel lehetőséget.

{ "json": "record 1" }
{ "json": "\} \" \' \\ \n \\n record 2" }
{ "json": "record 3" }

Fogadó tulajdonságai

Az alábbi táblázat a json-fogadó által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Gépház szerkesztheti.

Név Leírás Kötelező Megengedett értékek Adatfolyam-szkript tulajdonsága
A mappa törlése Ha a célmappa ki van ürítve az írás előtt nem true vagy false Megcsonkít
Fájlnév beállítás Az írt adatok elnevezési formátuma. Alapértelmezés szerint partíciónként egy fájl, formátumban part-#####-tid-<guid> nem Minta: Sztring
Partíciónként: Sztring[]
Adatokként az oszlopban: Sztring
Kimenet egyetlen fájlba: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames

JSON-struktúrák létrehozása egy származtatott oszlopban

A származtatott oszlopkifejezés-szerkesztővel összetett oszlopokat adhat az adatfolyamhoz. A származtatott oszlopátalakításban adjon hozzá egy új oszlopot, és a kék mezőre kattintva nyissa meg a kifejezésszerkesztőt. Egy oszlop összetettségére manuálisan is megadhatja a JSON-struktúrát, vagy használhatja a felhasználói felületét az aloszlopok interaktív hozzáadásához.

A kifejezésszerkesztő felhasználói felületének használata

A kimeneti séma oldalpanelen vigye a kurzort egy oszlop fölé, és kattintson a plusz ikonra. Válassza az Add subcolumn (Aloszlop hozzáadása) lehetőséget az oszlop összetett típusának beállítására.

Aloszlop hozzáadása

Ugyanígy további oszlopokat és aloszlopokat is hozzáadhat. Minden nem összetett mezőhöz hozzá lehet adni egy kifejezést a kifejezésszerkesztőben a jobb oldalon.

Összetett oszlop hozzáadása

A JSON-struktúra manuális megadása

JSON-struktúra manuális hozzáadásához adjon hozzá egy új oszlopot, és írja be a kifejezést a szerkesztőbe. A kifejezés az alábbi általános formátumot követi:

@(
    field1=0,
    field2=@(
        field1=0
    )
)

Ha ezt a kifejezést a "complexColumn" nevű oszlophoz adta volna meg, akkor a rendszer a következő JSON-ként írná azt a fogadóba:

{
    "complexColumn": {
        "field1": 0,
        "field2": {
            "field1": 0
        }
    }
}

Minta manuális szkript a teljes hierarchikus definícióhoz

@(
    title=Title,
    firstName=FirstName,
    middleName=MiddleName,
    lastName=LastName,
    suffix=Suffix,
    contactDetails=@(
        email=EmailAddress,
        phone=Phone
    ),
    address=@(
        line1=AddressLine1,
        line2=AddressLine2,
        city=City,
        state=StateProvince,
        country=CountryRegion,
        postCode=PostalCode
    ),
    ids=[
        toString(CustomerID), toString(AddressID), rowguid
    ]
)

Íme néhány gyakori összekötő és formátum a JSON-formátummal kapcsolatban:

  • Azure Blob Storage (connector-azure-blob-storage.md)
  • Tagolt szövegformátum (format-delimited-text.md)
  • OData-összekötő (összekötő-odata.md)
  • Parquet formátum (format-parquet.md)

Következő lépések