无法在Apache Airflow中设置DB2 / DashDB JDBC连接

hk8txs48  于 2022-11-07  发布在  DB2
关注(0)|答案(2)|浏览(157)

我正在尝试使用Airflow UI创建DB2 / DashDB连接。
我尝试运行简单查询(在即席UI中),但总是得到相同的错误
java.lang.RuntimeException:未找到类com.ibm.db2.jcc.DB2Driver.class
以前有没有人需要在Apache Airflow中设置DB2 / DashDB连接?
在网上找不到这方面的资料。
谢谢

hgtggwj0

hgtggwj01#

可能是愚蠢的事情检查,但要确保你没有任何前导空格在连接url,驱动程序路径和驱动程序类。同样“气流”用户(或任何人正在运行气流进程应该有访问驱动程序路径。

bz4sfanl

bz4sfanl2#

如果您还没弄明白,我也遇到了同样问题
经过一些调试,我发现www.example.com中的文件jdbc_hook.pyhttps://github.com/apache/incubator-airflow/blob/master/airflow/hooks/jdbc_hook.py#L55缺少jaydebeapi.connect方法调用中所需的1个参数。
特别是缺少第二个参数,该参数应该是连接的URL。
我将方法get_conn中的代码更改为以下代码进行了测试,结果成功了。

def get_conn(self):
    ......

    conn = jaydebeapi.connect(jdbc_driver_name,
                             host,
                      driver_args=[str(login), str(psw)],
                              jars=jdbc_driver_loc)
    return conn

请注意,host已加入至jaydebeapi.connect的呼叫。
我想打开一个公关,但后来审查,他们已经在几个地方的东西(搜索jdbc在Airflow的公关):
https://github.com/apache/incubator-airflow/pull/2227

相关问题