XML-indeling in Azure Data Factory- en Synapse Analytics-pijplijnen

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Volg dit artikel als u de XML-bestanden wilt parseren.

XML-indeling wordt ondersteund voor de volgende connectors: Amazon S3, Amazon S3 Compatible Storage, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, File System, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage en SFTP. Het wordt ondersteund als bron, maar niet als sink.

Eigenschappen van gegevensset

Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de XML-gegevensset.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op Xml. Ja
locatie Locatie-instellingen van de bestanden. Elke op bestanden gebaseerde connector heeft een eigen locatietype en ondersteunde eigenschappen onder location. Zie de details in het connectorartikel -> sectie Eigenschappen van gegevensset. Ja
encodingName Het coderingstype dat wordt gebruikt voor het lezen/schrijven van testbestanden.
Toegestane waarden zijn als volgt: 'UTF-8', 'UTF-16', 'UTF-16BE', 'UTF-32', 'UTF-32BE', 'US-ASCII', 'UTF-7', 'BIG5', "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM869", "IBM869".70", "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-1252", "WINDOWS-1252", "WINDOWS-11253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258".
Nee
nullValue Hiermee geeft u de tekenreeksweergave van null-waarde.
De standaardwaarde is een lege tekenreeks.
Nee
compressie Groep eigenschappen voor het configureren van bestandscompressie. Configureer deze sectie wanneer u compressie/decompressie wilt uitvoeren tijdens de uitvoering van de activiteit. Nee
type
(onder compression)
De compressiecodec die wordt gebruikt voor het lezen/schrijven van XML-bestanden.
Toegestane waarden zijn bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy of lz4. De standaardwaarde wordt niet gecomprimeerd.
Opmerking momenteel Copy-activiteit geen ondersteuning biedt voor 'snappy' en 'lz4', en toewijzingsgegevensstroom biedt geen ondersteuning voor 'ZipDeflate', 'TarGzip' en 'Tar'.
Opmerking wanneer u kopieeractiviteit gebruikt om ZipDeflate TarGzip/Tar-bestanden te decomprimeren /en schrijven naar een of meer op bestanden gebaseerde sinkgegevensopslag. Standaard worden bestanden uitgepakt in de map:<path specified in dataset>/<folder named as source compressed file>/, gebruikt/preserveCompressionFileNameAsFolderpreserveZipFileNameAsFolderu bij de kopieeractiviteitsbron om te bepalen of u de naam van de gecomprimeerde bestanden als mapstructuur wilt behouden.
Nee
niveau
(onder compression)
De compressieverhouding.
Toegestane waarden zijn Optimaal of Snelste.
- Snelste: De compressiebewerking moet zo snel mogelijk worden voltooid, zelfs als het resulterende bestand niet optimaal is gecomprimeerd.
- Optimaal: De compressiebewerking moet optimaal worden gecomprimeerd, zelfs als het langer duurt om de bewerking te voltooien. Zie het onderwerp Compressieniveau voor meer informatie.
Nee

Hieronder ziet u een voorbeeld van een XML-gegevensset in Azure Blob Storage:

{
    "name": "XMLDataset",
    "properties": {
        "type": "Xml",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "compression": {
                "type": "ZipDeflate"
            }
        }
    }
}

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de XML-bron.

Meer informatie over het toewijzen van XML-gegevens en sinkgegevensopslag/-indeling van schematoewijzing. Wanneer u een voorbeeld van XML-bestanden bekijkt, worden gegevens weergegeven met de JSON-hiërarchie en gebruikt u het JSON-pad om naar de velden te verwijzen.

XML als bron

De volgende eigenschappen worden ondersteund in de sectie kopieeractiviteit *source* . Meer informatie over het gedrag van de XML-connector.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op XmlSource. Ja
indeling Instellingen Een groep eigenschappen. Raadpleeg de onderstaande tabel met xml-leesinstellingen. Nee
store Instellingen Een groep eigenschappen over het lezen van gegevens uit een gegevensarchief. Elke op bestanden gebaseerde connector heeft zijn eigen ondersteunde leesinstellingen onder storeSettings. Zie de details in het connectorartikel -> sectie Copy-activiteit eigenschappen. Nee

Ondersteunde XML-leesinstellingen onder formatSettings:

Eigenschappen Beschrijving Vereist
type Het type indeling Instellingen moet worden ingesteld op XmlRead Instellingen. Ja
validationMode Hiermee geeft u op of het XML-schema moet worden gevalideerd.
Toegestane waarden zijn geen (standaard, geen validatie), xsd (valideren met XSD), dtd (valideren met DTD).
Nee
Naamruimten Of u naamruimte wilt inschakelen bij het parseren van de XML-bestanden. Toegestane waarden zijn: true (standaard), false. Nee
namespacePrefixes Naamruimte-URI voor voorvoegseltoewijzing, die wordt gebruikt om velden een naam te geven bij het parseren van het XML-bestand.
Als een XML-bestand naamruimte en naamruimte heeft ingeschakeld, is de veldnaam standaard hetzelfde als in het XML-document.
Als er een item is gedefinieerd voor de naamruimte-URI in deze kaart, is prefix:fieldNamede veldnaam.
Nee
detectDataType Of u gehele getallen, dubbele gegevenstypen en Booleaanse gegevenstypen wilt detecteren. Toegestane waarden zijn: true (standaard), false. Nee
compressionProperties Een groep eigenschappen over het decomprimeren van gegevens voor een bepaalde compressiecodec. Nee
preserveZipFileNameAsFolder
(onder compressionProperties->type als ZipDeflateReadSettings)
Is van toepassing wanneer de invoergegevensset is geconfigureerd met ZipDeflate-compressie . Hiermee wordt aangegeven of de naam van het zip-bronbestand moet worden bewaard als mapstructuur tijdens het kopiëren.
- Als deze is ingesteld op true (standaard), schrijft de service uitgepakte bestanden naar <path specified in dataset>/<folder named as source zip file>/.
- Als deze is ingesteld op onwaar, schrijft de service uitgepakte bestanden rechtstreeks naar <path specified in dataset>. Zorg ervoor dat u geen dubbele bestandsnamen in verschillende zip-bronbestanden hebt om racen of onverwacht gedrag te voorkomen.
Nee
preserveCompressionFileNameAsFolder
(onder compressionProperties->type als TarGZipReadSettings of TarReadSettings)
Is van toepassing wanneer de invoergegevensset is geconfigureerd met Tar-compressie van Tar./ Geeft aan of de gecomprimeerde bronbestandsnaam behouden moet blijven als mapstructuur tijdens het kopiëren.
- Als deze is ingesteld op true (standaard), schrijft de service gedecomprimeerde bestanden naar <path specified in dataset>/<folder named as source compressed file>/.
- Als deze is ingesteld op onwaar, schrijft de service gedecomprimeerde bestanden rechtstreeks naar <path specified in dataset>. Zorg ervoor dat u geen dubbele bestandsnamen in verschillende bronbestanden hebt om racen of onverwacht gedrag te voorkomen.
Nee

Eigenschappen van toewijzingsgegevensstroom

In toewijzingsgegevensstromen kunt u de XML-indeling lezen in de volgende gegevensarchieven: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 en SFTP. U kunt naar XML-bestanden verwijzen met behulp van een XML-gegevensset of een inlinegegevensset.

Broneigenschappen

De onderstaande tabel bevat de eigenschappen die worden ondersteund door een XML-bron. U kunt deze eigenschappen bewerken op het tabblad Bronopties. Meer informatie over het gedrag van de XML-connector. Wanneer u een inlinegegevensset gebruikt, ziet u aanvullende bestandsinstellingen, die hetzelfde zijn als de eigenschappen die worden beschreven in de sectie eigenschappen van de gegevensset.

Name Beschrijving Vereist Toegestane waarden Eigenschap gegevensstroomscript
Paden met jokertekens Alle bestanden die overeenkomen met het jokertekenpad worden verwerkt. Hiermee overschrijft u de map en het bestandspad dat is ingesteld in de gegevensset. Nee Tekenreeks[] jokertekenpaden
Hoofdpad voor partitie Voor bestandsgegevens die zijn gepartitioneerd, kunt u een partitiehoofdpad invoeren om gepartitioneerde mappen als kolommen te lezen Nee String partitionRootPath
Lijst met bestanden Of uw bron verwijst naar een tekstbestand waarin bestanden worden vermeld die moeten worden verwerkt Nee true of false Bestandenoverzicht
Kolom voor het opslaan van de bestandsnaam Een nieuwe kolom maken met de naam en het pad van het bronbestand Nee String rowUrlColumn
Na voltooiing Verwijder of verplaats de bestanden na verwerking. Bestandspad begint vanuit de hoofdmap van de container Nee Verwijderen: true of false
Verplaatsen: ['<from>', '<to>']
purgeFiles
moveFiles
Filteren op laatst gewijzigd Kiezen om bestanden te filteren op basis van wanneer ze voor het laatst zijn gewijzigd Nee Tijdstempel modifiedAfter
modifiedBefore
Validatiemodus Hiermee geeft u op of het XML-schema moet worden gevalideerd. Nee None (standaard, geen validatie)
xsd (valideren met XSD)
dtd (valideer met DTD).
validationMode
Naamruimten Of u naamruimte wilt inschakelen bij het parseren van de XML-bestanden. Nee true (standaard) of false Naamruimten
Naamruimtevoorvoegselparen Naamruimte-URI voor voorvoegseltoewijzing, die wordt gebruikt om velden een naam te geven bij het parseren van het XML-bestand.
Als een XML-bestand naamruimte en naamruimte heeft ingeschakeld, is de veldnaam standaard hetzelfde als in het XML-document.
Als er een item is gedefinieerd voor de naamruimte-URI in deze kaart, is prefix:fieldNamede veldnaam.
Nee Matrix met patroon['URI1'->'prefix1','URI2'->'prefix2'] namespacePrefixes
Geen bestanden gevonden toestaan Indien waar, wordt er geen fout gegenereerd als er geen bestanden worden gevonden nee true of false ignoreNoFilesFound

Voorbeeld van XML-bronscript

Het onderstaande script is een voorbeeld van een XML-bronconfiguratie in toewijzingsgegevensstromen met behulp van de gegevenssetmodus.

source(allowSchemaDrift: true,
    validateSchema: false,
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

Het onderstaande script is een voorbeeld van een XML-bronconfiguratie met behulp van de inline-gegevenssetmodus.

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'xml',
    fileSystem: 'filesystem',
    folderPath: 'folder',
    validationMode: 'xsd',
    namespaces: true) ~> XMLSource

Gedrag van XML-connector

Let op het volgende wanneer u XML als bron gebruikt.

  • XML-kenmerken:

    • Kenmerken van een element worden geparseerd als de subvelden van het element in de hiërarchie.
    • De naam van het kenmerkveld volgt het patroon @attributeName.
  • XML-schemavalidatie:

    • U kunt ervoor kiezen om het schema niet te valideren of het schema te valideren met behulp van XSD of DTD.
    • Wanneer u XSD of DTD gebruikt om XML-bestanden te valideren, moet de XSD/DTD in de XML-bestanden worden verwezen via een relatief pad.
  • Verwerking van naamruimten:

    • Naamruimte kan worden uitgeschakeld wanneer u gegevensstroom gebruikt. In dat geval worden de kenmerken die de naamruimte definiëren geparseerd als normale kenmerken.
    • Wanneer naamruimte is ingeschakeld, volgen de namen van het element en de kenmerken het patroon namespaceUri,elementName en namespaceUri,@attributeName standaard. U kunt het voorvoegsel van de naamruimte definiëren voor elke naamruimte-URI in de bron. In dat geval volgen de namen van het element en de kenmerken het patroon definedPrefix:elementName of definedPrefix:@attributeName in plaats daarvan.
  • Waardekolom:

    • Als een XML-element zowel eenvoudige tekstwaarde als kenmerken/onderliggende elementen heeft, wordt de eenvoudige tekstwaarde geparseerd als de waarde van een 'waardekolom' met de ingebouwde veldnaam _value_. En neemt de naamruimte van het element over als dit van toepassing is.