“Apache Beam 及其对执行引擎的抽象对我们来说意义重大。它节省了大量的开发工作……如果我们自己构建对 Dataflow 或 Spark 的支持,那将非常困难。这种技术的存在本身就很神奇,真是太棒了!不必担心所有底层的平台 - 真是太棒了!”
使用 Apache Hop 进行可视化 Apache Beam 数据管道设计和编排
背景
Apache Hop 是一款开源数据编排和数据工程平台,旨在通过可视化管道开发环境简化数据处理的各个方面。这个易于使用、快速且灵活的平台使开发人员能够在 Hop GUI 中创建和管理 Apache Beam 批处理和流式管道。Apache Hop 使用元数据和内核来描述数据应该如何处理,使用 Apache Beam 来实现“一次设计,随处运行”。
Neo4j 的首席解决方案架构师,Matt Casters,是 Apache Beam 及其对执行引擎的抽象的早期采用者。Matt 几年来一直是 Apache 开源社区的积极成员,并利用 Apache Beam 作为执行引擎来构建 Apache Hop。
Apache Hop 项目
Apache Beam 越来越受欢迎,全球范围内越来越多的 Apache Beam 用户,这启发了 Matt Casters 将抽象的概念扩展到可视化管道生命周期管理和开发。Matt 联合创立并孵化了 Apache Hop 项目,该项目于 2021 年 12 月成为 Apache 软件基金会 的顶级项目。该平台使所有技能水平的用户能够构建、测试、启动和部署强大的数据工作流,无需编写代码。Apache Hop 的直观的拖放界面提供了 Apache Beam 管道的可视化表示,简化了管道设计、执行、预览、监控和调试。
我一直是 Beam 的忠实粉丝。Apache Beam 现在是 Apache Hop 项目中非常重要的组成部分。
Apache Hop GUI 允许数据专业人员以可视化的方式工作,专注于“做什么”而不是“怎么做”,使用元数据来描述 Apache Beam 管道应该如何处理。Apache Hop 的 与转换无关 的操作插件 (“hops”) 将转换链接在一起,创建一个管道。各种 Apache Beam 运行器,例如 Spark 、Flink 、Dataflow 以及 Direct 运行器,在 Apache Hop 的 元数据提供程序 和 工作流引擎(插件) 的帮助下读取元数据,并执行管道。
Apache Hop 的自定义插件和针对 一些最流行技术 的元数据对象,例如 Neo4j,使用户能够在 Apache Beam 管道中执行特定于数据库和技术的转换,从而实现本地优化的连接和灵活的 Apache Beam 管道配置。例如,Apache Hop 的 Neo4j 插件 将 Apache Beam 管道的日志记录和执行血统存储在 Neo4j 图数据库中,并使用户能够查询此信息以获取更多详细信息,例如快速跳转到发生错误的位置。Apache Hop 转换、Apache Beam 内置 I/O 和 Apache Beam 支持的数据处理的结合,为更多接收器和源以及自定义用例打开了新的视野。
Apache Hop 旨在为 Apache Beam 数据管道带来无代码方法。有时,对特定编程语言、框架或引擎的选择是由开发人员的偏好决定的,这会导致企业绑定到特定的技术技能集和堆栈。Apache Hop 通过抽象出 I/O,提供完全可插拔的运行时支持,并在 Apache Beam 管道之上提供图形用户界面,消除了这种依赖关系。管道元素的所有设置都在 Hop 的可视化编辑器中执行一次,管道会自动以 JSON 和 CSV 格式描述为元数据。编程数据管道的源代码成为一种选择,而不是必要条件。Apache Hop 不需要了解特定的编程语言来创建管道,这有助于采用 Apache Beam 统一的流式和批处理技术。
总的来说,对于非开发人员受众而言,可视化管道设计界面非常宝贵……在降低设置成本、维护成本、提高 ROI 以及随着时间的推移保护投资方面,我们明确地站在组织一边。
结果
Apache Beam 不断扩展其支持的用例和场景数量,并使先进的技术解决方案成为现实。Matt Casters 是 Apache Beam 及其强大抽象功能的早期采用者,他利用这些知识和经验创建了 Apache Hop。该平台通过启用可视化管道开发和生命周期管理,为 Apache Beam 用户创造了附加值。
Matt 将 Apache Beam 视为 Apache Hop 的基础和驱动力。Apache Beam 和 Apache Hop 项目之间的沟通不断促进共同创建,并为两个产品增添了新功能。
Apache Hop 项目是 Apache 开源社区推动持续改进,并由协作组织放大的一个例子。
知识共享和协作是社区中自然而然的事情。如果我们发现一些改进空间,我们会交换想法,这样,我们就能不断推动 Apache Beam 和 Apache Hop 项目向前发展。我们可以共同应对最复杂的问题,并找到解决方案。
这些信息对您有帮助吗?