一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种为KUDU中医疗数据添加自增列的方法与流程

2021-11-09 22:46:00 来源:中国专利 TAG:
一种为kudu中医疗数据添加自增列的方法
技术领域
:1.本发明涉及列式数据库
技术领域
:,特别涉及一种为kudu中医疗数据添加自增列的方法。
背景技术
::2.以前,大数据主要以两种方式存储:3.静态数据:以hdfs引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无法进行随机的读写。4.动态数据:以hbase、cassandra作为存储引擎,适用于大数据随机读写场景。这类存储的局限性是批量读取吞吐量远不如hdfs,不适用于批量数据分析的场景。5.在真实的场景中,面对既需要随机读写,又需要批量分析的大数据场景时,通产定时(通常是t 1或者t h)将hbase数据写成静态的文件(如:parquet)导入到olap引擎(如:hdfs)。这一架构能满足既需要随机读写,又可以支持olap分析的场景,但该架构有如下缺点:6.第一、架构复杂7.从架构上看,数据在hbase、消息队列、hdfs间流转,涉及环节太多,运维成本很高。并且每个环节需要保证高可用,都需要维护多个副本,存储空间也有一定的浪费。最后数据在多个系统上,对数据安全策略、监控等都提出了挑战。8.第二、时效性低9.数据从hbase导出成静态文件是周期性的,一般这个周期是一天(或一小时),在时效性上不是很高。10.第三、难以应对后续的更新11.真实场景中,总会有数据是「延迟」到达的。如果这些数据之前已经从hbase导出到hdfs,新到的变更数据就难以处理了,一个方案是把原有数据应用上新的变更后重写一遍,但这代价又很高。12.为了解决上述架构的这些问题,kudu应运而生。13.kudu是一种开源的新型列式数据库,专门为了对快速变化的数据进行快速的分析,在医疗数据分析方面起到很大作用,但是kudu在一些功能不能尽善尽美,例如不能创建自增列。14.医疗数据的敏感性要求医疗数据基本都要脱敏处理,在对医疗数据进行序号编码处理的过程中,要求使用自增序号,以便之后对数据的分析。用于分析的数据都存储到kudu中,但kudu自身不支持设置自增主键,依赖kudu自身机制无法实现15.基于上述问题,本发明提出了一种为kudu中医疗数据添加自增列的方法。技术实现要素:16.本发明为了弥补现有技术的缺陷,提供了一种简单高效的为kudu中医疗数据添加自增列的方法。17.本发明是通过如下技术方案实现的:18.一种为kudu中医疗数据添加自增列的方法,其特征在于:包括以下步骤:19.第一步,利用redis缓存技术来存储kudu中对应数据表的主键自增偏移量;20.第二步,通过redis客户端访问redis缓存数据库;21.第三步,redis缓存数据库返回相应的当前序号即可。22.所述第一步中,在redis缓存数据库中以kudu中的数据表名为key生成递增序号。23.所述第一步中,以kudu中的数据表名为key,以当前数据表的自增列偏移为value的键值对,保存到redis缓存数据库。24.所述第一步中,基于redis原子计数器incr实现数字的递增。25.所述第二步中,如果redis缓存数据库中不存在redis客户端获取的key,则添加新的键值对(key,0),如果存在则直接返回。26.所述第二步中,通过jedis实现redis客户端访问redis缓存数据库。27.更优的,为了防止并发访问发生阻塞,所述第二步中,通过netty框架实现redis客户端与redis缓存数据库间的高并发低延迟通信,实现redis客户端访问redis缓存数据库。28.所述第三步中,所述redis客户端获取到当前最新序号后,与原数据拼接形成新的一列,kudu即可得到当前自增列的最新序号。29.本发明的有益效果是:该为kudu中医疗数据添加自增列的方法,不仅解决了医疗数据中序号编码脱敏问题。同时基于redis实现,获取自增序号的效率高,性能好,生成的自增列有序、不会重复,还能够处理高并发数据请求,适宜推广应用。附图说明30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。31.附图1为本发明为kudu中医疗数据添加自增列的方法示意图。具体实施方式32.为了使本
技术领域
:的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。33.redis是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key‑value数据库,并提供多种语言的api。34.redis目前提供四种数据类型:string,list,set及zset(sortedset):35.第一、string(字符串)36.string是最简单的类型,一个key对应一个value。redis采用结构sdshdr和sds封装了字符串,字符串相关的操作实现在源文件sds.h/sds.c中。37.第二、list(双向链表)38.list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。39.对list的定义和实现在源文件adlist.h/adlist.c。40.第三、dict(hash表)41.set是集合,与数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。42.dict中table为dictentry指针的数组,数组中每个成员为hash值相同元素的单向链表。set是在dict的基础上实现的,指定了key的比较函数为dictencobjkeycompare,若key相等则不再插入。43.第四、zset(排序set)44.zset是set的一个升级版本,在set的基础上增加了一个顺序属性,这一属性在添加修改元素时可以指定。每次指定后,zset会自动重新按新的值调整顺序。也可以认为有两列的mysql表,一列存value,一列存顺序,操作中key理解为zset的名字。45.该为kudu中医疗数据添加自增列的方法,包括以下步骤:46.第一步,利用redis缓存技术来存储kudu中对应数据表的主键自增偏移量;47.第二步,通过redis客户端访问redis缓存数据库;48.第三步,redis缓存数据库返回相应的当前序号即可。49.所述第一步中,在redis缓存数据库中以kudu中的数据表名为key生成递增序号。50.所述第一步中,以kudu中的数据表名为key,以当前数据表的自增列偏移为value的键值对,保存到redis缓存数据库。51.所述第一步中,基于redis原子计数器incr实现数字的递增。52.所述第二步中,如果redis缓存数据库中不存在redis客户端获取的key,则添加新的键值对(key,0),如果存在则直接返回。53.所述第二步中,通过jedis实现redis客户端访问redis缓存数据库。54.更优的,为了防止并发访问发生阻塞,所述第二步中,通过netty框架实现redis客户端与redis缓存数据库间的高并发低延迟通信,实现redis客户端访问redis缓存数据库。55.netty框架是一个java开源框架,是一种提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。56.netty框架具有以下特点:57.1)处理大容量数据流更简单;58.2)处理协议编码和单元测试更简单;59.3)i/o超时和idle状态检测;60.4)应用程序的关闭更简单,更安全;61.5)更可靠的outofmemoryerror预防。62.所述第三步中,所述redis客户端获取到当前最新序号后,与原数据拼接形成新的一列,kudu即可得到当前自增列的最新序号。63.以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献