資料庫的 Dataflow 代管 I/O

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

需求條件

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

  • Java 適用的 Apache Beam SDK 2.69.0 以上版本
  • 適用於 Python 的 Apache Beam SDK 2.69.0 以上版本

設定

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

POSTGRES 閱讀

設定 類型 說明
jdbc_url str JDBC 來源的連線網址。
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式必須為「key1=value1;key2=value2;」。
fetch_size int32 這個方法用於覆寫每次資料庫呼叫時,要擷取並載入記憶體的資料大小。只有在預設值會擲回記憶體錯誤時,才應使用這個值。
location str 要讀取的資料表名稱。
num_partitions int32 分區數量
output_parallelization boolean 是否要重新隨機排序產生的 PCollection,以便將結果分配給所有工作站。
partition_column str 用於分區的數值型別資料欄名稱。
密碼 str JDBC 來源的密碼。
read_query str 用於查詢 JDBC 來源的 SQL 查詢。
使用者名稱 str JDBC 來源的使用者名稱。

POSTGRES 撰寫

設定 類型 說明
jdbc_url str JDBC 接收器的連線網址。
自動分片 boolean 如果啟用,就會以動態決定的 shard 數量寫入資料。
batch_size int64 n/a
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式必須為「key1=value1;key2=value2;」。
location str 要寫入的資料表名稱。
密碼 str JDBC 來源的密碼。
使用者名稱 str JDBC 來源的使用者名稱。
write_statement str 用於將記錄插入 JDBC 接收器的 SQL 查詢。

MYSQL 閱讀

設定 類型 說明
jdbc_url str JDBC 來源的連線網址。
connection_init_sql list[str] 設定驅動程式使用的連線初始化 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 用於分區的數值型別資料欄名稱。
密碼 str JDBC 來源的密碼。
read_query str 用於查詢 JDBC 來源的 SQL 查詢。
使用者名稱 str JDBC 來源的使用者名稱。

MYSQL 撰寫

設定 類型 說明
jdbc_url str JDBC 接收器的連線網址。
自動分片 boolean 如果啟用,就會以動態決定的 shard 數量寫入資料。
batch_size int64 n/a
connection_init_sql list[str] 設定驅動程式使用的連線初始化 SQL 陳述式。只有 MySQL 和 MariaDB 支援這項功能。
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式必須為「key1=value1;key2=value2;」。
location str 要寫入的資料表名稱。
密碼 str JDBC 來源的密碼。
使用者名稱 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 這個方法用於覆寫每次資料庫呼叫時,要擷取並載入記憶體的資料大小。只有在預設值會擲回記憶體錯誤時,才應使用這個值。
location str 要讀取的資料表名稱。
num_partitions int32 分區數量
output_parallelization boolean 是否要重新隨機排序產生的 PCollection,以便將結果分配給所有工作站。
partition_column str 用於分區的數值型別資料欄名稱。
密碼 str JDBC 來源的密碼。
read_query str 用於查詢 JDBC 來源的 SQL 查詢。
使用者名稱 str JDBC 來源的使用者名稱。

SQLSERVER 撰寫

設定 類型 說明
jdbc_url str JDBC 接收器的連線網址。
自動分片 boolean 如果啟用,就會以動態決定的 shard 數量寫入資料。
batch_size int64 n/a
connection_properties str 用於設定傳遞給 JDBC 驅動程式的連線屬性,這些屬性尚未定義為獨立參數 (例如,可使用上述參數設定使用者名稱和密碼)。字串格式必須為「key1=value1;key2=value2;」。
location str 要寫入的資料表名稱。
密碼 str JDBC 來源的密碼。
使用者名稱 str JDBC 來源的使用者名稱。
write_statement str 用於將記錄插入 JDBC 接收器的 SQL 查詢。

後續步驟

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