Von Dataflow verwaltete E/A für Datenbanken

Dataflow unterstützt das Lesen aus und Schreiben in Datenbanken mit Java Database Connectivity (JDBC). Dataflow verwendet den Apache Beam-Connector JdbcIO, um eine Verbindung zu JDBC-Datenquellen und -Senken herzustellen. Managed I/O for Databases unterstützt Standard-JDBC-Treiber für verschiedene Datenbanken, darunter PostgreSQL, MySQL und Microsoft SQL Server.

Voraussetzungen

Die folgenden SDKs unterstützen verwaltete E/A für Datenbanken:

  • Apache Beam SDK für Java Version 2.69.0 oder höher
  • Apache Beam SDK für Python Version 2.69.0 oder höher

Konfiguration

Der verwaltete E/A-Connector für Datenbanken unterstützt die folgenden Konfigurationsparameter:

POSTGRES Lesen

Konfiguration Typ Beschreibung
jdbc_url str Verbindungs-URL für die JDBC-Quelle.
connection_properties str Wird verwendet, um Verbindungseigenschaften festzulegen, die an den JDBC-Treiber übergeben werden und nicht bereits als eigenständiger Parameter definiert sind (z.B. können Nutzername und Passwort mit den oben genannten Parametern festgelegt werden). Das Format des Strings muss „key1=value1;key2=value2;“ sein.
fetch_size int32 Mit dieser Methode wird die Größe der Daten überschrieben, die bei jedem Datenbankaufruf abgerufen und in den Arbeitsspeicher geladen werden. Sie sollte NUR verwendet werden, wenn der Standardwert Speicherfehler verursacht.
Standort str Der Name der Tabelle, aus der gelesen werden soll.
num_partitions int32 Anzahl der Partitionen
output_parallelization boolean Gibt an, ob die resultierende PCollection neu gemischt werden soll, damit die Ergebnisse auf alle Worker verteilt werden.
partition_column str Name einer Spalte vom numerischen Typ, die für die Partitionierung verwendet wird.
Passwort str Passwort für die JDBC-Quelle.
read_query str SQL-Abfrage, die zum Abfragen der JDBC-Quelle verwendet wird.
Nutzername str Nutzername für die JDBC-Quelle.

POSTGRES Schreiben

Konfiguration Typ Beschreibung
jdbc_url str Verbindungs-URL für die JDBC-Senke.
Automatisches Sharding boolean Wenn „wahr“, wird eine dynamisch ermittelte Anzahl von Shards zum Schreiben verwendet.
batch_size int64
connection_properties str Wird verwendet, um Verbindungseigenschaften festzulegen, die an den JDBC-Treiber übergeben werden und nicht bereits als eigenständiger Parameter definiert sind (z.B. können Nutzername und Passwort mit den oben genannten Parametern festgelegt werden). Das Format des Strings muss „key1=value1;key2=value2;“ sein.
Standort str Der Name der Tabelle, in die geschrieben werden soll.
Passwort str Passwort für die JDBC-Quelle.
Nutzername str Nutzername für die JDBC-Quelle.
write_statement str Die SQL-Abfrage, die zum Einfügen von Datensätzen in die JDBC-Senke verwendet wird.

MYSQL Lesen

Konfiguration Typ Beschreibung
jdbc_url str Verbindungs-URL für die JDBC-Quelle.
connection_init_sql list[str] Legt die SQL-Anweisungen für die Verbindungsinitialisierung fest, die vom Treiber verwendet werden. Wird nur von MySQL und MariaDB unterstützt.
connection_properties str Wird verwendet, um Verbindungseigenschaften festzulegen, die an den JDBC-Treiber übergeben werden und nicht bereits als eigenständiger Parameter definiert sind (z.B. können Nutzername und Passwort mit den oben genannten Parametern festgelegt werden). Das Format des Strings muss „key1=value1;key2=value2;“ sein.
disable_auto_commit boolean Gibt an, ob das automatische Committen beim Lesen deaktiviert werden soll. Wenn kein Wert angegeben ist, wird der Standardwert „true“ verwendet. Ob diese Konfiguration erforderlich ist, hängt von der Datenbankplattform ab. Bei Informix muss dieser Wert auf „false“ gesetzt sein, bei Postgres auf „true“.
fetch_size int32 Mit dieser Methode wird die Größe der Daten überschrieben, die bei jedem Datenbankaufruf abgerufen und in den Arbeitsspeicher geladen werden. Sie sollte NUR verwendet werden, wenn der Standardwert Speicherfehler verursacht.
Standort str Der Name der Tabelle, aus der gelesen werden soll.
num_partitions int32 Anzahl der Partitionen
output_parallelization boolean Gibt an, ob die resultierende PCollection neu gemischt werden soll, damit die Ergebnisse auf alle Worker verteilt werden.
partition_column str Name einer Spalte vom numerischen Typ, die für die Partitionierung verwendet wird.
Passwort str Passwort für die JDBC-Quelle.
read_query str SQL-Abfrage, die zum Abfragen der JDBC-Quelle verwendet wird.
Nutzername str Nutzername für die JDBC-Quelle.

MYSQL Schreiben

Konfiguration Typ Beschreibung
jdbc_url str Verbindungs-URL für die JDBC-Senke.
Automatisches Sharding boolean Wenn „wahr“, wird eine dynamisch ermittelte Anzahl von Shards zum Schreiben verwendet.
batch_size int64
connection_init_sql list[str] Legt die SQL-Anweisungen für die Verbindungsinitialisierung fest, die vom Treiber verwendet werden. Wird nur von MySQL und MariaDB unterstützt.
connection_properties str Wird verwendet, um Verbindungseigenschaften festzulegen, die an den JDBC-Treiber übergeben werden und nicht bereits als eigenständiger Parameter definiert sind (z.B. können Nutzername und Passwort mit den oben genannten Parametern festgelegt werden). Das Format des Strings muss „key1=value1;key2=value2;“ sein.
Standort str Der Name der Tabelle, in die geschrieben werden soll.
Passwort str Passwort für die JDBC-Quelle.
Nutzername str Nutzername für die JDBC-Quelle.
write_statement str Die SQL-Abfrage, die zum Einfügen von Datensätzen in die JDBC-Senke verwendet wird.

SQLSERVER Lesen

Konfiguration Typ Beschreibung
jdbc_url str Verbindungs-URL für die JDBC-Quelle.
connection_properties str Wird verwendet, um Verbindungseigenschaften festzulegen, die an den JDBC-Treiber übergeben werden und nicht bereits als eigenständiger Parameter definiert sind (z.B. können Nutzername und Passwort mit den oben genannten Parametern festgelegt werden). Das Format des Strings muss „key1=value1;key2=value2;“ sein.
disable_auto_commit boolean Gibt an, ob das automatische Committen beim Lesen deaktiviert werden soll. Wenn kein Wert angegeben ist, wird der Standardwert „true“ verwendet. Ob diese Konfiguration erforderlich ist, hängt von der Datenbankplattform ab. Bei Informix muss dieser Wert auf „false“ gesetzt sein, bei Postgres auf „true“.
fetch_size int32 Mit dieser Methode wird die Größe der Daten überschrieben, die bei jedem Datenbankaufruf abgerufen und in den Arbeitsspeicher geladen werden. Sie sollte NUR verwendet werden, wenn der Standardwert Speicherfehler verursacht.
Standort str Der Name der Tabelle, aus der gelesen werden soll.
num_partitions int32 Anzahl der Partitionen
output_parallelization boolean Gibt an, ob die resultierende PCollection neu gemischt werden soll, damit die Ergebnisse auf alle Worker verteilt werden.
partition_column str Name einer Spalte vom numerischen Typ, die für die Partitionierung verwendet wird.
Passwort str Passwort für die JDBC-Quelle.
read_query str SQL-Abfrage, die zum Abfragen der JDBC-Quelle verwendet wird.
Nutzername str Nutzername für die JDBC-Quelle.

SQLSERVER Schreiben

Konfiguration Typ Beschreibung
jdbc_url str Verbindungs-URL für die JDBC-Senke.
Automatisches Sharding boolean Wenn „wahr“, wird eine dynamisch ermittelte Anzahl von Shards zum Schreiben verwendet.
batch_size int64
connection_properties str Wird verwendet, um Verbindungseigenschaften festzulegen, die an den JDBC-Treiber übergeben werden und nicht bereits als eigenständiger Parameter definiert sind (z.B. können Nutzername und Passwort mit den oben genannten Parametern festgelegt werden). Das Format des Strings muss „key1=value1;key2=value2;“ sein.
Standort str Der Name der Tabelle, in die geschrieben werden soll.
Passwort str Passwort für die JDBC-Quelle.
Nutzername str Nutzername für die JDBC-Quelle.
write_statement str Die SQL-Abfrage, die zum Einfügen von Datensätzen in die JDBC-Senke verwendet wird.

Nächste Schritte

Weitere Informationen und Codebeispiele finden Sie in den folgenden Dokumenten: