SQLExecuteQueryOperator 连接到 Apache Druid

使用 SQLExecuteQueryOperator 来针对 Apache Druid 集群执行 SQL 查询。

注意

之前可能使用了专用的 Druid operator。在弃用后,请改用 SQLExecuteQueryOperator

注意

请确保已安装 apache-airflow-providers-apache-druid 软件包以启用 Druid 支持。

使用 Operator

使用 conn_id 参数连接到您的 Apache Druid 实例,连接元数据结构如下

Druid Airflow 连接元数据

参数

输入

主机:字符串

Druid broker 主机名或 IP 地址

Schema:字符串

不适用(留空)

登录名:字符串

不适用(留空)

密码:字符串

不适用(留空)

端口:整数

Druid broker 端口(默认:8082)

额外:JSON

附加连接配置,例如:{"endpoint": "/druid/v2/sql/", "method": "POST"}

使用 SQLExecuteQueryOperator 连接到 Apache Druid 的示例如下

tests/system/apache/druid/example_druid.py


    # Task: List all published datasources in Druid.
    list_datasources_task = SQLExecuteQueryOperator(
        task_id="list_datasources",
        sql="SELECT DISTINCT datasource FROM sys.segments WHERE is_published = 1",
    )

    # Task: Describe the schema for the 'wikipedia' datasource.
    # Note: This query returns column information if the datasource exists.
    describe_wikipedia_task = SQLExecuteQueryOperator(
        task_id="describe_wikipedia",
        sql=dedent("""
            SELECT COLUMN_NAME, DATA_TYPE
            FROM INFORMATION_SCHEMA.COLUMNS
            WHERE TABLE_NAME = 'wikipedia'
        """).strip(),
    )

    # Task: Count rows for the 'wikipedia' datasource.
    # Here we count the segments for 'wikipedia'. If the datasource is not ingested, it returns 0.
    select_count_from_datasource = SQLExecuteQueryOperator(
        task_id="select_count_from_datasource",
        sql="SELECT COUNT(*) FROM sys.segments WHERE datasource = 'wikipedia'",
    )

参考

更多信息,请参阅

注意

通过 SQLExecuteQueryOperator() 直接提供的参数优先于 Airflow 连接元数据中指定的参数(如 schemaloginpassword 等)。

此条目是否有帮助?