Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden des XML-Formats in AWS-Glue
AWS-Glue ruft Daten aus Quellen ab und schreibt Daten an Ziele, die in verschiedenen Datenformaten gespeichert und transportiert werden. Wenn Ihre Daten im XML-Datenformat gespeichert oder transportiert werden, stellt Ihnen dieses Dokument die verfügbaren Funktionen zur Verwendung Ihrer Daten in AWS-Glue vor.
AWS-Glue unterstützt die Verwendung des XML-Formats. Dieses Format stellt hochgradig konfigurierbare, fest definierte Datenstrukturen dar, die nicht zeilen- oder spaltenbasiert sind. XML ist hochgradig standardisiert. Eine Einführung in das Format durch die Standardautorität finden Sie unter XML Essentials
Sie können AWS-Glue verwenden, um XML-Dateien von Amazon S3 zu lesen, sowie bzip
- und gzip
-Archive, die XML-Dateien enthalten. Sie konfigurieren das Komprimierungsverhalten auf S3-Verbindungsparameter statt in der auf dieser Seite besprochenen Konfiguration.
Die folgende Tabelle zeigt, welche gängigen AWS-Glue-Funktionen die Option XML-Format unterstützen.
Lesen | Write (Schreiben) | Streaming gelesen | Gruppieren von kleinen Dateien | Auftrags-Lesezeichen |
---|---|---|---|---|
Unterstützt | Nicht unterstützt | Nicht unterstützt | Unterstützt | Unterstützt |
Beispiel: Lesen von XML aus S3
Der XML-Reader akzeptiert einen XML-Tag-Namen. Es untersucht Elemente mit diesem Tag in seiner Eingabe, um ein Schema abzuleiten, und füllt einen DynamicFrame mit entsprechenden Werten. Die XML-Funktionalität von AWS-Glue verhält sich ähnlich wie die XML-Datenquelle für Apache Spark
Voraussetzungen: Sie benötigen die S3-Pfade (s3path
) zu den XML-Dateien oder -Ordnern, die Sie lesen möchten, sowie einige Informationen zu Ihrer XML-Datei. Sie benötigen auch das Tag für das XML-Element, das Sie lesen möchten, xmlTag
.
Konfiguration: Geben Sie in Ihren Funktionsoptionen format="xml"
an. Verwenden Sie in Ihrem connection_options
den paths
-Schlüssel, um s3path
anzugeben. Sie können weiter konfigurieren, wie der Reader mit S3 in connection_options
interagiert. Einzelheiten finden Sie unter Verbindungstypen und Optionen für ETL in AWS Glue: S3-Verbindungsparameter. Verwenden Sie in Ihrem format_options
den rowTag
-Schlüssel, um xmlTag
anzugeben. Sie können weiter konfigurieren, wie der Reader mit XML-Dateien in format_options
interagiert. Einzelheiten finden Sie in der XML-Konfigurationsreferenz.
Das folgende AWS-Glue-ETL-Skript zeigt den Prozess des Lesens von XML-Dateien oder -Ordnern aus S3.
XML-Konfigurationsreferenz
Sie können die folgenden format_options
überall verwenden, wo AWS-Glue-Bibliotheken format="xml"
angibt:
-
rowTag
– Gibt an, dass der XML-Tag in der Datei als Zeile zu behandeln ist. Zeilen-Tags können nicht selbstschließend sein.-
Typ: Text, Erforderlich
-
-
encoding
– Gibt die Zeichencodierung an. Dies kann der Name oder Alias eines von unserer Laufzeitumgebung unterstützten Zeichensatzessein. Wir geben keine spezifischen Garantien für die Unterstützung der Codierung, aber wichtige Kodierungen sollten funktionieren. -
Typ: Text, Standard:
"UTF-8"
-
-
excludeAttribute
– Gibt an, ob Sie Attribute in Elementen ausschließen möchten oder nicht.-
Typ: Boolesch, Standard:
false
-
-
treatEmptyValuesAsNulls
– Gibt an, ob Leerzeichen als Nullwert behandelt werden sollen.-
Typ: Boolesch, Standard:
false
-
-
attributePrefix
– Ein Präfix für Attribute, um sie vom Text der untergeordneten Elemente zu unterscheiden. Das Präfix wird für Feldnamen verwendet.-
Typ: Text, Standard:
"_"
-
-
valueTag
– Das Tag, das für einen Wert verwendet wird, wenn das Element Attribute enthält, die kein untergeordnetes Element haben.-
Typ: Text, Standard:
"_VALUE"
-
-
ignoreSurroundingSpaces
– Gibt an, ob das Leerzeichen, das die Werte umgibt, ignoriert werden soll.-
Typ: Boolesch, Standard:
false
-
-
withSchema
– Enthält das erwartete Schema in Situationen, in denen Sie das abgeleitete Schema überschreiben möchten. Wenn Sie diese Option nicht verwenden, leitet AWS Glue das Schema aus den XML-Daten ab.-
Typ: Text, Standard: Nicht zutreffend
-
Der Wert sollte ein JSON-Objekt sein, das ein
StructType
darstellt.
-
Geben Sie das XML-Schema manuell an
Beispiel eines manuellen XML-Schemas
Dies ist ein Beispiel für die Verwendung der Formatoption withSchema
, um das Schema für XML-Daten anzugeben.
from awsglue.gluetypes import * schema = StructType([ Field("id", IntegerType()), Field("name", StringType()), Field("nested", StructType([ Field("x", IntegerType()), Field("y", StringType()), Field("z", ChoiceType([IntegerType(), StringType()])) ])) ]) datasource0 = create_dynamic_frame_from_options( connection_type, connection_options={"paths": ["s3://xml_bucket/someprefix"]}, format="xml", format_options={"withSchema": json.dumps(schema.jsonValue())}, transformation_ctx = "" )