Umwandeln semistrukturierter Schemas in relationale Schemas mit AWS Glue
Es ist üblich, semistrukturierte Daten in relationale Tabellen umzuwandeln. Vom Konzept her reduzieren Sie ein hierarchisches Schema in ein relationales Schema. AWS Glue kann diese Umwandlung für Sie zügig durchführen.
Semistrukturierte Daten enthalten in der Regel Markups zur Identifizierung von Entitäten innerhalb der Daten. Sie können verschachtelte Datenstrukturen ohne festes Schema umfassen. Weitere Informationen zu semistrukturierten Daten finden Sie im Wikipedia-Artikel zu semistrukturierten Daten
Relationale Daten werden durch Tabellen repräsentiert, die aus Zeilen und Spalten bestehen. Die Beziehungen zwischen Tabellen können durch eine Beziehung zwischen Primärschlüssel (PK) und Fremdschlüssel (FK) dargestellt werden. Weitere Informationen finden Sie im Wikipedia-Artikel zu relationalen Datenbanken
AWS Glue verwendet Crawler, um Schemas für semistrukturierte Daten abzuleiten. Es wandelt die Daten dann mit einem ETL-Auftrag (Extract, Transform and Load) in ein relationales Schema um. Sie können beispielsweise JSON-Daten von Quelldateien aus Amazon Simple Storage Service (Amazon S3) in Amazon Relational Database Service (Amazon RDS)-Tabellen parsen. Wenn Sie verstehen, wie AWS Glue die Unterschiede zwischen Schemas handhabt, können Sie den Prozess der Umwandlung besser nachvollziehen.
In diesem Diagramm wird gezeigt, wie AWS Glue ein semistrukturiertes Schema in ein relationales Schema umwandelt.
Das Diagramm veranschaulicht folgende Vorgänge:
-
Der Einzelwert
Awird direkt in eine relationale Spalte umgewandelt. -
Das Wertepaar
B1undB2wird in zwei relationale Spalten umgewandelt. -
Die Struktur
C, mit den untergeordneten ElementenXundY, wird in zwei relationale Spalten umgewandelt. -
Array
D[]wird in eine relationale Spalte mit einem Fremdschlüssel (FK) umgewandelt, der auf eine andere relationale Tabelle verweist. Zusammen mit einem Primärschlüssel (PK) verfügt die zweite relationale Tabelle über Spalten, die den Offset und Wert der Elemente im Array enthalten.