破碎的dag试图将气流连接到雪花

时间:2019-07-17 00:42:45

标签: python airflow snowflake

我已经在python中构建了一个POC DAG,以使气流在雪花中执行功能,但是我在气流的UI中收到此错误:

损坏的DAG:[/ opt / bitnami / airflow / dags / snowflake_poc.py]没有名为“ snowflake”的模块

我已经阅读了很多文档,看来我已经正确配置了所有内容,但显然有些地方不对。

这是我的python代码:

from datetime import timedelta
import airflow
from airflow import DAG
from airflow.contrib.operators.snowflake_operator import SnowflakeOperator

# These args will get passed on to each operator
# You can override them on a per-task basis during operator initialization
default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': airflow.utils.dates.days_ago(2),
    'email': ['me@me.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG(
    'snowflake_poc',
    default_args=default_args,
    description='just executing a proc in snowflake',
    schedule_interval=timedelta(days=1),
)

sql = "call jme_test_1();"

t1 = SnowflakeOperator(sql = sql,
    warehouse = "DATA_WH",
    database = "DEV_ADS" )

我确实确认气流在应有的地方包含了rainbow_operatory.py文件,为了安全起见,我什至还运行了 pip install --upgrade Snow-connector-python 。在任何人问之前,是的,我确实在气流UI的“连接管理”部分中设置了与雪花的连接,但我陷入了这个神秘的错误。

我想念什么?

1 个答案:

答案 0 :(得分:0)

我们利用Azure市场应用程序来设置气流服务器,事实证明该服务器不能在雪花模式下正常工作。

我们通过在Putty中运行此命令进行了测试

$: python3
>>> import snowflake.connector

这引发了“没有名为'botocore.docs'的模块”,这只是告诉我们我们缺少boto3依赖项(必须对Google botocore进行搜索,并发现它是boto3包的一部分,因为我们使用的是python3)

然后我们只需要安装它:

$: sudo pip install --upgrade boto3

此后,Python代码将运行,但我们必须重新启动Web服务器以获取气流以吸起它。