微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从气流DAG连接到ClickHouse

如何解决从气流DAG连接到ClickHouse

我写这段代码

from airflow import DAG
from airflow.hooks.clickhouse_hook import ClickHouseHook
from airflow.operators.python_operator import Pythonoperator
from airflow.utils.dates import days_ago
from datetime import datetime 

default_args = {
    'owner': 'airflow','depends_on_past': False,'start_date': datetime(2020,10,18)    
}

def _data_from_clickhouse():
    
    
    ch_hook = ClickHouseHook(clickhouse_conn_id='ClickHouse_rnd_conn')   
    ch_hook.get_records('select * from cpa_traffic_costs')


with DAG(dag_id='data_to_clickhouse',default_args=default_args) as dag:  
        
    get_data_from_clickhouse = Pythonoperator(
        task_id='get_data_from_clickhouse',python_callable=_data_from_clickhouse,)
    
    get_data_from_clickhouse

但是在Web UI中启动此dag时出现错误

clickhouse_driver.errors.socketTimeoutError: Code: 209. (85.***.***.***:8123)

错误仅在气流减慢中发生。 我通过气流的Web UI设置了连接“ ClickHouse_rnd_conn”。也许问题是气流没有连接类型“ clickhouse”,而我使用了“ HTTP”类型

解决方法

您可能使用了错误的端口,请参阅this github issue

此驱动程序使用本机协议(端口9000)。端口8123用于HTTP协议。

,

clickhouse_driver.errors.SocketTimeoutError:代码:209。(85. 。***:8123)

您的Web UI主机没有访问85. 。***:8123的权限? 防火墙位于CH服务器和Web UI主机之间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。