From 8fd8278a0ccca6318a9ede176ece8ca11816d32e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E6=B0=B8=E8=BF=9B?= Date: Tue, 23 Aug 2022 06:03:58 +0000 Subject: [PATCH] add cachedTable.md. --- cachedTable.md | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 cachedTable.md diff --git a/cachedTable.md b/cachedTable.md new file mode 100644 index 0000000..1ff2f30 --- /dev/null +++ b/cachedTable.md @@ -0,0 +1,88 @@ +# DolphinDB缓存表(CachedTable)快速实现MySQL跨数据库基础信息同步功能 + +DolphinDB的cachedTable提供了缓存数据并定时更新的功能。通过异构数据源插件,cachedTable可以很方便的实现同步保存在其他数据库中的静态信息。 + +以一个工业物联网场景为例,通过脚本范例,快速实现跨数据库MySQL基础信息同步功能。 + +## 场景描述 +每隔1分钟,从MySQL的config表中取出数据,同步到DolphinDB内存表中实现数据映射。 + +
+ +
+ + + + + + +
系统模块参数样例
MySQL库名:configDB
+表名:config
+字段:
+frequency int,
+maxvoltage float,
+maxec float
DolphinDB表名:config

+字段:同MySQL
+
+ +## 函数说明 +函数名:cachedTable + +语法:cachedTable(updateFunc, retentionSeconds) + +参数updateFunc 是一个函数,实现同步逻辑。 + +参数retentionSeconds 是一个正整数,表示更新频率,单位是秒。 + + +## 示例代码 + +``` +login("admin","123456") + +loadPlugin("C:/Users/walter/Desktop/DolphinDB/DolphinDB_Win64_V2.00.0_8800/server/plugins/mysql/PluginMySQL.txt") + +def syncFunc(){ + //同步mysql数据 + conn = mysql::connect("127.0.0.1",3306,"root","123456","configDB") + t = load(conn,"config") + + //返回表 + return t +} + +config=cachedTable(syncFunc,60) + +select * from config +``` + +## 运行结果 +MySQL修改参数后,查看同步结果。 + +``` +update configDB.config set frequency=10,maxvoltage=250,maxec=30; +``` + + + + + + +
系统模块同步结果
MySQL
DolphinDB +
+ +## 应用建议 + +cachedTable缓存表可以简化系统结构,但不适用于同步实时性要求高的业务数据。 + +使用typestr(config)命令查看缓存表,其类型为IN-MEMORY TABLE,即DolphinDB内存表,可直接关联时序数据,进行数据查询。 + +应用到生产环境前,建议脚本代码包含以下内容: + +(1)      配置启动脚本startup.dos,初始化缓存表。 + +(2)      数据合法性校验。 + +(3)      增加异常判断,记录异常并输出。 + +(4)      共享缓存表,方便API直接访问。 -- Gitee