JdbcOperator¶
Java 数据库连接 (JDBC) 是一种应用程序编程接口 (API),用于 Java 编程语言,它定义了客户端如何访问数据库。
警告
先前,JdbcOperator 被用於執行這類操作。但目前 JdbcOperator 已被棄用,並將在供應商的未來版本中移除。請考慮盡快切換到 SQLExecuteQueryOperator。
先決條件任務¶
要使用此運算子,您需要
安裝 python 模組 jaydebeapi: .. code-block:: bash
pip install apache-airflow[jdbc]
安裝 JVM 並新增
JAVA_HOME
環境變數。安裝適用於您資料庫的 JDBC 驅動程式。
一旦滿足這些先決條件,您應該能夠執行此 Python 代码片段(將變數值替換為與您的驅動程式相關的值)。
其他錯誤訊息將在 jaydebeapi
模組遺失或驅動程式不可用時通知您。 Connection Refused
錯誤表示連線字串指向沒有資料庫正在監聽新連線的主機。
driver_class = "com.exasol.jdbc.EXADriver" driver_path = "/opt/airflow/drivers/exasol/EXASolution_JDBC-7.0.2/exajdbc.jar" connection_url = "jdbc:exa:localhost" credentials = ["", ""] conn = jaydebeapi.connect( driver_class, connection_url, credentials, driver_path, )
使用方式¶
使用 SQLExecuteQueryOperator
來執行針對可透過 JDBC 驅動程式存取的資料庫(或資料儲存)的命令。
JDBC 連線 必須作為 conn_id
傳遞。
insert_data = SQLExecuteQueryOperator(
task_id="insert_data",
sql="insert into my_schema.my_table select dt, value from my_schema.source_data",
conn_id="my_jdbc_connection",
autocommit=True,
)
參數 sql
可以接收字串或字串列表。每個字串可以是 SQL 語句或對範本檔案的參考。範本參考透過以「.sql」結尾來識別。
如果將參數 autocommit
設定為 True
,則會在每個命令後執行提交(預設為 False
)