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.
Parallel aus JDBC-Tabellen lesen
Sie können die Eigenschaften Ihrer JDBC-Tabelle so einstellen, dass sie aktiviert werden AWS Glue um Daten parallel zu lesen. Wenn Sie bestimmte Eigenschaften festlegen, weisen Sie an AWS Glue um parallel SQL-Abfragen für logische Partitionen Ihrer Daten auszuführen. Sie können die Partitionierung steuern, indem Sie ein Hash-Feld oder einen Hash-Ausdruck festlegen. Sie können auch die Anzahl der parallelen Lesezugriffe steuern, die für den Zugriff auf Ihre Daten verwendet werden.
Das parallele Lesen aus JDBC-Tabellen ist eine Optimierungsmethode, die die Leistung verbessern kann. Weitere Informationen darüber, wie ermittelt werden kann, wann diese Technik geeignet ist, finden Sie unter Reduce the amount of data scan im Leitfaden Best Practices for Performance Tuning AWS Glue for Apache Spark Jobs auf AWS Prescriptive Guidance.
Um paralleles Lesen zu ermöglichen, können Sie Schlüssel-Wert-Paare im Parameterfeld Ihrer Tabellenstruktur setzen. Verwenden Sie eine JSON-Notation, um einen Wert für das Parameterfeld Ihrer Tabelle festzulegen. Weitere Informationen zum Bearbeiten der Eigenschaften einer Tabelle finden Sie unter Tabellendetails anzeigen und verwalten. Sie können auch parallele Lesevorgänge aktivieren, wenn Sie die ETL-Methoden (Extrahieren, Transformieren und Laden) create_dynamic_frame_from_options
und create_dynamic_frame_from_catalog
aufrufen. Weitere Informationen über das Festlegen der Optionen dieser Methoden finden Sie unter from_options und from_catalog.
Sie können diese Methode für JDBC-Tabellen verwenden, d.h. für die meisten Tabellen, deren Grundlage ein JDBC-Datenspeicher ist. Diese Eigenschaften werden beim Lesen von Amazon-Redshift- und Amazon-S3-Tabellen ignoriert.
- hashfield
-
Stellen Sie
hashfield
auf den Namen einer Spalte in der JDBC-Tabelle ein, die zur Aufteilung der Daten in Partitionen verwendet werden soll. Um optimale Ergebnisse zu erzielen, sollte diese Spalte eine gleichmäßige Verteilung der Werte aufweisen, um die Daten zwischen den Partitionen zu verteilen. Diese Spalte kann einen beliebigen Datentyp haben. AWS Glue generiert nicht überlappende Abfragen, die parallel ausgeführt werden, um die durch diese Spalte partitionierten Daten zu lesen. Wenn Ihre Daten beispielsweise gleichmäßig nach Monaten verteilt sind, können Sie die Spaltemonth
verwenden, um die Daten für jeden Monat parallel zu lesen:'hashfield': 'month'
AWS Glue erstellt eine Abfrage, um den Feldwert mit einer Partitionsnummer zu hashen, und führt die Abfrage für alle Partitionen parallel aus. Um Ihre eigene Abfrage zur Partitionierung einer gelesenen Tabelle zu verwenden, geben Sie
hashexpression
anstelle vonhashfield
an. - hashexpression
-
Setzen Sie
hashexpression
auf einen SQL-Ausdruck (entsprechend der Syntax der JDBC-Datenbankmaschine), der eine ganze Zahl zurückgibt. Ein einfacher Ausdruck ist der Name einer beliebigen numerischen Spalte in der Tabelle. AWS Glue generiert SQL-Abfragen, um die JDBC-Daten parallel zu lesen, indem diehashexpression
WHERE
In-the-Klausel verwendet wird, um Daten zu partitionieren.Verwenden Sie beispielsweise die numerische Spalte
customerID
, um Daten zu lesen, die nach Kundennummer partitioniert sind:'hashexpression': 'customerID'
Zu haben AWS Glue um die Partitionierung zu kontrollieren, geben Sie a
hashfield
statt ahashexpression
an. - hashpartitions
-
Stellen Sie
hashpartitions
auf die Anzahl der parallelen Lesezugriffe der JDBC-Tabelle ein. Wenn diese Eigenschaft nicht festgelegt ist, wird der Standardwert 7 verwendet.Stellen Sie beispielsweise die Anzahl der parallel Lesevorgänge
5
so ein, dass AWS Glue liest Ihre Daten mit fünf Abfragen (oder weniger).'hashpartitions': '5'