热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

精彩联动|OpenMLDBPulsarConnector原理和实操

人工智能工程化落地的关键点之一,在于解决真实业务场景的实时批量预估和实时模型更新问题。更好更快的将线上实时数据转化为AI可用的特征,将加速AI应用落地的

人工智能工程化落地的关键点之一,在于解决真实业务场景的实时批量预估和实时模型更新问题。更好更快的将线上实时数据转化为AI可用的特征,将加速AI应用落地的效率及效果。为此,OpenMLDB 和 Apache Pulsar 合作推出OpenMLDB Pulsar Connector,实现稳定的流式集成,为高效打通实时数据到特征工程提供一条值得期待的清晰路径。


关于OpenMLDB

OpenMLDB 是一个开源机器学习数据库,致力于闭环解决 AI 工程化落地的数据治理难题。自 2021 年 6 月开源以来,OpenMLDB 优先开源了特征数据治理能力,依托 SQL 的开发能力,为企业提供全栈功能的、低门槛特征数据计算和管理平台。

OpenMLDB 包含 Feature Store 的全部功能,并且提供更为完整的 FeatureOps 全栈方案。除了提供特征存储功能,还具有基于 SQL 的低门槛数据库开发体验、面向特征计算优化的 OpenMLDB Spark 发行版,针对实时特征计算优化的索引结构,特征上线服务、企业级运维和管理等功能,让特征工程开发回归于本质——专注于高质量的特征计算脚本开发,不再被工程化效率落地所羁绊。


关于Apache Pulsar

Apache Pulsar 是下一代云原生消息流平台,在 2018 年 9 月毕业成为 Apache 软件基金会顶级项目。从 2012 年诞生时,Apache Pulsar 就前瞻性地采用了存储计算分离、分层分片的云原生架构,极大减轻用户在消息系统中遇到的扩展和运维困难。

Pulsar 通过特别的设计和抽象,统一地支持 Stream 和 Queue 两种消息消费模式,保持了 Stream 模式的高性能和 Queue 模式的灵活性。Pulsar 在保证大数据消息系统的性能和吞吐量的同时,提供了更多企业级的 Feature,包括方便的运维和扩展、灵活的消息模型、多语言 API、多租户、异地多备、数据的强持久性一致性等等,解决了现有开源消息系统的很多不足之处。同时,这种设计对容器非常友好,使得 Pulsar 成为流原生平台的理想选择。


OpenMLDB-Pulsar Connector


【Connector概述】


  1. 定位

OpenMLDB Pulsar Connector,高效打通实时数据到特征工程,大幅提升数据使用效率、助力开发者构建实时数据管道、使企业更专注和更高效的探索数据的商业价值。
在 Pulsar in OpenMLDB 的工作流中,Connector(位置如下图所示)帮助开发者轻松地将消息系统 Pulsar 与开源机器学习数据库 OpenMLDB 结合使用,面向机器学习发挥出 Pulsar 最强大的实时价值。

2、功能


  • Pulsar 可以使用 connector 来连接其他系统。Source connector 可以使其他系统的数据流入 Pulsar,sink connector 可以将消息流出至其他系统。
  • 可以通过 Connector Admin CLI 并结合 sources 和 sinks 子命令来管理 Pulsar connector(例如,创建、更新、启动、停止、重启、重载、删除以及其他操作)。
  • JDBC OpenMLDB Connector 支持了 sink 功能,使 Pulsar 消息可以写入到 OpenMLDB 在线存储中。

3、优势
为了使 OpenMLDB 与 Pulsar 拥有稳定的流式集成,OpenMLDB connector 具备诸多优势,包括但不限于:


  • 易上手。无需编写任何代码,只需进行简单配置,便可通过 OpenMLDB Pulsar Connector 将 Pulsar 的消息流入 OpenMLDB 。简化的数据导入过程能大幅提升企业的数据使用效率。
  • 易扩展。根据不同的业务需求,可以选择在单机或集群上运行 OpenMLDB Pulsar Connector,助力企业构建实时数据管道。
  • 可持续。OpenMLDB Pulsar Connector 简单的安装和部署过程,使企业能更专注和更高效地探索数据的商业价值。

4、Connector 下载地址

OpenMLDB Pulsar:

Connectorhttps://github.com/4paradigm/OpenMLDB/releases/download/v0.4.4/pulsar-io-jdbc-openmldb-2.11.0-SNAPSHOT.nar


【Connector演示】


1、流程介绍


  • 创建 connector 前需要启动 OpenMLDB 集群,并创建表。
  • 创建 Pulsar standalone,创建 sink,sink 配置中使用 OpenMLDB 集群的 JDBC 地址。并且,创建用于解析消息的 schema。
  • 向 Pulsar 发送消息,来测试消息是否能自动写入到 OpenMLDB。


2、关键步骤

以下仅列出使用此 connector 的关键步骤,详细说明文档请参考 Pulsar OpenMLDB Connector 使用

步骤1 | 启动 OpenMLDB 并创建表
使用 docker 或本地启动 OpenMLDB 集群,并创建表,作为 connector 导入的地址。如图所示,在 pulsar_test 数据库中,创建了 schema 和taxi trip demo 一致的表 connector_test。

步骤2 | 启动 Pulsar,创建 sink 和 schema
启动 Pulsar Standalone 成功后,即可使用 connector 创建一个 sink,connector 如果预先装载进入 Pulsar,可以使用"jdbc-openmldb"的 sink type,或是使用"archive"指定 connector nar 文件路径。演示中使用后者来创建。创建sink的配置中还需指定 OpenMLDB 的表地址,所以配置情况如下:

由于 OpenMLDB 表数据是有schema的,所以还需要在 pulsar 中为"test_openmldb"配置好 schema,才可以顺利将消息解析为符合O penMLDB schema 的数据并插入。
我们为"test_openmldb"配置 JSON Schema,各列和 OpenMLDB 的列属性一致。配置文件如下:

sink 和 schema 均创建完成后,只要向 topic “test_openmldb”(sink 配置图的"inputs"配置项)发送消息,就会自动写入到 OpenMLDB 集群。

步骤3 | 测试
前两步完成后,就可以进行测试了。测试用 Producer 关键代码如下:

我们用 Producer 程序向 Pulsar 写入两条 JSON Messages。然后,我们可以在 OpenMLDB 在线存储中查询到这两条数据。这说明了,connector 运行正常,可以将流入 Pulsar 的消息自动 sink 到 OpenMLDB 在线存储中。


写在最后

OpenMLDB 上下游生态体系

为更好降低开发者使用 OpenMLDB 的门槛,OpenMLDB 社区将持续打造面向上下游技术组件的生态圈,为开发者提供更多简单易用的生态 Connector(如下图所示):


  • 面向线上数据生态,如 Kafka,Flink,RabbitMQ,RocketMQ等
  • 面向离线数据生态,如 HDFS,HBase,Cassandra,S3等
  • 面向模型构建的算法、框架,如 XGBoost,LightGBM,TensorFlow,PyTorch,Scikit Learn等
  • 面向机器学习建模全流程的调度框架、部署工具,如 Airflow,Kubeflow,DolphinScheduler,Prometheus,Grafana 等

OpenMLDB Roadmap

v0.5.0

OpenMLDB社区将于4月底发布v0.5.0版本([DEV] OpenMLDB v0.5 Roadmap · Issue #1506 · 4paradigm/OpenMLDB · GitHub ),届时OpenMLDB将具备新特性如下:


  • 窗口预聚合技术,指数级提升长窗口聚合性能
  • 完善的监控, trace, 和 profiling 能力,在企业级应用环境中大幅提升稳定性、可观测性、和可分析性
  • 线上存储引擎可插拔以适配不同业务需求,既可以支持基于内存的高性能存储引擎,也可以支持基于外存的大容量低成本存储引擎,还可以支持基于持久内存的存储引擎以在性能和成本间保持平衡
  • 用户自定义函数(UDF)支持,大幅提升易用性和适用性
  • 上下游数据源生态整合,提供线上数据源的 Kafka, Pulsar connectors

AI 的进步需要付出多方面的努力,而开放式协作是其中的关键环节,我们期待来自开发者的贡献。欢迎大家加入 OpenMLDB 社区,扫描下方二维码可加入社区技术交流微信群。

或可官网社区板块最下方找到入群通道 https://openmldb.ai/community/


相关阅读

https://github.com/4paradigm/OpenMLDB/issues/1506
(OpenMLDB Pulsar Connector)
https://openmldb.ai/docs/zh/v0.4/about/index.html
(OpenMLDB文档)
Built-in connector · Apache Pulsar
(Apache Pulsar connector文档,OpenMLDB Pulsar Connector位置如图所示)


推荐阅读
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • Docker入门指南:初探容器化技术
    Docker入门指南:初探容器化技术摘要:Docker 是一个使用 Go 语言开发的开源容器平台,旨在实现应用程序的构建、分发和运行的标准化。通过将应用及其依赖打包成轻量级的容器,Docker 能够确保应用在任何环境中都能一致地运行,从而提高开发和部署的效率。本文将详细介绍 Docker 的基本概念、核心功能以及如何快速上手使用这一强大的容器化工具。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 美团优选推荐系统架构师 L7/L8:算法与工程深度融合 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
author-avatar
lksxq_468
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有