(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211174676.3
(22)申请日 2022.09.26
(71)申请人 上海乐普云智科技股份有限公司
地址 201612 上海市松江区莘砖公路258号
41号楼3层
(72)发明人 卢海涛 祝建
(74)专利代理 机构 北京慧诚智道知识产权代理
事务所 (特殊普通合伙)
11539
专利代理师 高廖楠
(51)Int.Cl.
G06F 16/23(2019.01)
G06F 16/22(2019.01)
G06F 16/2455(2019.01)
G06F 16/28(2019.01)
(54)发明名称
一种视图数据表的处 理方法和装置
(57)摘要
本发明实施例涉及一种视图数据表的处理
方法和装置, 所述方法包括: 获取反映自定义视
图与关联源表之间字段映射关系的配置文件记
为对应的第一配置文件; 根据第一配置文件在
MySQL数据库中创建一个数据表作为自定义视图
的视图数据表; 视图数据表创建成功后, 对MySQL
数据库输出的行模式归档日志binlog文件进行
实时获取生成对应的第一日志文件; 并根据第一
配置文件对第一日志文件进行更新指令解析生
成对应的第一更新字段集合; 并根据第一更新字
段集合对视图数据表进行字段更新处理。 通过本
发明可以在不支持物化视图的MySQL数据库上以
视图数据表的方式来实现物化视图的功能。
权利要求书3页 说明书14页 附图2页
CN 115455023 A
2022.12.09
CN 115455023 A
1.一种视图数据表的处 理方法, 其特 征在于, 所述方法包括:
获取反映自定义视图与关联源表之间字段映射关系的配置文件记为对应的第一配置
文件;
根据所述第 一配置文件在MySQL数据库中创建一个数据表作为所述自定义视图的视图
数据表;
所述视图数据表创建成功后, 对MySQL数据库输出的行模式归档日志binlog文件进行
实时获取生成对应的第一日志文件; 并根据所述第一配置文件对所述第一日志文件进 行更
新指令解析生成对应的第一更新字段集合; 并根据所述第一更新字段集合对所述视图数据
表进行字段 更新处理。
2.根据权利要求1所述的视图数据表的处 理方法, 其特 征在于,
所述第一配置文件包括第 一数据表名和多个第 一配置项; 所述第 一配置项包括第 一视
图字段名、 第一视图字段数据类型、 第一关联源表名、 第一源表字段名和第一源表字段索
引;
所述第一更新字段集合包括多个第 一更新字段组; 所述第 一更新字段组包括第 一更新
字段名、 第一更新行号和第一更新 值。
3.根据权利要求2所述的视图数据表的处理方法, 其特征在于, 所述根据 所述第一配置
文件在MySQ L数据库中创建一个数据表作为所述自定义视图的视图数据表, 具体包括:
按MySQL数据库的CREATE TABLE指令格式, 根据所述第一配置文件进行创建表指令参
数配置处理生成对应的第一创建表指令; 并在MySQL数据库上执行所述第一创建表指令生
成一个数据表作为所述视图数据 表; 所述第一创建表指令的指 令参数包括一个表名参数和
多个表定义选项参数; 所述表名参数为所述第一数据 表名; 所述多个表定义选项参数中, 第
一个所述表定义选项参数为预设的行号字段定义选项参数, 其余所述表定义选项参数则与
所述第一配置项一一对应; 所述表定义选项参数包括列名参数和列类型参数; 所述行号字
段定义选项参数的所述列名参数为预设的行号字段名, 所述列类型参数为预设的行号字段
类型参数; 与所述第一配置项对应的所述表定义选项参数的所述列名参数和所述列类型参
数分别为所述第一配置项的所述第一视图字段名和所述第一视图字段 数据类型;
对所述第一配置文件的各个所述第一配置项进行遍历; 遍历时, 将当前遍历的所述第
一配置项记为当前配置项, 并将所述当前配置项的所述第一视图字段名、 所述第一关联源
表名和所述第一源表字段名作为对应的当前视图字段名、 当前关联源表名和当前源表字段
名; 并按MySQL数据库的INSERT INTO…SELECT…FROM语句格式, 根据所述第一数据表名、 所
述当前视图字段名、 所述当前关联源表名和所述当前源表字段名进行插入语句配置处理生
成对应的第一插入语句; 并在M ySQL数据库上执行所述第一插入语句; 所述第一插入语句包
括目标表名参数、 源表名参数、 目标字段名参数和源字段名参数; 所述目标表名参数为所述
第一数据表名; 所述源表名参数为所述当前关联源表名; 所述 目标字段名参数为所述当前
视图字段名; 所述源字段名参数为所述当前源表字段名。
4.根据权利要求2所述的视图数据表的处理方法, 其特征在于, 所述根据 所述第一配置
文件对所述第一日志文件进行 更新指令解析生成对应的第一更新字段集 合, 具体包括:
对所述第一日志文件进行MySQL数据库UPDATE指令语句提取处理生成多个第一更新指
令语句; 每个所述第一更新指令语句对应一个数据表中一条数据记录的一次更新操作; 所权 利 要 求 书 1/3 页
2
CN 115455023 A
2述第一更新指令语句 包括第一、 第二、 第三语段; 所述第一语段为UPDATE指令语段, 包括当
前第一更新指 令语句对应数据 表的名称; 所述第二语段为WHERE条件语段, 包括当前第一更
新指令语句对应数据 记录的所有字段在更新操作前的原字段内容, 各个所述原字段内容的
格式为字段索引=原字段值; 所述第三语段为S ET语段, 包括当前第一更新指 令语句对应数
据记录的所有字段在更新操作前的新字段内容, 各个所述新字段内容的格式为字段索引=
新字段值;
从各个所述第一更新指令语句中提取出所述对应数据表的名称作为对应的第一更新
数据表名, 并按 所述字段索引对各个所述原字段内容和所述新字段内容进 行数据融合生成
对应的第一字段数据序列, 并由所述第一更新数据表名和所述第一字段数据序列组成对应
的第一更新记录数据; 所述第一字段数据序列包括多个第一字段数据; 所述第一字段数据
包括第一字段索引、 第一原字段值和第一 新字段值;
将与所述第一配置文件中任一所述第一关联源表名匹配的所述第一更新数据表名对
应的所述第一更新记录数据记为第二更新记录数据; 并为各个所述第二更新记录数据分配
一个对应的第一记录号, 并将所有所述第一记录号初始化为0; 并将与各个所述第二更新记
录数据的所述第一更新数据表名对应的数据表 记为第一更新数据表;
并对各个所述第一更新数据表的数据记录进行轮询; 轮询时将当前被轮询的数据记录
记为当前数据记录; 并按字段索引的对应关系, 对所述当前数据记录的各个字段内容与对
应的所述第二更新记录数据的各个所述第一新字段值进行全字段匹配生成对应的第一匹
配结果; 若所述第一匹配结果不为全匹配则对所述第一记录号加1并转至下一个数据记录
继续轮询直到最后一个数据记录为止; 若 所述第一匹配结果为全匹配则对 所述第一记录号
加1并结束轮询;
将各个所述第二更新记录数据中所述第一原字段值和所述第一新字段值相同的所述
第一字段数据删除从而得到对应的第三更新记录数据; 并将所述第三更新记录数据中各个
所述第一字段数据的所述第一原字段值删除从而得到对应的第四更新记录数据; 并将所述
第四更新记录数据与对应的所述第一记录号进行数据融合生成对应的第五更新记录数据;
所述第五更新记录数据包括所述第一更新数据表名、 所述第一记录号和多个第二字段数
据, 所述第二字段 数据包括所述第一字段索引和所述第一 新字段值;
对各个所述第五更新记录数据的所述第 二字段数据进行遍历; 遍历时将当前遍历的所
述第二字段数据作为当前字段数据, 并将所述第五更新记录数据的所述第一更新数据 表名
作为当前更新数据表名, 并将所述当前字段数据的所述第一字段索引作为当前索引; 并将
所述第一配置文件中所述第一关联源表名与所述当前更新数据表名匹配且所述第一源表
字段索引与所述当前索引匹配的所述第一配置项记为当前配置项; 若 所述当前配置项不为
空, 则提取所述当前配置项的所述第一视图字段名作为对应的所述第一更新字段名, 并提
取所述当前字段数据的所述第一记录号作为对应的所述第一更新行号, 并提取所述当前字
段数据的所述第一新字段值作为对应的所述第一更新值, 并由得到的所述第一更新字段
名、 所述第一更新行号和所述第一更新值组成对应的所述第一更新字段 组; 遍历结束时, 由
得到的所有所述第一更新字段组构成对应的所述第一更新字段集 合。
5.根据权利要求2所述的视图数据表的处理方法, 其特征在于, 所述根据 所述第一更新
字段集合对所述视图数据表进行字段 更新处理, 具体包括:权 利 要 求 书 2/3 页
3
CN 115455023 A
3
专利 一种视图数据表的处理方法和装置
文档预览
中文文档
20 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 思考人生 于 2024-02-07 20:38:22上传分享