本教程介绍如何在 IIoT 场景中使用 DolphinDB 缓存表同步数据。
DolphinDB 是一个高吞吐量的分布式时序数据库,专为工业物联网(IIOT)和金融领域的大数据分析场景而设计。
DolphinDB 中的数据分析通常是基于外部业务平台的产品基本信息(例如设备的 SKU、大小和存储)进行的,这些平台通常运行在关系数据库上。要将外部产品信息与 DolphinDB 中的时间序列数据相关联,您可以使用 缓存表将通过插件( MySQL、 MongoDB、CSV 文件等)获取的外部数据保存在内存中,并定期同步。
本教程介绍如何在 IIoT 场景中使用 DolphinDB 缓存表同步数据。
1.场景
在这种情况下,MySQL 表必须每分钟与 DolphinDB 缓存表同步以更新设备配置。
需要同步的数据如下:

2.解决方案
使用以下函数在 DolphinDB 中创建缓存表:
缓存表(updateFunc,retentionSeconds)
在哪里
- updateFunc是实现数据同步的函数。
- retentionSeconds是一个整数,表示在 DolphinDB 中更新表的频率(以秒为单位)。
2.1 程序
- 在 MySQL 中创建一个表(参见脚本:https://github.com/dolphindb/Tutorials_EN/blob/master/script/cachedTable/mysql_data.txt)。
- 安装DolphinDB MySQL 插件。
- 将数据从 MySQL 同步到 DolphinDB(参见下面的脚本)
login("admin","123456")
//load the MySQL plugin
loadPlugin("yourPluginsPath/mysql/PluginMySQL.txt")
use mysql
//define the function for data synchronization
def syncFunc(){
//retrieve table data from MySQL
conn = mysql::connect("127.0.0.1",3306,"root","123456","configDB")
t = load(conn,"config")
//return the table
return t
}
config=cachedTable(syncFunc,60)
select * from config2.2 验证
- 通过在 MySQL 中执行以下脚本来更新源表:
update configDB.config set frequency=10,maxvoltage=250,maxec=30;2. 更新后,打印 MySQL 和 DolphinDB 中的“config”表

这些表是相同的,表明更改已成功同步。
3. 小贴士
数据库之间的数据同步是工业物联网 (IIOT) 和金融领域的常见要求。它的设计不应增加系统间的依赖或维护成本。DolphinDB 缓存表是一种特殊的内存表。通过将产品基本信息同步到缓存表中,可以将其与分布式数据库中的时序数据关联起来,顺畅地进行业务查询。请注意,缓存表不适合实时数据同步。
在将代码部署到生产环境之前,请查看以下提示:
- 通过配置启动脚本startup.dos,在DolphinDB启动时用非空值初始化缓存表,提高容错能力。
- 通过跨会话共享缓存表来启用通过 API 的数据访问。
- 添加对传入数据的验证。
- 添加异常处理和日志记录。
原文标题:Synchronizing Basic Product Data From MySQL With DolphinDB Cached Tables
原文作者:Davis Zhou
原文链接:https://dzone.com/articles/synchronizing-basic-product-data-from-mysql-with-d




