首页 > 解决方案 > Python SnowflakeOperator 设置 snowflake_default

问题描述

美好的一天,我找不到如何进行基本设置airflow.contrib.operators.snowflake_operator.SnowflakeOperator以连接到雪花。snowflake.connector.connect工作正常。

当我这样做时SnowflakeOperator

op = snowflake_operator.SnowflakeOperator(sql = "create table test(*****)", task_id = '123')

我明白了

airflow.exceptions.AirflowException: The conn_id雪花默认isn't defined

我试图插入后端sqlite db

INSERT INTO connection( conn_id, conn_type, host , schema, login, password , port, is_encrypted, is_extra_encrypted ) VALUES (*****)

但之后我得到一个错误:

snowflake.connector.errors.ProgrammingError: 251001: None: Account must be specified.

account将 kwarg 传递给构造SnowflakeOperator函数没有帮助。似乎我无法将帐户传递给数据库或构造函数,但这是必需的。

请帮助我,让我知道我应该将哪些数据插入后端本地数据库以便能够通过SnowflakeOperator

标签: python-3.xairflowsnowflake-cloud-data-platform

解决方案


转到 Admin -> Connections 并snowflake_default像这样更新连接:

基于源代码airflow/contrib/hooks/snowflake_hook.py:53,我们需要添加这样的附加功能:

{
    "schema": "schema",
    "database": "database",
    "account": "account",
    "warehouse": "warehouse"
}

在此处输入图像描述


推荐阅读