使用 Redpanda 和 OpenMetadata 发现、协作并正确获取您的数据
使用 Redpanda 和 OpenMetadata 发现、协作并正确获取您的数据
了解如何将 Redpanda 数据提取到 OpenMetadata 以集中元数据。
这是与合作的帖子 红熊猫数据 .您可以在 Redpanda 上找到这篇文章的原始副本 博客 .
想象一下进入图书馆只是为了发现所有的书都躺在地板上,没有封面、书架或图书管理员!当您找到您正在寻找的标题时,将很难关心它的内容并完成您的工作。不幸的是,这是处理数据时的日常现实。
没有正确的 元数据 ——帮助我们理解数据本身的特性——从数据中获得洞察力的真正工作可能成为一项难以忍受的任务。我们有多少次看到数据分析师使用错误的表格?还是后端团队默默地更改架构,几周后才发现火?我们可以相信为我们公司的核心 KPI 提供支持的数据吗?收集和存储数据不再是可扩展存储和计算服务和平台的难题。主要的 挑战 如今,我们正在理解团队多年来一直在收集和创建的所有主题、表格、管道、仪表板和 ML 模型(仅举几例!)。
数据从业者现在已经意识到 解锁实际值 数据需要创建超越数据并专注于人的产品:
- 发现 适合其用例的资产
- 合作 做出最好的决定,以及
- 信任 他们的数据。
虽然这些想法可能会引起共鸣,但实际上实现它们意味着集成多个不相互通信的工具。在本教程中,我们将向您展示如何将 Redpanda 中的元数据提取到 开放元数据 ,一个由标准元数据语言和 API 提供支持的开源元数据管理平台。
用例
数据平台有多个专业团队——后端、数据工程、数据科学家和数据分析师。他们每个人都专注于数据的不同方面。然而,真正的价值和理解只能来自提供适当的背景。
举个例子:
- 一个后端团队生成事件并使用 Redpanda 管理它们,
- 在线数据库作为实时数据的快照,
- 一组 ETL 将实时数据整理到数据仓库中,最后,
- 向最终用户展示业务进展情况的仪表板。
我们的目标是打破知识孤岛,并通过展示所有部分如何交互来尽可能多地共享信息,从而在任何阶段为任何数据消费者带来快乐。打破团队之间的障碍是迈向更健康、更有利可图和可扩展的数据平台的第一步,而这只能通过透明和 合作 .
为了实现这一点,我们将使用 OpenMetadata 从服务中提取元数据,并提供一个单一的地方来发现和协作。在本篇博客中,我们将重点介绍 红熊猫 ,一个兼容 Kafka API 的流数据平台,在延迟和吞吐量方面都易于使用且速度超快。
设置 OpenMetadata
在本地计算机上启动 OpenMetadata 的最简单方法是使用 metadata
CLI,如 快速入门指南 .简而言之,它需要我们运行以下步骤:
pip3 install — 升级“openmetadata-ingestion[docker]” 元数据泊坞窗——开始
这将启动 OpenMetadata 服务器、作为元数据存储的 MySQL 实例、用于查询功能的 ElasticSearch 以及用于从源中提取元数据的 OpenMetadata Ingestion 容器。
设置 Redpanda
为了准备源,我们将使用这个 存储库 .在本地克隆并运行
码头工人组成
结果将是一个带有 Redpanda 代理的容器和一个模式注册表,我们在其中提供了一些示例主题。
摄取元数据
你可以关注这些 脚步 配置和部署 Redpanda 元数据摄取。
请注意,与我们的设置一样,Redpanda 和 OpenMetadata 都位于单独的 Docker Compose 部署中。因此,我们需要通过本地网络访问源。我们可以通过将 host.docker.internal
配置为主机名来实现这一点。
OpenMetadata UI 将引导我们完成两个主要步骤:
- 首先,创建 消息服务 :代表源系统的实体,在本例中为 Redpanda,它包含我们要提取的元数据。我们从该服务中摄取的所有实体(在本例中为主题)都将属于它。这使我们能够找到我们有效管理的元数据的来源。
- 创建和部署 摄取管道 : 由 OpenMetadata 在内部使用 摄取框架 ,一个 Python 库,包含连接多个源的逻辑,将其原始元数据转换为 OpenMetadata 标准,并使用 蜜蜂 .
从 UI 中,我们可以直接与服务及其部署的管道进行交互,而无需管理任何其他依赖项。
此外,工程师可以直接导入和使用 Ingestion Framework 包来配置和托管自己的摄取过程。最重要的是,在 UI 或摄取框架中发生的任何操作都是开放的并由服务器 API 支持。这意味着任何元数据活动的完全自动化可能性,可以直接通过 REST 或使用 开放元数据 SDK .
武装召唤
好的公司最喜欢数据,为了帮助所有团队和消费者,我们需要对资产进行更新和清晰的描述。如果我们检查已经摄取的元数据,我们会在导航到服务页面后找到以下列表:
如果我们随后访问任何主题:
我们可以观察到诸如分区、复制因子和模式定义等属性。这很好,但前提是你已经知道这个主题是关于什么的。另一方面,想象一下找到具有以下信息的相同实体:
- 我们添加了对资产用途和属性的适当描述,
- 该资产现在已拥有,使用户能够向正确的人或团队提问,
- 将资产标记为第 1 层通知用户这是一个业务关键源,
- 添加有关 PII 数据的标签有助于消费者和治理团队了解需要谨慎处理数据。
将相同的管理流程应用于数据平台的其余部分将有助于现有团队更有效地共享信息和协作,同时减少新成员的入职时间。
数据生命周期
由于计划(或意外)架构更改而导致仪表板损坏或 ETL 管道失败的频率如何?团队和需求不断发展,数据也必须随之发展。不幸的是,这是一个不会改变的现实。但是,我们可以改进我们检测和传达上述变化的方式。目标是尽量减少(并尽可能防止)任何停机和耗时的活动,例如回填。
能够部署和安排定期元数据摄取工作流将负责标记版本之间的差异。添加了新列? Table 版本增加了 0.1。删除列可能很可怕,所以版本增加了 1.0,就像软件一样。
最好的部分是所有版本的演变都被存储和探索。最重要的是,所有更改事件都可以通过设置一个 网络钩子 . OpenMetadata 支持开箱即用地链接 Slack 或 MS Teams 以通知团队。此外,将更改推送到 Redpanda 主题将是对不同事件进行细粒度响应控制的一种可能方法。
概括
在这篇文章中,我们探讨了数据团队的现代挑战,旨在缩小数据与人之间的差距。使用 OpenMetadata 设置 Redpanda,我们准备了一个元数据摄取流程,并探索了如何管理资产信息,以提供有关每个架构在数据平台中的位置的上下文。
最后,我们还介绍了数据演变如何影响团队并降低他们可以产生的价值。在 OpenMetadata 和 Redpanda 的帮助下,工程师可以及早发现变化,并根据数据演化自动化业务流程。
如有任何问题,您可以访问 文件 , 伸手进去 松弛 或检查 OpenMetadata 存储库 .如果您喜欢我们的帖子并想支持我们的项目,请给我们一个 在 GitHub 上加星 !
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明