(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210709642.3
(22)申请日 2022.06.22
(65)同一申请的已公布的文献号
申请公布号 CN 114791916 A
(43)申请公布日 2022.07.26
(73)专利权人 广东杰纳医药 科技有限公司
地址 510663 广东省广州市黄埔区掬泉路3
号D105,D107
专利权人 天津杰纳医药 科技发展 有限公司
(72)发明人 康灿平 邓亮
(74)专利代理 机构 广州粤高专利商标代理有限
公司 44102
专利代理师 刘俊
(51)Int.Cl.
G06F 16/22(2019.01)G06F 16/23(2019.01)
G06F 16/81(2019.01)
(56)对比文件
CN 103678583 A,2014.0 3.26
CN 111258966 A,2020.0 6.09
CN 113836157 A,2021.12.24
CN 105138635 A,2015.12.09
CN 112597158 A,2021.04.02
US 10642808 B1,2020.0 5.05
US 20190 65493 A1,2019.02.28
王志学.浅析基 于 ETL 技 术和全表扫描哈
希对比的数据同步方法. 《广东轻工职业 技术学
院学报》 .201 1,第10卷(第2期),1-4.
审查员 周炬
(54)发明名称
一种临床试验数据的快速比对方法
(57)摘要
本发明公开一种临床试验数据的快速比对
方法, 通过生 成键哈希表和行哈希表, 在比较时,
可以以接近O(R) (R是目标文件行数) 的时间复杂
度完成一次文件比对, 并且可以应对 数据库导出
时各行随机排列的情况。 其次通过建立键哈希
簇, 保证了在键哈希发生变化时, 依然能够快速
的查找到对应的行, 避免了键哈希的个别改动导
致该行记录被标记为删除和新增的情况, 能够最
大限度的让数据管理人员精确追踪到各个数据
点的变化。 再次, 通过改进的行哈希比对 方法, 能
够在数据集中发生整行变动时, 依然能够以接近
O(R)的时间复杂 度完成比对, 而 不至于退化成一
个逐值比对的算法。 本发明针对CRO的数据库变
化特性设计的, CRO业务场景中具有非常良好的
应用前景与商业 价值。
权利要求书3页 说明书10页 附图2页
CN 114791916 B
2022.10.11
CN 114791916 B
1.一种临床试验数据的快速比对方法, 其特征在于, 临床试验数据包括有若干行, 每一
行包括若干列, 将原始的存储文件为基准文件, 修改后的存储文件为目标文件, 所述比对方
法包括以下步骤:
S1: 选择临床试验数据中的取值组合在一起在数据库内具有唯一性的几列作为特征
列, 形成特 征列配置文件;
S2: 根据所述特 征列配置文件, 确定基准文件以及目标文件 共有的特 征列;
S3: 分别求出基准文件以及目标文件中各 行位于共有的特 征列的数值的哈希值;
S4: 根据步骤S3求出的哈希值, 分别构建基准文件以及目标文件的键哈希 表;
S5: 将基准文件以及目标文件中各行除了共有的特征列之外的其它的列的值按列名序
取出, 分别拼接成一个数组, 然后整体计算其数组的哈希值, 作为该行的行哈希, 按照行号
排列成行哈希 表;
S6: 将目标文件的键哈希表与基准文件的键哈希表进行比对, 构建基准文件独有键哈
希表和目标文件独有键哈希 表;
S7: 判断基准文件独有键哈希表与目标文件独有键哈希表是否均不为空, 若均不为空,
则进入步骤S 8, 若至少一个哈希 表为空时, 则结束比对;
S8: 根据所述基准文件独有键哈希 表, 构建键哈希簇;
S9: 将目标文件独有键哈希表与键哈希簇进行比对, 标记有修改的行, 并将基准文件中
的对应的键哈希从所述键哈希簇以及基准文件独有键哈希表中删除, 将目标文件中的对应
的键哈希从所述目标文件独有键哈希 表中删除;
S10: 基准文件独有键哈希表中还剩下的行, 即为在目标文件中已经不存在的行; 目标
文件独有键哈希 表中还剩下的行, 即为在目标文件中新增的行; 完成比对;
步骤S6中构建基准文件独有键哈希 表和目标文件独有键哈希 表, 具体为:
如果在基准文件的键哈希表中发现与目标文件相同的键哈希, 则取出对应的基准文件
行号, 以行号在基准文件的行哈希表中取出行哈希, 与目标文件的行哈希继续比对, 如果行
哈希也匹配, 则该行在基准文件中与在目标文件中一致, 没有修改; 如果键哈希一致而行哈
希不匹配, 则逐列对比两行的值, 找到不 一致的数据点并输出;
如果某键哈希只出现在基准文件的键哈希表中, 而未出现在目标文件的键哈希表中,
则将该键哈希与行号记录 到基准文件独有键哈希 表中;
如果某键哈希只出现在目标文件的键哈希表中, 而未出现在基准文件的键哈希表中,
则将该键哈希与行号记录 到目标文件独有键哈希 表中;
步骤S8中根据所述基准文件独有键哈希 表, 构建键哈希簇, 具体为:
对基准文件独有键哈希表, 遍历该表, 将每个键哈希拆回对应特征列的哈希值序列, 同
时, 维护C_k个哈希字典, 其中, C_k为特征列的数量, 每个哈希字典的KEY为对应特征列的哈
希值, value则为一个由行号构成的集合; 将键哈希拆出的N个特征列哈希 值后, 使用这些哈
希值将行号插 入到所述C_k个哈希字典中, 所述C_k个哈希字典合 起来称为键哈希簇 。
2.根据权利要求1所述的临床试验数据的快速比对方法, 其特征在于, 步骤S3 中分别求
出基准文件以及目标文件中各 行位于共有的特 征列的数值的哈希值, 具体为:
首先对特征列进行排序, 按照特 征列的列名来对特 征列进行排序;
对每行数据, 按序 取出各特征列的值, 根据值的类型计算其哈希值, 对于能够提升至64权 利 要 求 书 1/3 页
2
CN 114791916 B
2位整型或双精度浮点型数据的数据类型, 或者少于8 个byte的字符串, 将这些数据类型补齐
至8byte, 转换为16进制字符串后作为哈希值; 对于其他数据类型, 通过哈希算法将值转换
为长度为8byte的哈希值。
3.根据权利要求1所述的临床试验数据的快速比对方法, 其特征在于, 步骤S7中判断基
准文件独有键哈希表与目标文件独有键哈希表是否均不为空, 若至少一个哈希表不为空,
则结束比对, 具体为:
当基准文件独有键哈希 表与目标文件独有键哈希 表均为空时, 结束比对;
当目标文件独有键哈希表为空, 只有基准文件独有键哈希表有值时, 表明原本存在于
基准文件中的行已经被删除, 将这些被删除的行 标记并输出后, 结束比对;
当基准文件独有键哈希表为空, 只有目标文件独有键哈希表有值时, 表明这些行是在
目标文件中新增的行, 将这些新增行 标记后, 结束比对。
4.根据权利要求3所述的临床试验数据的快速比对方法, 其特 征在于, 步骤S9具体为:
将目标文件独有键哈希表中的键哈希拆分为特征列对应的哈希值序列, 对所述哈希值
序列中的每个哈希, 去对应的基准文件的键哈希簇的字典中查找, 如果查找命中, 则将该簇
中命中的行号集合提取出来, 将键哈希簇中所有提取出 的行号集合进行计数, 并将行号按
照出现次数倒序排列, 得到的行号列 表; 若所有簇都未命中, 则该键哈希为目标文件中新增
的行的哈希;
按行号列表依次找到的基准文件的行, 逐行与当前的目标文件中的行比对, 找到最接
近的行, 计算这两行不一致的列数, 如果不一致的列数小于预先设定的阈值, 则将这两行标
记为基准文件与目标文件的对应行, 且有修改; 标记完 毕后, 将基准文件中的键哈希从所述
键哈希簇以及基准文件独有键哈希表中删除, 将目标文件中的键哈希从所述目标文件独有
键哈希表中删除。
5.根据权利要求4所述的临床试验数据的快速比对方法, 其特征在于, 步骤S6开始比对
时, 先判断目标文件的行数是否小于 设定值, 若小于 设定值, 执行步骤S 6, 若不小于设定值,
从目标文件中随机抽取10%的行进 行对比, 并计算占比值和改进算法阈值, 若占比值小于改
进算法阈值, 执 行步骤S6, 若占比值大于等于改进算法阈值, 执 行改进算法;
所述改进算法包括以下步骤:
从目标文件中随机抽取10%的行进行对比得到存在修改数据的总行数N_mod, 取出修改
行数超过N_ mod/2的列形成集合C_d, 将集合C_d中的列的列号记录下来, 作为单独比对列集
合;
通过键哈希匹配, 找到基准文件与目标文件的对应行, 将基准文件的该行中的单独比
对列集合内的值取出, 直接与目标文件对应行中的对应列的值比较, 求得单独比对列中的
不一致情况, 然后将目标文件中对应位置的值替换成基准文件中的单独比对列的值, 再对
目标文件中的对应行计算行哈希, 与基准文件的行哈希进行对比, 如果对比一致则 说明单
独比对列以外不存在不同的值, 不 一致则逐值对比, 找到所有不匹配的值。
6.根据权利要求5所述的临床试验数据的快速比对方法, 其特征在于, 所述计算占比值
和改进算法阈值, 具体为:
从目标文件中随机抽取10%的行进行对比, 统计被修改的行中, 各列的被修改次数, 即
各列的修改行 数;权 利 要 求 书 2/3 页
3
CN 114791916 B
3
专利 一种临床试验数据的快速比对方法
文档预览
中文文档
16 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共16页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-24 00:49:27上传分享