View a markdown version of this page

Aufheben der Verschachtelung von Schemata - AWS Glue

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.

Aufheben der Verschachtelung von Schemata

Bei der Integration mit Analysediensten über Zero-ETL können Sie wählen, wie verschachtelte Strukturen in den Zieltabellen dargestellt werden. AWS Glue Zero-ETL bietet Optionen zum Entfernen von Schemaverschachtelungen, um komplexe Datenstrukturen in analysefreundlichere Formate zu reduzieren.

Optionen zum Aufheben der Verschachtelung

Wenn Sie eine Null-ETL-Integration mit einer Quelle erstellen, können Sie aus den folgenden Optionen zum Aufheben von Verschachtelungen wählen. Diese Optionen entsprechen bestimmten Aufzählungswerten, die Sie beim Aufrufen der API verwenden werden. CreateIntegrationTableProperty

Kein Aufheben der Verschachtelung (Standard)

API-Wert: NO_UNNEST

Behält die ursprüngliche verschachtelte Struktur der DynamoDB-Elemente bei. Zuordnungen und Listen werden als strukturierte Spalten im Ziel gespeichert.

Ideal für: Beibehaltung der exakten Struktur Ihrer DynamoDB-Daten, wenn Ihre Analytiktools mit verschachtelten Daten arbeiten können.

Aufheben der Verschachtelung einer Ebene

API-Wert: TOP_LEVEL

Reduziert die oberste Ebene verschachtelter Zuordnungen in einzelne Spalten. Listenstrukturen bleiben verschachtelt.

Ideal für: Balance zwischen Erhaltung der Datenstruktur und Einfachheit der Abfrage, wenn Ihre DynamoDB-Elemente über ein konsistentes Schema verfügen.

Aufheben der Verschachtelung aller Ebenen

API-Wert: FULL

Reduziert alle verschachtelten Strukturen (Zuordnungen und Listen) rekursiv in einzelne Spalten mit Punktnotation für die Benennung.

Ideal für: Maximierung der Einfachheit von Abfragen bei der Arbeit mit tief verschachtelten Strukturen und Analytiktools, die flache Schemata bevorzugen.

Anmerkung

Eine vollständige Aufhebung der Verschachtelung kann zu sehr breiten Tabellen mit vielen Spalten führen, wenn Ihre DynamoDB-Daten variable oder tief verschachtelte Strukturen aufweisen.

Beispiel Verwenden von Optionen zum Aufheben von Verschachtelungen in der API

Wenn Sie die Schemaaufschlüsselung über die CreateIntegrationTableProperty API konfigurieren, geben Sie die Option zum Entfernen von Verschachtelungen im Parameter an: UnnestSpec

aws glue create-integration-table-property --resource-arn "arn:aws:glue:us-east-1:123456789012:integration/my-integration" --table-name "my-table" --cli-input-json '{ "TargetTableConfig": { "UnnestSpec": "FULL", "TargetTableName": "my-target-table", } }'

Beispiele für das Aufheben von Verschachtelungen

Stellen Sie sich ein DynamoDB-Element mit der folgenden Struktur vor:

{ "ProductId": "P12345", "ProductDetails": { "Name": "Smartphone", "Brand": "TechCo", "Specifications": { "Color": "Black", "Storage": "128GB" } }, "Reviews": [ { "Rating": 5, "Comment": "Great product!" }, { "Rating": 4, "Comment": "Good value." } ] }

Beispiele für kein Aufheben der Verschachtelung

Ohne ein Aufheben der Verschachtelung hätte die Zieltabelle folgende Spalten:

  • ProductId (string)

  • ProductDetails (Struktur)

  • Rezensionen (Array von Strukturen)

Abfragen müssten Struktur- und Array-Zugriffsmuster verwenden:

SELECT ProductId, ProductDetails.Name, ProductDetails.Specifications.Color FROM product_table;

Beispiel für das Aufheben von Verschachtelungen auf einer Ebene

Beim Aufheben der Verschachtelung auf einer Ebene hätte die Zieltabelle folgende Spalten:

  • ProductId (string)

  • ProductDetails_Name (Zeichenfolge)

  • ProductDetails_Marke (Zeichenfolge)

  • ProductDetails_Spezifikationen (Struktur)

  • Rezensionen (Array von Strukturen)

Abfragen würden für die erste Ebene vereinfacht:

SELECT ProductId, ProductDetails_Name, ProductDetails_Specifications.Color FROM product_table;

Beispiel für ein Aufheben der Verschachtelung aller Ebenen

Beim Aufheben der Verschachtelung aller Ebenen hätte die Zieltabelle folgende Spalten:

Spaltenname (Typ) Wert
ProductId (string) P12345
ProductDetails_Name (Zeichenfolge) Smartphone
ProductDetails_Marke (Zeichenfolge) TechCo
ProductDetails_Specifications_Color (Zeichenfolge) Schwarz
ProductDetails_Specifications_Storage (Zeichenfolge) 128 GB
Reviews_0_Rating (Zahl) 5
Reviews_0_Comment (Zeichenfolge) Großartiges Produkt!
Reviews_1_Rating (Zahl) 4
Reviews_1_Comment (Zeichenfolge) Guter Wert.

Abfragen würden vollständig vereinfacht:

SELECT ProductId, ProductDetails_Name, ProductDetails_Specifications_Color FROM product_table;