airflow.providers.apache.spark.hooks.spark_jdbc¶
類¶
擴充套件 SparkSubmitHook,用於使用 Apache Spark 在基於 JDBC 的資料庫之間傳輸資料。 |
模組內容¶
- class airflow.providers.apache.spark.hooks.spark_jdbc.SparkJDBCHook(spark_app_name='airflow-spark-jdbc', spark_conn_id=default_conn_name, spark_conf=None, spark_py_files=None, spark_files=None, spark_jars=None, num_executors=None, executor_cores=None, executor_memory=None, driver_memory=None, verbose=False, principal=None, keytab=None, cmd_type='spark_to_jdbc', jdbc_table=None, jdbc_conn_id='jdbc-default', jdbc_driver=None, metastore_table=None, jdbc_truncate=False, save_mode=None, save_format=None, batch_size=None, fetch_size=None, num_partitions=None, partition_column=None, lower_bound=None, upper_bound=None, create_table_column_types=None, *args, use_krb5ccache=False, **kwargs)[源]¶
基類:
airflow.providers.apache.spark.hooks.spark_submit.SparkSubmitHook擴充套件 SparkSubmitHook,用於使用 Apache Spark 在基於 JDBC 的資料庫之間傳輸資料。
- 引數:
spark_app_name (str) – 作業名稱 (預設為 airflow-spark-jdbc)
spark_conn_id (str) – 在 Airflow 管理介面中配置的 Spark 連線 ID
spark_py_files (str | None) – 使用的額外 Python 檔案(.zip, .egg, 或 .py)
spark_files (str | None) – 要上傳到執行作業的容器的額外檔案
spark_jars (str | None) – 要上傳並新增到驅動程式和執行程式 classpath 的額外 jar 包
num_executors (int | None) – 要執行的執行程式數量。應設定此引數以管理與 JDBC 資料庫建立的連線數
executor_cores (int | None) – 每個執行程式的核數
executor_memory (str | None) – 每個執行程式的記憶體 (例如 1000M, 2G)
driver_memory (str | None) – 分配給驅動程式的記憶體 (例如 1000M, 2G)
verbose (bool) – 是否將 verbose 標誌傳遞給 spark-submit 以進行除錯
keytab (str | None) – 包含 keytab 的檔案的完整路徑
principal (str | None) – 用於 keytab 的 kerberos principal 名稱
cmd_type (str) – 資料流向。2個可能的值: spark_to_jdbc: Spark 將資料從 metastore 寫入 jdbc jdbc_to_spark: Spark 將資料從 jdbc 寫入 metastore
jdbc_table (str | None) – JDBC 表的名稱
jdbc_conn_id (str) – 用於連線 JDBC 資料庫的連線 ID
jdbc_driver (str | None) – 用於 JDBC 連線的 JDBC 驅動程式名稱。該驅動程式(通常是一個 jar 包)應透過 ‘jars’ 引數傳入
metastore_table (str | None) – metastore 表的名稱,
jdbc_truncate (bool) – (僅適用於 spark_to_jdbc) Spark 是否應截斷或刪除並重新建立 JDBC 表。僅當 ‘save_mode’ 設定為 Overwrite 時生效。此外,如果 schema 不同,Spark 無法截斷,將刪除並重新建立
save_mode (str | None) – 要使用的 Spark save-mode (例如 overwrite, append 等)
save_format (str | None) – (僅適用於 jdbc_to_spark) 要使用的 Spark save-format (例如 parquet)
batch_size (int | None) – (僅適用於 spark_to_jdbc) 每次往返 JDBC 資料庫插入的批次大小。預設為 1000
fetch_size (int | None) – (僅適用於 jdbc_to_spark) 每次從 JDBC 資料庫獲取的批次大小。預設為 JDBC 驅動程式決定
num_partitions (int | None) – Spark 可以同時使用的最大分割槽數,適用於 spark_to_jdbc 和 jdbc_to_spark 操作。這也會限制可以開啟的 JDBC 連線數
partition_column (str | None) – (僅適用於 jdbc_to_spark) 用於按其對 metastore 表進行分割槽的數字列。如果指定,還必須指定:num_partitions, lower_bound, upper_bound
lower_bound (str | None) – (僅適用於 jdbc_to_spark) 要獲取的數字分割槽列範圍的下界。如果指定,還必須指定:num_partitions, partition_column, upper_bound
upper_bound (str | None) – (僅適用於 jdbc_to_spark) 要獲取的數字分割槽列範圍的上界。如果指定,還必須指定:num_partitions, partition_column, lower_bound
create_table_column_types (str | None) – (僅適用於 spark_to_jdbc) 建立表時,要使用的資料庫列資料型別,而非預設型別。資料型別資訊應採用與 CREATE TABLE 列語法相同的格式指定 (例如: “name CHAR(64), comments VARCHAR(1024)”)。指定的型別應是有效的 spark sql 資料型別。
use_krb5ccache (bool) – 如果為 True,則配置 Spark 使用票據快取而不是依賴 keytab 進行 Kerberos 登入