OpenMLDB 正式发布线上到线下数据自动同步工具
OpenMLDB 作为一个线上线下一致的实时特征计算平台,通过合理的线上线下数据存储,确保线上到线下数据的一致性。由于线上和线下数据有不同性能和数据量的需求,通常情况下,OpenMLDB 的线上和线下的数据在物理上是分开存储。
在以前版本中,需要用户自行维护线上线下数据的同步和一致性,带来了一定的维护复杂度。近期,OpenMLDB v0.8.0 正式推出自动化线上到线下数据同步工具,实现了从实时数据库到离线数仓的自动同步,改进了手动维护的运维复杂度。下表总结了两种不同使用方式的优劣势。
线上线下数据同步方式 | 使用方式 | 优势 | 不足 |
---|---|---|---|
手动维护和同步 | 默认使用方式 | 用户对于数据存储具备完全控制权,可以按照自己需求进行存储行为设计 | 一定的开发和维护复杂度,用户需要自己维护数据的写入、保证一致性等问题 |
线上到线下数据自动同步 | 单独配置同步工具 | 典型使用场景下更为易用,用户无需自己写代码实现线上到线下数据同步 | 目前版本的实时数据库仅支持磁盘表 |
线上到线下数据存储自动化同步工具的架构如下图所示,用户只需要将新的数据写入 OpenMLDB 线上实时数据库,并设置好线上到线下的同步机制,OpenMLDB 即可自动化地将数据实时或者定时地同步至一个或者多个离线数仓。OpenMLDB 的实时数据库根据数据过期机制仅保存用于线上特征计算的数据,而离线数仓将保留所有全量数据。
图1 线上到线下数据自动化同步
线上到线下自动同步实战演示
使用线上到线下自动同步功能,需要在每台 TabletServer 所在机器上部署至少一台 DataCollector,用于收集在线数据。接收并写入离线存储的工具 SyncTool 可放于任何机器,目前仅支持单体运行。详细部署方式见最新产品相关文档(https://openmldb.ai/docs/zh/main/tutorial/online_offline_sync.html )。注意,目前在线存储仅支持磁盘表,离线支持写入到 HDFS。
接下来将以Docker镜像为例,展示在离线同步方式。主要分为以下四步:
- HDFS 环境配置,作为离线存储地址
- OpenMLDB 部署,包含同步组件
- 创建 OpenMLDB 线上到线下的同步任务