SQLExecuteQueryOperator 连接到 Apache Druid¶
使用 SQLExecuteQueryOperator
来针对 Apache Druid 集群执行 SQL 查询。
注意
之前可能使用了专用的 Druid operator。在弃用后,请改用 SQLExecuteQueryOperator
。
注意
请确保已安装 apache-airflow-providers-apache-druid
软件包以启用 Druid 支持。
使用 Operator¶
使用 conn_id
参数连接到您的 Apache Druid 实例,连接元数据结构如下
参数 |
输入 |
---|---|
主机:字符串 |
Druid broker 主机名或 IP 地址 |
Schema:字符串 |
不适用(留空) |
登录名:字符串 |
不适用(留空) |
密码:字符串 |
不适用(留空) |
端口:整数 |
Druid broker 端口(默认:8082) |
额外:JSON |
附加连接配置,例如: |
使用 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 连接元数据中指定的参数(如 schema
、login
、password
等)。