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.
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/preserveCompressionFileNameAsFolder preserveZipFileNameAsFolder u 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"
}
}
}
}
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.
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 |
formatSettings | Een groep eigenschappen. Raadpleeg de onderstaande tabel met xml-leesinstellingen. | Nee |
storeSettings | 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 formatSettings moet worden ingesteld op XmlReadSettings. | 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:fieldName de 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 |
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.
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 |
fileList |
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 Bewegen: ['<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:fieldName de 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 |
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
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
ennamespaceUri,@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 patroondefinedPrefix:elementName
ofdefinedPrefix:@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.
- 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