【问题标题】:Is there a way to run SnowflakeOperator, SnowflakeHook locally in a non-Airflow script?有没有办法在非 Airflow 脚本中本地运行 SnowflakeOperator、SnowflakeHook?
【发布时间】:2022-01-13 15:43:44
【问题描述】:

我有一些使用 SnowflakeOperator 和 SnowflakeHook 的 DAG。他们都使用 snowflake_connection 输入连接到 Snowflake,我已将其保存在 Airflow 中的 Admin > Connections 下。

SnowflakeHook(
    snowflake_conn_id="snowflake_connection",
    database='SOME_DB',
    schema='PUBLIC'
)

虽然这种安排在 Airflow 环境中有效,但我想在我的定位机器中将代码作为常规脚本运行。但它无法访问我保存在 Airflow 中的 snowflake_connection。有什么解决方法吗?

有没有办法可以直接向SnowflakeHook 和SnowflakeOperator 提供连接字符串或用户名/密码来建立数据库连接?

【问题讨论】:

    标签: python airflow etl airflow-2.x snowflake-connector


    【解决方案1】:

    您可以模拟连接。

    
    conn = Connection(
        conn_type="gcpssh",
        login="cat",
        host="conn-host",
    )
    conn_uri = conn.get_uri()
    with mock.patch.dict("os.environ", AIRFLOW_CONN_MY_CONN=conn_uri):
        assert "cat" == Connection.get("my_conn").login
    

    详情见:Mocking variables and connections

    【讨论】:

      猜你喜欢
      • 2023-02-03
      • 2020-05-07
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 2019-01-17
      • 2011-09-18
      • 1970-01-01
      • 2019-09-12
      相关资源
      最近更新 更多