データベース向けの Dataflow マネージド I/O

Dataflow は、Java Database Connectivity(JDBC)を使用したデータベースの読み取りと書き込みをサポートしています。Dataflow は、Apache Beam JdbcIO コネクタを使用して JDBC データソースとシンクに接続します。Managed I/O for Databases は、PostgreSQL、MySQL、Microsoft SQL Server などのさまざまなデータベースの標準 JDBC ドライバをサポートしています。

要件

次の SDK は、データベースのマネージド I/O をサポートしています。

  • Apache Beam SDK for Java バージョン 2.69.0 以降
  • Apache Beam SDK for Python バージョン 2.69.0 以降

構成

Databases 向けマネージド I/O は、次の構成パラメータをサポートしています。

POSTGRES 読み取り

構成 種類 説明
jdbc_url str JDBC ソースの接続 URL。
connection_properties str スタンドアロン パラメータとしてまだ定義されていない JDBC ドライバに渡す接続プロパティを設定するために使用されます(たとえば、上記のパラメータを使用してユーザー名とパスワードを適切に設定できます)。文字列の形式は「key1=value1;key2=value2;」にする必要があります。
fetch_size int32 このメソッドは、データベース呼び出しごとにフェッチしてメモリに読み込むデータのサイズをオーバーライドするために使用されます。デフォルト値でメモリ エラーが発生する場合にのみ使用してください。
location str 読み取り元のテーブルの名前。
num_partitions int32 パーティションの数
output_parallelization boolean 結果の PCollection を再シャッフルして、結果がすべてのワーカーに分散されるようにするかどうか。
partition_column str パーティショニングに使用される数値型の列の名前。
password str JDBC ソースのパスワード。
read_query str JDBC ソースのクエリに使用される SQL クエリ。
ユーザー名 str JDBC ソースのユーザー名。

POSTGRES 書き込み

構成 種類 説明
jdbc_url str JDBC シンクの接続 URL。
自動シャーディング boolean true にすると、書き込みに使用するシャードの数を動的に決定できます。
batch_size int64 なし
connection_properties str スタンドアロン パラメータとしてまだ定義されていない JDBC ドライバに渡す接続プロパティを設定するために使用されます(たとえば、上記のパラメータを使用してユーザー名とパスワードを適切に設定できます)。文字列の形式は「key1=value1;key2=value2;」にする必要があります。
location str 書き込み先のテーブルの名前。
password str JDBC ソースのパスワード。
ユーザー名 str JDBC ソースのユーザー名。
write_statement str JDBC シンクにレコードを挿入するために使用する SQL クエリ。

MYSQL 読み取り

構成 種類 説明
jdbc_url str JDBC ソースの接続 URL。
connection_init_sql list[str] Driver が使用する接続初期化 SQL ステートメントを設定します。MySQL と MariaDB のみがこれをサポートしています。
connection_properties str スタンドアロン パラメータとしてまだ定義されていない JDBC ドライバに渡す接続プロパティを設定するために使用されます(たとえば、上記のパラメータを使用してユーザー名とパスワードを適切に設定できます)。文字列の形式は「key1=value1;key2=value2;」にする必要があります。
disable_auto_commit boolean 読み取り時の自動コミットを無効にするかどうか。指定しない場合、デフォルトは true です。この構成の必要性は、データベース プラットフォームによって異なります。Informix では false に設定する必要がありますが、Postgres では true に設定する必要があります。
fetch_size int32 このメソッドは、データベース呼び出しごとにフェッチしてメモリに読み込むデータのサイズをオーバーライドするために使用されます。デフォルト値でメモリ エラーが発生する場合にのみ使用してください。
location str 読み取り元のテーブルの名前。
num_partitions int32 パーティションの数
output_parallelization boolean 結果の PCollection を再シャッフルして、結果がすべてのワーカーに分散されるようにするかどうか。
partition_column str パーティショニングに使用される数値型の列の名前。
password str JDBC ソースのパスワード。
read_query str JDBC ソースのクエリに使用される SQL クエリ。
ユーザー名 str JDBC ソースのユーザー名。

MYSQL 書き込み

構成 種類 説明
jdbc_url str JDBC シンクの接続 URL。
自動シャーディング boolean true にすると、書き込みに使用するシャードの数を動的に決定できます。
batch_size int64 なし
connection_init_sql list[str] Driver が使用する接続初期化 SQL ステートメントを設定します。MySQL と MariaDB のみがこれをサポートしています。
connection_properties str スタンドアロン パラメータとしてまだ定義されていない JDBC ドライバに渡す接続プロパティを設定するために使用されます(たとえば、上記のパラメータを使用してユーザー名とパスワードを適切に設定できます)。文字列の形式は「key1=value1;key2=value2;」にする必要があります。
location str 書き込み先のテーブルの名前。
password str JDBC ソースのパスワード。
ユーザー名 str JDBC ソースのユーザー名。
write_statement str JDBC シンクにレコードを挿入するために使用する SQL クエリ。

SQLSERVER 読み取り

構成 種類 説明
jdbc_url str JDBC ソースの接続 URL。
connection_properties str スタンドアロン パラメータとしてまだ定義されていない JDBC ドライバに渡す接続プロパティを設定するために使用されます(たとえば、上記のパラメータを使用してユーザー名とパスワードを適切に設定できます)。文字列の形式は「key1=value1;key2=value2;」にする必要があります。
disable_auto_commit boolean 読み取り時の自動コミットを無効にするかどうか。指定しない場合、デフォルトは true です。この構成の必要性は、データベース プラットフォームによって異なります。Informix では false に設定する必要がありますが、Postgres では true に設定する必要があります。
fetch_size int32 このメソッドは、データベース呼び出しごとにフェッチしてメモリに読み込むデータのサイズをオーバーライドするために使用されます。デフォルト値でメモリ エラーが発生する場合にのみ使用してください。
location str 読み取り元のテーブルの名前。
num_partitions int32 パーティションの数
output_parallelization boolean 結果の PCollection を再シャッフルして、結果がすべてのワーカーに分散されるようにするかどうか。
partition_column str パーティショニングに使用される数値型の列の名前。
password str JDBC ソースのパスワード。
read_query str JDBC ソースのクエリに使用される SQL クエリ。
ユーザー名 str JDBC ソースのユーザー名。

SQLSERVER 書き込み

構成 種類 説明
jdbc_url str JDBC シンクの接続 URL。
自動シャーディング boolean true にすると、書き込みに使用するシャードの数を動的に決定できます。
batch_size int64 なし
connection_properties str スタンドアロン パラメータとしてまだ定義されていない JDBC ドライバに渡す接続プロパティを設定するために使用されます(たとえば、上記のパラメータを使用してユーザー名とパスワードを適切に設定できます)。文字列の形式は「key1=value1;key2=value2;」にする必要があります。
location str 書き込み先のテーブルの名前。
password str JDBC ソースのパスワード。
ユーザー名 str JDBC ソースのユーザー名。
write_statement str JDBC シンクにレコードを挿入するために使用する SQL クエリ。

次のステップ

詳細とコード例については、次のドキュメントをご覧ください。