データベース向けの 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 ソースのパスワード。プレーン パスワードとして指定することも、シークレット マネージャーで使用する場合は JSON 形式のシークレット仕様として指定することもできます。
read_query str JDBC ソースのクエリに使用される SQL クエリ。
secret_manager str シークレット値の取得に使用する Secret Manager。使用可能なオプション: 'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。設定されていない場合、シークレット マネージャーは使用されず、パスワードはプレーン パスワードとして扱われます。
username 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 ソースのパスワード。プレーン パスワードとして指定することも、シークレット マネージャーで使用する場合は JSON 形式のシークレット仕様として指定することもできます。
secret_manager str シークレット値の取得に使用する Secret Manager。使用可能なオプション: 'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。設定されていない場合、シークレット マネージャーは使用されず、パスワードはプレーン パスワードとして扱われます。
username 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 ソースのパスワード。プレーン パスワードとして指定することも、シークレット マネージャーで使用する場合は JSON 形式のシークレット仕様として指定することもできます。
read_query str JDBC ソースのクエリに使用される SQL クエリ。
secret_manager str シークレット値の取得に使用する Secret Manager。使用可能なオプション: 'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。設定されていない場合、シークレット マネージャーは使用されず、パスワードはプレーン パスワードとして扱われます。
username 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 ソースのパスワード。プレーン パスワードとして指定することも、シークレット マネージャーで使用する場合は JSON 形式のシークレット仕様として指定することもできます。
secret_manager str シークレット値の取得に使用する Secret Manager。使用可能なオプション: 'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。設定されていない場合、シークレット マネージャーは使用されず、パスワードはプレーン パスワードとして扱われます。
username 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 ソースのパスワード。プレーン パスワードとして指定することも、シークレット マネージャーで使用する場合は JSON 形式のシークレット仕様として指定することもできます。
read_query str JDBC ソースのクエリに使用される SQL クエリ。
secret_manager str シークレット値の取得に使用する Secret Manager。使用可能なオプション: 'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。設定されていない場合、シークレット マネージャーは使用されず、パスワードはプレーン パスワードとして扱われます。
username 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 ソースのパスワード。プレーン パスワードとして指定することも、シークレット マネージャーで使用する場合は JSON 形式のシークレット仕様として指定することもできます。
secret_manager str シークレット値の取得に使用する Secret Manager。使用可能なオプション: 'GoogleCloudSecretManager'、'GoogleCloudHsmGeneratedSecretManager'。設定されていない場合、シークレット マネージャーは使用されず、パスワードはプレーン パスワードとして扱われます。
username str JDBC ソースのユーザー名。
write_statement str JDBC シンクにレコードを挿入するために使用する SQL クエリ。

次のステップ

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