暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

将 MySQL 的基本产品数据与 DolphinDB 缓存表同步

原创 小小亮 2022-12-14
379

本教程介绍如何在 IIoT 场景中使用 DolphinDB 缓存表同步数据。


DolphinDB 是一个高吞吐量的分布式时序数据库,专为工业物联网(IIOT)和金融领域的大数据分析场景而设计。

DolphinDB 中的数据分析通常是基于外部业务平台的产品基本信息(例如设备的 SKU、大小和存储)进行的,这些平台通常运行在关系数据库上。要将外部产品信息与 DolphinDB 中的时间序列数据相关联,您可以使用 缓存表将通过插件( MySQL、  MongoDB、CSV 文件等)获取的外部数据保存在内存中,并定期同步。

本教程介绍如何在 IIoT 场景中使用 DolphinDB 缓存表同步数据。

1.场景

在这种情况下,MySQL 表必须每分钟与 DolphinDB 缓存表同步以更新设备配置。

需要同步的数据如下:


2.解决方案

使用以下函数在 DolphinDB 中创建缓存表:

缓存表(updateFunc,retentionSeconds)

在哪里

  • updateFunc是实现数据同步的函数。
  • retentionSeconds是一个整数,表示在 DolphinDB 中更新表的频率(以秒为单位)。

2.1 程序

  1. 在 MySQL 中创建一个表(参见脚本:https://github.com/dolphindb/Tutorials_EN/blob/master/script/cachedTable/mysql_data.txt)。
  2. 安装DolphinDB MySQL 插件
  3. 将数据从 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 config


2.2 验证

  1. 通过在 MySQL 中执行以下脚本来更新源表:
update configDB.config set frequency=10,maxvoltage=250,maxec=30;

2. 更新后,打印 MySQL 和 DolphinDB 中的“config”表


这些表是相同的,表明更改已成功同步。 

3. 小贴士

数据库之间的数据同步是工业物联网 (IIOT) 和金融领域的常见要求。它的设计不应增加系统间的依赖或维护成本。DolphinDB 缓存表是一种特殊的内存表。通过将产品基本信息同步到缓存表中,可以将其与分布式数据库中的时序数据关联起来,顺畅地进行业务查询。请注意,缓存表不适合实时数据同步。

在将代码部署到生产环境之前,请查看以下提示:

  1. 通过配置启动脚本startup.dos,在DolphinDB启动时用非空值初始化缓存表,提高容错能力。
  2. 通过跨会话共享缓存表来启用通过 API 的数据访问。
  3. 添加对传入数据的验证。
  4. 添加异常处理和日志记录。


原文标题:Synchronizing Basic Product Data From MySQL With DolphinDB Cached Tables

原文作者:Davis Zhou

原文链接:https://dzone.com/articles/synchronizing-basic-product-data-from-mysql-with-d

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论