在过去的五年里,Debezium 已成为各种数据库变更数据捕获(CDC)的领先开源解决方案。来自各行各业的用户使用 Debezium 来实现数据从操作数据库复制到数据仓库、更新缓存和搜索索引、通过 Kafka Streams 或 Apache Flink 驱动流式查询、同步微服务之间的数据等多种用例。

在与 Debezium 用户交流时,我们通常会收到关于 Debezium 提供的应用范围及其灵活性的良好反馈:例如,每个连接器都可以根据您的具体需求进行各种配置和微调。大量的指标提供了对运行中的 Debezium 连接器状态的深入了解,从而可以安全地在拥有数千个连接器的巨大安装环境中运行 CDC 管道。

然而,这一切都伴随着一定的学习曲线:新接触 Debezium 的用户需要了解不同的选项和设置,并学习在生产环境中运行 Debezium 的最佳实践。因此,我们一直在探索如何进一步改善 Debezium 的用户体验,让人们能够更轻松地设置和操作其连接器。

今天,我非常高兴地向大家介绍一个潜在的未来 **Debezium 图形用户界面** 的概念验证(PoC)。这个 PoC 的目标是探索图形界面如何能为 Debezium 用户提供更便捷的入门和操作体验。

PoC 的范围是配置和实例化 Debezium Postgres 连接器的设置流程。用户通过一个向导式界面,引导完成所需的配置步骤,从必填信息(例如数据库凭证)开始,到选择要捕获的表,再到可选的设置,例如不同的数据映射选项。在审查完最终配置后,UI 将在 Kafka Connect 中实例化该连接器。

您可以在此视频中看到一个简短的演示,展示了它的外观:

我们关注了一些核心的交互模式,例如选择捕获表的预览功能。UI 不仅仅是获取配置参数的键/值对,它应该引导用户完成整个过程,提供上下文和帮助,例如通过下拉菜单显示设置的允许选项,在每一步之后验证提供的设置,等等。

这仅仅是个开始,在这样的 Debezium UI 中还有很多事情可以做,例如在连接配置步骤中,我们可以验证给定用户是否拥有所有必需的数据库权限,数据库中是否设置了正确的 WAL 级别等。还可以有用于监控和故障排除连接器的视图。当在 Kubernetes 上运行时,UI 可以生成资源定义,由 Strimzi 等 Kafka(连接器)操作符进行处理(而不是调用 Kafka Connect REST API),等等。

但在进一步推进之前,我们希望收集您的反馈和意见:您是否认为 Debezium 的图形用户界面总体上有用,并且是您会在项目中使用它吗?您对 PoC 中目前实现的功能有什么反馈?除了连接器配置之外,您还希望在 Debezium UI 中看到哪些其他功能?我们提供了一个简短的调查问卷,其中包含这些问题和其他一些问题。

在填写问卷之前,请观看视频或自己运行 PoC(见下文)。回答这些问题应该只需要几分钟时间;您的参与对我们决定是否以及如何推进这项工作非常有帮助。

自己尝试

与 Debezium 中的一切一样,UI PoC 完全开源(Apache 许可证 2.0 版本);您可以在 GitHub 上的 Debezium 组织下找到其 源代码。该 PoC 是作为一个基于 Quarkus 的 Web 应用程序实现的,并使用 React 作为前端技术。

Quarkus 后端配置有一个或多个 Kafka Connect 集群的 URL。请注意,目前 PoC 中没有实现身份验证或授权机制,因此请暂时不要将其用于生产环境的 Connect 集群。启动应用程序后,您可以从右上角的下拉菜单中选择要操作的集群。与视频录制中所示不同,“删除”按钮现在在 PoC 中也能正常工作了 ;) 有一个示例 Docker Compose 文件,它可以快速启动所有必需的组件。或者,您也可以从 Docker Hub 获取一个带有 Debezium UI PoC 的 预构建容器镜像。有关构建和运行 Debezium UI PoC 的更多详细信息,请参阅 README 文件

我们非常期待了解您对 Debezium UI PoC 的反馈。请亲自尝试一下,并在下方的评论区以及通过参与上面链接的快速调查告诉我们您的想法。

非常感谢参与此 PoC 的团队:Ashique Ansari、Indra Shukla、June Zhang、Mark Drilling、Na Ding 和 René Kerner!

Gunnar Morling

Gunnar 是一位软件工程师,内心是一个开源爱好者,目前在 Confluent 担任技术专家。此前,他曾帮助构建一个基于 Apache Flink 的实时流处理平台,并领导了 Debezium 项目,这是一个用于变更数据捕获的分布式平台。他是 Java Champion,并创立了多个开源项目,如 JfrUnit、kcctl 和 MapStruct。Gunnar 是一位热情的博主 (morling.dev),并曾在 QCon、Java One 和 Devoxx 等各种会议上发表演讲。他居住在德国汉堡。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

我们希望您觉得 Debezium 有趣且有用,并希望尝试一下。在 Twitter @debezium 上关注我们,在 Zulip 上与我们聊天,或加入我们的 邮件列表 与社区交流。所有代码都在 GitHub 上开源,因此请在本地构建代码,帮助我们改进现有连接器并添加更多连接器。如果您发现问题或有改进 Debezium 的想法,请告诉我们或 记录一个问题

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×