Das XML-Format in Azure Data Factory- und Synapse Analytics-Pipelines
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
Verwenden Sie diesen Artikel, wenn Sie die XML-Dateien analysieren möchten.
Das XML-Format wird für die folgenden Connectors unterstützt: Amazon S3, Kompatibler Amazon S3-Speicher, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, Dateisystem, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage und SFTP. Es wird als Quelle, aber nicht als Senke unterstützt.
Dataset-Eigenschaften
Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom XML-Dataset unterstützt werden.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft des Datasets muss auf Xml festgelegt werden. | Ja |
location | Speicherorteinstellungen der Datei(en) Jeder dateibasierte Connector verfügt unter location über seinen eigenen Speicherorttyp und unterstützte Eigenschaften. Informationen hierzu finden Sie im Abschnitt > „Dataset-Eigenschaften“ des Artikels über Connectors. |
Ja |
encodingName | Der zu Lesen/Schreiben von Testdateien verwendete Codierungstyp. Es sind die folgenden Werte zulässig: "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", "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-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258". |
Nein |
nullValue | Gibt eine Zeichenfolgendarstellung von Null-Werten an. Der Standardwert ist eine leere Zeichenfolge. |
Nein |
compression | Gruppe von Eigenschaften zum Konfigurieren der Dateikomprimierung. Konfigurieren Sie diesen Abschnitt, wenn Sie während der Aktivitätsausführung eine Komprimierung/Dekomprimierung durchführen möchten. | Nein |
type (unter compression ) |
Der zum Lesen und Schreiben von XML-Dateien verwendete Komprimierungscodec. Zulässige Werte sind bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy und lz4. Standardmäßig erfolgt keine Komprimierung. Hinweis: „snappy“ und „lz4“ werden aktuell nicht von der Copy-Aktivität und „ZipDeflate“, „TarGzip“ und „Tar“ werden aktuell nicht vom Zuordnungsdatenfluss unterstützt. Beachten Sie, dass bei Verwendung der Kopieraktivität zum Dekomprimieren von ZipDeflate-/TarGzip-/Tar-Dateien und zum Schreiben in den dateibasierten Senkendatenspeicher diese Dateien standardmäßig in den Ordner <path specified in dataset>/<folder named as source compressed file>/ extrahiert werden. Verwenden Sie in diesem Fall preserveZipFileNameAsFolder /preserveCompressionFileNameAsFolder als Quelle der Kopieraktivität, um zu steuern, ob der Name der komprimierten Dateien als Ordnerstruktur beibehalten werden soll. |
Nein. |
level (unter compression ) |
Das Komprimierungsverhältnis. Zulässige Werte sind Optimal oder Sehr schnell. - Sehr schnell: Der Komprimierungsvorgang wird schnellstmöglich abgeschlossen, auch wenn die resultierende Datei nicht optimal komprimiert ist. - Optimal: Die Daten sollten optimal komprimiert sein, auch wenn der Vorgang eine längere Zeit in Anspruch nimmt. Weitere Informationen finden Sie im Thema Komprimierungsstufe . |
Nein |
Nachfolgend sehen Sie ein Beispiel für ein XML-Dataset 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"
}
}
}
}
Eigenschaften der Kopieraktivität
Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der XML-Quelle unterstützt werden.
Erfahren Sie, wie Sie XML-Daten und Senkendatenspeicher sowie das zugehörige Format aus der Schemazuordnung zuordnen. Beim Anzeigen einer Vorschau der XML-Dateien werden Daten in der JSON-Hierarchie angezeigt, und Sie verweisen über den JSON-Pfad auf die Felder.
XML als Quelle
Die folgenden Eigenschaften werden im Abschnitt *source* der Kopieraktivität unterstützt. Weitere Informationen finden Sie unter Verhalten des XML-Connectors.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Die type-Eigenschaft der Quelle der Kopieraktivität muss auf XmlSource festgelegt sein. | Ja |
formatSettings | Eine Gruppe von Eigenschaften. Weitere Informationen finden Sie in der Tabelle der XML-Leseeinstellungen weiter unten. | Nein |
storeSettings | Eine Gruppe von Eigenschaften für das Lesen von Daten aus einem Datenspeicher. Jeder dateibasierte Connector verfügt unter storeSettings über eigene unterstützte Leseeinstellungen. Informationen hierzu finden Sie im Abschnitt über die >Eigenschaften der Copy-Aktivität im Artikel über Connectors. |
Nein |
Unterstützte XML-Leseeinstellungen unter formatSettings
:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Der Typ von formatSettings muss auf XmlReadSettings festgelegt werden. | Ja |
validationMode | Gibt an, ob das XML-Schema validiert werden soll. Zulässige Werte sind none (Standard, keine Validierung), xsd (Validierung mithilfe von XSD) und dtd (Validierung mithilfe von DTD). |
Nein |
Namespaces | Gibt an, ob beim Auswerten der XML-Dateien der Namespace aktiviert werden soll. Zulässige Werte sind true (Standard) oder false | Nein |
namespacePrefixes | Namespace-URI für die Präfixzuordnung, die zum Benennen von Feldern beim Auswerten der XML-Datei verwendet wird. Wenn eine XML-Datei einen Namespace aufweist und der Namespace aktiviert ist, entspricht der Feldname standardmäßig dem im XML-Dokument. Wenn ein Element für den Namespace-URI in dieser Zuordnung definiert ist, lautet der Feldname prefix:fieldName . |
Nein |
detectDataType | Gibt an, ob die Datentypen „integer“, „double“ und „boolesch“ erkannt werden sollen. Zulässige Werte sind true (Standard) oder false | Nein |
compressionProperties | Eine Gruppe von Eigenschaften zur Festlegung, wie Daten bei einem bestimmten Komprimierungscodec dekomprimiert werden können. | Nein |
preserveZipFileNameAsFolder (unter compressionProperties ->type als ZipDeflateReadSettings ) |
Diese Eigenschaft gilt, wenn das Eingabedataset mit der ZipDeflate-Komprimierung konfiguriert wurde. Sie gibt an, ob der Name der ZIP-Quelldatei während Kopiervorgängen als Ordnerstruktur beibehalten werden soll. – Lautet der Wert true (Standard) , schreibt der Dienst die entpackten Dateien in <path specified in dataset>/<folder named as source zip file>/ .– Lautet der Wert false, schreibt der Dienst die entpackten Dateien direkt in <path specified in dataset> . Stellen Sie sicher, dass es in unterschiedlichen ZIP-Quelldateien keine doppelten Dateinamen gibt, um Racebedingungen oder unerwartetes Verhalten zu vermeiden. |
Nein |
preserveCompressionFileNameAsFolder (unter compressionProperties ->type als TarGZipReadSettings oder TarReadSettings ) |
Gilt, wenn das Eingabedataset mit der Komprimierung TarGzip/Tar konfiguriert wurde. Gibt an, ob der Name der komprimierten Quelldatei während Kopiervorgängen als Ordnerstruktur beibehalten werden soll. – Lautet der Wert true (Standard) , schreibt der Dienst die dekomprimierten Dateien in <path specified in dataset>/<folder named as source compressed file>/ . – Lautet der Wert false, schreibt der Dienst die dekomprimierten Dateien direkt in <path specified in dataset> . Stellen Sie sicher, dass es in unterschiedlichen Quelldateien keine doppelten Dateinamen gibt, um Racebedingungen oder unerwartetes Verhalten zu vermeiden. |
Nein |
Eigenschaften von Mapping Data Flow
In Zuordnungsdatenflüssen können Sie das XML-Format in den folgenden Datenspeichern lesen: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Amazon S3 und SFTP. Sie können auf XML-Dateien mit einem XML-Dataset oder einem Inlinedataset verweisen.
Quelleigenschaften
In der folgenden Tabelle sind die von einer XML-Quelle unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Quelloptionen bearbeiten. Weitere Informationen finden Sie unter Verhalten des XML-Connectors. Bei Verwendung eines Inlinedatasets werden zusätzliche Dateieinstellungen angezeigt. Diese entsprechen den Eigenschaften, die im Abschnitt zu den Dataseteigenschaften beschrieben sind.
Name | BESCHREIBUNG | Erforderlich | Zulässige Werte | Datenflussskript-Eigenschaft |
---|---|---|---|---|
Platzhalterpfade | Alle Dateien, die dem Platzhalterpfad entsprechen, werden verarbeitet. Überschreibt den Ordner und den Dateipfad, die im Dataset festgelegt sind. | Nein | String[] | wildcardPaths |
Partitionsstammpfad | Für partitionierte Dateidaten können Sie einen Partitionsstammpfad eingeben, um partitionierte Ordner als Spalten zu lesen. | Nein | String | partitionRootPath |
Liste mit den Dateien | Gibt an, ob Ihre Quelle auf eine Textdatei verweist, in der die zu verarbeitenden Dateien aufgelistet sind. | Nein | true oder false |
fileList |
Spalte, in der der Dateiname gespeichert wird | Erstellt eine neue Spalte mit dem Namen und Pfad der Quelldatei. | Nein | String | rowUrlColumn |
Nach Abschluss | Löscht oder verschiebt die Dateien nach der Verarbeitung. Dateipfad beginnt mit dem Containerstamm | Nein | Löschen: true oder false Verschieben: ['<from>', '<to>'] |
purgeFiles moveFiles |
Nach der letzten Änderung filtern | Filtern Sie Dateien nach dem Zeitpunkt ihrer letzten Änderung. | Nein | Zeitstempel | modifiedAfter modifiedBefore |
Validierungsmodus | Gibt an, ob das XML-Schema validiert werden soll. | Nein | None (Standard, keine Validierung)xsd (Validierung mit XSD)dtd (Validierung mit DTD) |
validationMode |
Namespaces | Gibt an, ob beim Auswerten der XML-Dateien der Namespace aktiviert werden soll. | Nein | true (Standard) oder false |
Namespaces |
Namespace-Präfix-Paare | Namespace-URI für die Präfixzuordnung, die zum Benennen von Feldern beim Auswerten der XML-Datei verwendet wird. Wenn eine XML-Datei einen Namespace aufweist und der Namespace aktiviert ist, entspricht der Feldname standardmäßig dem im XML-Dokument. Wenn ein Element für den Namespace-URI in dieser Zuordnung definiert ist, lautet der Feldname prefix:fieldName . |
Nein | Array mit Muster['URI1'->'prefix1','URI2'->'prefix2'] |
namespacePrefixes |
Finden keiner Dateien zulässig | „true“ gibt an, dass kein Fehler ausgelöst wird, wenn keine Dateien gefunden werden. | nein | true oder false |
ignoreNoFilesFound |
Skriptbeispiel für XML-Quelle
Das nachstehende Skript stellt ein Beispiel für eine XML-Quellkonfiguration in Zuordnungsdatenflüssen per Datasetmodus dar.
source(allowSchemaDrift: true,
validateSchema: false,
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Das nachstehende Skript stellt ein Beispiel für eine XML-Quellkonfiguration mit dem Inline-Datasetmodus dar.
source(allowSchemaDrift: true,
validateSchema: false,
format: 'xml',
fileSystem: 'filesystem',
folderPath: 'folder',
validationMode: 'xsd',
namespaces: true) ~> XMLSource
Verhalten des XML-Connectors
Beachten Sie Folgendes, wenn Sie XML als Quelle verwenden.
XML-Attribute:
- Attribute eines Elements werden als untergeordnete Felder des Elements in der Hierarchie analysiert.
- Der Name des Attributfelds folgt dem Muster
@attributeName
.
XML-Schemaüberprüfung:
- Sie können entscheiden, das Schema nicht zu überprüfen oder die Überprüfung mithilfe von XSD oder DTD durchzuführen.
- Wenn Sie XSD oder DTD zum Überprüfen von XML-Dateien verwenden, muss in den XML-Dateien über den relativen Pfad auf die XSD-/DTD-Datei verwiesen werden.
Namespaceverarbeitung:
- Der Namespace kann bei Verwendung von Datenflüssen deaktiviert werden. In diesem Fall werden die Attribute, die den Namespace definieren, als normale Attribute analysiert.
- Wenn der Namespace aktiviert ist, folgen die Namen der Elemente und Attribute standardmäßig den Mustern
namespaceUri,elementName
undnamespaceUri,@attributeName
. Sie können ein Namespacepräfix für jeden Namespace-URI in der Quelle definieren. In diesem Fall folgen die Namen der Elemente und Attribute stattdessen den MusterndefinedPrefix:elementName
oderdefinedPrefix:@attributeName
.
Wertspalte:
- Wenn ein XML-Element sowohl einen einfachen Textwert als auch Attribute und untergeordnete Elemente aufweist, wird der einfache Textwert als Wert einer „Wertspalte“ mit dem integrierten Feldnamen
_value_
analysiert. Außerdem erbt er ggf. den Namespace des Elements.
- Wenn ein XML-Element sowohl einen einfachen Textwert als auch Attribute und untergeordnete Elemente aufweist, wird der einfache Textwert als Wert einer „Wertspalte“ mit dem integrierten Feldnamen