Apache Airflow Providers Druid9 Jun 2025 | 9分钟阅读 引言Apache Airflow 是一个用于以编程方式创建、调度和监控工作流的开源平台。它因其灵活性和可扩展性而在数据工程师和分析师中广受欢迎。凭借丰富的提供程序生态系统,Airflow 能够与各种外部系统无缝集成,让用户能够自动化复杂的数据管道。 另一方面,Druid 是一个高性能的实时分析数据库,专为处理大数据集的快速聚合和低延迟查询而设计。Druid 被广泛用于支持实时仪表板和分析应用程序,在需要对事件驱动数据进行高查询性能的场景中表现出色。 Druid 提供程序的特点Druid HookDruid Hook 提供了一个基于 Python 的接口,可以与 Druid 端点无缝交互。它充当 Airflow 和 Druid 之间的桥梁,使开发人员能够以编程方式执行任务,例如提交摄取规范或运行 SQL 查询。 主要功能包括
Druid Operators该提供程序包含预定义的运算符,用于执行 Druid 特定的操作,从而在无需自定义代码的情况下更轻松地自动化复杂工作流。这些运算符是为常见的 Druid 任务量身定制的,例如:
通过使用这些运算符,用户可以标准化 Druid 相关的工作流,同时减少开发工作量。 连接管理Druid 提供程序通过利用 Airflow 内置的连接框架,简化了连接设置和管理。用户可以:
这种简化的方法可以最大限度地减少错误,并确保到 Druid 集群的安全、一致的连接。 任务日志记录该提供程序增强了 Druid 相关工作流的任务日志记录功能,提供了对任务执行的详细可见性。好处包括:
有效的日志记录可提高运营可靠性,并帮助团队快速解决生产管道中的问题。 版本兼容性Druid 提供程序会定期更新,以保持与最新版 Apache Airflow 和 Apache Druid 的兼容性。这些更新可确保:
在 Airflow 中设置 Druid 提供程序安装 要使用 Druid 提供程序,您需要使用 pip 进行安装。 该软件包可在 PyPI 上找到,并可按如下方式安装: 确保您的 Airflow 环境满足 Druid 提供程序的所需版本先决条件。 配置连接要与 Druid 集群交互,您需要在 Airflow 中配置一个连接。以下是设置方法:
填写连接详细信息
验证安装配置完连接后,通过运行一个与 Druid 交互的简单 DAG(有向无环图)来测试集成。在继续进行更复杂的工作流之前,请确保连接功能正常。 Druid 提供程序的核心组件 Druid Hook:Druid Hook (DruidHook) 是与 Druid 交互的核心接口。它提供了提交任务、查询数据和监控摄取作业的方法。
示例 DruidHook 对于将 Airflow 与 Druid 连接至关重要。通过使用 hook,用户可以以编程方式运行查询、摄取数据并跟踪作业状态。以下是分步演示: 步骤 1:导入 DruidHook 类 首先,从 airflow.providers.druid.hooks.druid 模块导入 DruidHook 类: 步骤 2:建立连接 创建 DruidHook 的实例,指定在 Airflow 环境中配置的连接 ID: 步骤 3:定义查询 以 JSON 格式创建 Druid 查询。查询类型、数据源、时间间隔、粒度、维度和聚合都应与您的用例保持一致: 步骤 4:执行查询 使用 DruidHook 的 run_query 方法执行查询并捕获结果: 此代码向 Druid 提交一个 groupBy 查询,请求指定时间间隔内按国家分组的每日用户计数。请用与您的用例相关的那个替换数据源和查询详细信息。 Druid OperatorsDruidOperator 用于在 Druid 中提交和监控摄取作业。 参数
示例 以下 DAG 演示了如何使用 DruidOperator 提交摄取作业: 此 DAG 定义了一个将摄取作业提交到 Druid 的单个任务。json_index_file 参数指定了摄取规范,该规范描述了数据应如何摄取到 Druid 中。确保 JSON 规范文件格式正确且 Airflow 环境可访问。 Druid CheckOperatorDruidCheckOperator 旨在通过运行查询并根据预期值验证结果来验证 Druid 中的数据。这对于在工作流中实现数据质量检查特别有用。 参数
示例 以下是如何使用 DruidCheckOperator 来验证 Druid 中的数据: data_quality_check 在此示例中,DruidCheckOperator 执行一个查询,以计数 my_datasource 数据源中 country 为“US”的记录数。它将结果与预期值(100)进行比较。如果结果不匹配,任务将失败,这表示潜在的数据质量问题。 Druid 连接设置在 Airflow UI 中或通过环境变量配置的连接可简化对 Druid 集群的访问。这些连接集中了身份验证和连接详细信息,减少了任务之间的冗余。通过正确设置的连接,您可以增强工作流的可维护性、安全性和可重用性。 Druid 连接的组件
连接配置以下是使用 Airflow UI 的 Druid 连接配置示例: 连接 ID:druid_default 连接类型:Druid 主机:druid-cluster.company.com 端口 8082 额外 通过环境变量设置连接除了 Airflow UI,您还可以通过环境变量定义连接,以实现自动化部署或 CI/CD 流水线。 示例环境变量配置 通过将连接定义为环境变量,您可以无需通过 UI 进行手动配置,这对于容器化部署非常有利。 连接设置的最佳实践
Druid 提供程序的使用场景
疑难解答常见问题
apache-airflow-providers-druid 包弥合了 Apache Airflow 和 Apache Druid 之间的差距,实现了数据工作流的无缝自动化。凭借其强大的 hooks、operators 和连接管理功能,此提供程序使用户能够高效地集成、管理和监控数据管道。
apache-airflow-providers-druid 包是 Airflow Providers 生态系统的一部分。Airflow 中的 Providers 是包含各种外部系统、工具和数据库集成模块。Druid 提供程序为 Airflow 用户提供了以编程方式与 Druid 集群交互所需的工具。 |
我们请求您订阅我们的新闻通讯以获取最新更新。