MssqlHook Airflow连接

3

我是新手使用airflow,我需要做的是使用MssqlHook,但我不知道该怎么做。在构造函数中应该提供哪些元素?

我在airflow中有一个名为connection_test的连接。

我不完全理解类中的属性:

class MsSqlHook(DbApiHook):
    """
    Interact with Microsoft SQL Server.
    """

    conn_name_attr = 'mssql_conn_id'
    default_conn_name = 'mssql_default'
    supports_autocommit = True

我有以下代码:

sqlhook=MsSqlHook(connection_test)
sqlhook.get_conn()

当我这样做时,出现错误连接失败,原因未知

为了使它与airflow连接正常工作,我该怎么做?

我需要调用MsSqlHook的函数.get_conn()。

1个回答

5
请查看Airflow的标准示例。
例如: https://github.com/gtoonstra/etl-with-airflow/blob/master/examples/mssql-example/dags/mssql_bcp_example.py
t1 = MsSqlImportOperator(task_id='import_data',
                         table_name='test.test',
                         generate_synth_data=generate_synth_data,
                         mssql_conn_id='mssql',
                         dag=dag)

编辑

hook = MsSqlHook(mssql_conn_id="my_mssql_conn")
hook.run(sql)

你需要提供在Connections中定义的连接。如果使用钩子,则通常在相应的Operators中查找可以获得有关用法的一些信息。这段代码来自MSSQLOperator。


我不想使用 MsSqlOperator,只想在 Python 脚本中使用 MsSqlHook。 - user8493821
我按照你说的尝试了,但错误仍然相同。有没有一种方法可以在脚本内打印Airflow连接详细信息,以查看正在使用哪个连接以及使用了什么凭据? - user8493821
@AndreeaA 这是什么意思,你复制了代码吗?你创建了一个 MSSQL 连接吗?你需要提供一个字符串作为名称。 - tobi6
请注意,在调用操作器或钩子时,您可能需要设置 autocommit=True - Gabe
对于参考,标准版的Airflow中没有MsSqlImportOperator。那是某个人构建的自定义operator。 - Gabe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接