【问题标题】:Connect to ClickHouse from airflow DAG从气流 DAG 连接到 ClickHouse
【发布时间】:2020-10-19 12:18:35
【问题描述】:

我写了这段代码:

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)

此错误仅发生在气流 dag 中。 我通过气流的 Web UI 建立了一个连接“ClickHouse_rnd_conn”。也许问题是气流没有连接类型“clickhouse”,我使用类型“HTTP”

【问题讨论】:

    标签: python airflow clickhouse


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2021-10-01
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多