資料庫的 Dataflow 代管 I/O

Dataflow 支援使用 Java Database Connectivity (JDBC) 讀取及寫入資料庫。Dataflow 會使用 Apache Beam JdbcIO 連接器,連線至 JDBC 資料來源和接收器。資料庫的受管理 I/O 支援各種資料庫的標準 JDBC 驅動程式,包括 PostgreSQL、MySQL 和 Microsoft SQL Server。

需求條件

下列 SDK 支援資料庫的受管理 I/O:

  • Apache Beam SDK for Java 2.69.0 以上版本
  • Apache Beam SDK for Python 2.69.0 以上版本

設定

資料庫的 Managed I/O 支援下列設定參數:

POSTGRES 閱讀

設定 類型 說明
jdbc_url str JDBC 來源的連線網址。
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式須為「key1=value1;key2=value2;」。
fetch_size int32 這個方法用於覆寫每次資料庫呼叫時,要擷取並載入記憶體的資料大小。只有在預設值會擲回記憶體錯誤時,才應使用這個值。
位置 str 要讀取的資料表名稱。
num_partitions int32 分區數量
output_parallelization boolean 是否要重新隨機排序產生的 PCollection,以便將結果分配給所有工作人員。
partition_column str 要用於分區的數值類型資料欄名稱。
密碼 str JDBC 來源的密碼。可指定為純文字密碼,或搭配密鑰管理工具使用時,指定為 JSON 格式的密鑰規格。
read_query str 用於查詢 JDBC 來源的 SQL 查詢。
secret_manager str 用於擷取密鑰值的 Secret Manager。可用選項:「GoogleCloudSecretManager」、「GoogleCloudHsmGeneratedSecretManager」。如未設定,系統不會使用任何密鑰管理工具,且密碼會視為純文字密碼。
使用者名稱 str JDBC 來源的使用者名稱。

POSTGRES 寫入

設定 類型 說明
jdbc_url str JDBC 接收器的連線網址。
自動分片 boolean 如果啟用,就會以動態決定的 shard 數量寫入資料。
batch_size int64 不適用
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式須為「key1=value1;key2=value2;」。
地點 str 要寫入的資料表名稱。
密碼 str JDBC 來源的密碼。可指定為純文字密碼,或搭配密鑰管理工具使用時,指定為 JSON 格式的密鑰規格。
secret_manager str 用於擷取密鑰值的 Secret Manager。可用選項:「GoogleCloudSecretManager」、「GoogleCloudHsmGeneratedSecretManager」。如未設定,系統不會使用任何密鑰管理工具,且密碼會視為純文字密碼。
使用者名稱 str JDBC 來源的使用者名稱。
write_statement str 用於將記錄插入 JDBC 接收器的 SQL 查詢。

MYSQL 閱讀

設定 類型 說明
jdbc_url str JDBC 來源的連線網址。
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 這個方法用於覆寫每次資料庫呼叫時,要擷取並載入記憶體的資料大小。只有在預設值會擲回記憶體錯誤時,才應使用這個值。
位置 str 要讀取的資料表名稱。
num_partitions int32 分區數量
output_parallelization boolean 是否要重新隨機排序產生的 PCollection,以便將結果分配給所有工作人員。
partition_column str 要用於分區的數值類型資料欄名稱。
密碼 str JDBC 來源的密碼。可指定為純文字密碼,或搭配密鑰管理工具使用時,指定為 JSON 格式的密鑰規格。
read_query str 用於查詢 JDBC 來源的 SQL 查詢。
secret_manager str 用於擷取密鑰值的 Secret Manager。可用選項:「GoogleCloudSecretManager」、「GoogleCloudHsmGeneratedSecretManager」。如未設定,系統不會使用任何密鑰管理工具,且密碼會視為純文字密碼。
使用者名稱 str JDBC 來源的使用者名稱。

MYSQL 寫入

設定 類型 說明
jdbc_url str JDBC 接收器的連線網址。
自動分片 boolean 如果啟用,就會以動態決定的 shard 數量寫入資料。
batch_size int64 不適用
connection_init_sql list[str] 設定 Driver 使用的連線初始化 SQL 陳述式。只有 MySQL 和 MariaDB 支援這項功能。
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式須為「key1=value1;key2=value2;」。
地點 str 要寫入的資料表名稱。
密碼 str JDBC 來源的密碼。可指定為純文字密碼,或搭配密鑰管理工具使用時,指定為 JSON 格式的密鑰規格。
secret_manager str 用於擷取密鑰值的 Secret Manager。可用選項:「GoogleCloudSecretManager」、「GoogleCloudHsmGeneratedSecretManager」。如未設定,系統不會使用任何密鑰管理工具,且密碼會視為純文字密碼。
使用者名稱 str JDBC 來源的使用者名稱。
write_statement str 用於將記錄插入 JDBC 接收器的 SQL 查詢。

SQLSERVER 閱讀

設定 類型 說明
jdbc_url str JDBC 來源的連線網址。
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式須為「key1=value1;key2=value2;」。
disable_auto_commit boolean 是否要在讀取時停用自動提交。如未提供,預設為 true。是否需要這項設定,取決於資料庫平台。Informix 必須將此值設為 false,Postgres 則必須設為 true。
fetch_size int32 這個方法用於覆寫每次資料庫呼叫時,要擷取並載入記憶體的資料大小。只有在預設值會擲回記憶體錯誤時,才應使用這個值。
位置 str 要讀取的資料表名稱。
num_partitions int32 分區數量
output_parallelization boolean 是否要重新隨機排序產生的 PCollection,以便將結果分配給所有工作人員。
partition_column str 要用於分區的數值類型資料欄名稱。
密碼 str JDBC 來源的密碼。可指定為純文字密碼,或搭配密鑰管理工具使用時,指定為 JSON 格式的密鑰規格。
read_query str 用於查詢 JDBC 來源的 SQL 查詢。
secret_manager str 用於擷取密鑰值的 Secret Manager。可用選項:「GoogleCloudSecretManager」、「GoogleCloudHsmGeneratedSecretManager」。如未設定,系統不會使用任何密鑰管理工具,且密碼會視為純文字密碼。
使用者名稱 str JDBC 來源的使用者名稱。

SQLSERVER 寫入

設定 類型 說明
jdbc_url str JDBC 接收器的連線網址。
自動分片 boolean 如果啟用,就會以動態決定的 shard 數量寫入資料。
batch_size int64 不適用
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式須為「key1=value1;key2=value2;」。
地點 str 要寫入的資料表名稱。
密碼 str JDBC 來源的密碼。可指定為純文字密碼,或搭配密鑰管理工具使用時,指定為 JSON 格式的密鑰規格。
secret_manager str 用於擷取密鑰值的 Secret Manager。可用選項:「GoogleCloudSecretManager」、「GoogleCloudHsmGeneratedSecretManager」。如未設定,系統不會使用任何密鑰管理工具,且密碼會視為純文字密碼。
使用者名稱 str JDBC 來源的使用者名稱。
write_statement str 用於將記錄插入 JDBC 接收器的 SQL 查詢。

後續步驟

如需更多資訊和程式碼範例,請參閱下列文件: