CN113626430A - 一种为kudu中医疗数据添加自增列的方法 - Google Patents

一种为kudu中医疗数据添加自增列的方法 Download PDF

Info

Publication number
CN113626430A
CN113626430A CN202110848062.8A CN202110848062A CN113626430A CN 113626430 A CN113626430 A CN 113626430A CN 202110848062 A CN202110848062 A CN 202110848062A CN 113626430 A CN113626430 A CN 113626430A
Authority
CN
China
Prior art keywords
kudu
redis
self
data
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110848062.8A
Other languages
English (en)
Inventor
吴玉雁
罗述岭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Health Medical Big Data Co ltd
Original Assignee
Shandong Health Medical Big Data Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Health Medical Big Data Co ltd filed Critical Shandong Health Medical Big Data Co ltd
Priority to CN202110848062.8A priority Critical patent/CN113626430A/zh
Publication of CN113626430A publication Critical patent/CN113626430A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明特别涉及一种为KUDU中医疗数据添加自增列的方法。该为KUDU中医疗数据添加自增列的方法,利用Redis缓存技术来存储KUDU中对应数据表的主键自增偏移量,通过Redis客户端访问Redis缓存数据库;Redis缓存数据库返回相应的当前序号即可。该为KUDU中医疗数据添加自增列的方法,不仅解决了医疗数据中序号编码脱敏问题。同时基于Redis实现,获取自增序号的效率高,性能好,生成的自增列有序、不会重复,还能够处理高并发数据请求,适宜推广应用。

Description

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

Claims (8)

1.一种为KUDU中医疗数据添加自增列的方法,其特征在于:包括以下步骤:
第一步,利用Redis缓存技术来存储KUDU中对应数据表的主键自增偏移量;
第二步,通过Redis客户端访问Redis缓存数据库;
第三步,Redis缓存数据库返回相应的当前序号即可。
2.根据权利要求1所述的为KUDU中医疗数据添加自增列的方法,其特征在于:所述第一步中,在Redis缓存数据库中以KUDU中的数据表名为Key生成递增序号。
3.根据权利要求2所述的为KUDU中医疗数据添加自增列的方法,其特征在于:所述第一步中,以KUDU中的数据表名为key,以当前数据表的自增列偏移为value的键值对,保存到Redis缓存数据库。
4.根据权利要求3所述的为KUDU中医疗数据添加自增列的方法,其特征在于:所述第一步中,基于Redis原子计数器incr实现数字的递增。
5.根据权利要求3所述的为KUDU中医疗数据添加自增列的方法,其特征在于:所述第二步中,如果Redis缓存数据库中不存在Redis客户端获取的key,则添加新的键值对(key,0),如果存在则直接返回。
6.根据权利要求1所述的为KUDU中医疗数据添加自增列的方法,其特征在于:所述第二步中,通过Jedis实现Redis客户端访问Redis缓存数据库。
7.根据权利要求1所述的为KUDU中医疗数据添加自增列的方法,其特征在于:为了防止并发访问发生阻塞,所述第二步中,通过Netty框架实现Redis客户端与Redis缓存数据库间的高并发低延迟通信,实现Redis客户端访问Redis缓存数据库。
8.根据权利要求5所述的为KUDU中医疗数据添加自增列的方法,其特征在于:所述第三步中,所述Redis客户端获取到当前最新序号后,与原数据拼接形成新的一列,KUDU即可得到当前自增列的最新序号。
CN202110848062.8A 2021-07-27 2021-07-27 一种为kudu中医疗数据添加自增列的方法 Pending CN113626430A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110848062.8A CN113626430A (zh) 2021-07-27 2021-07-27 一种为kudu中医疗数据添加自增列的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110848062.8A CN113626430A (zh) 2021-07-27 2021-07-27 一种为kudu中医疗数据添加自增列的方法

Publications (1)

Publication Number Publication Date
CN113626430A true CN113626430A (zh) 2021-11-09

Family

ID=78381011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110848062.8A Pending CN113626430A (zh) 2021-07-27 2021-07-27 一种为kudu中医疗数据添加自增列的方法

Country Status (1)

Country Link
CN (1) CN113626430A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181533A1 (en) * 2003-03-13 2004-09-16 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
CN108563923A (zh) * 2017-12-05 2018-09-21 华南理工大学 一种基因变异数据分布式存储方法及架构
CN108984639A (zh) * 2018-06-22 2018-12-11 联想(北京)有限公司 服务器集群的数据处理方法和装置
CN111680103A (zh) * 2020-05-29 2020-09-18 成都新希望金融信息有限公司 一种分布式数据库自增字段产生有序唯一值的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181533A1 (en) * 2003-03-13 2004-09-16 International Business Machines Corporation Pre-formatted column-level caching to improve client performance
CN108563923A (zh) * 2017-12-05 2018-09-21 华南理工大学 一种基因变异数据分布式存储方法及架构
CN108984639A (zh) * 2018-06-22 2018-12-11 联想(北京)有限公司 服务器集群的数据处理方法和装置
CN111680103A (zh) * 2020-05-29 2020-09-18 成都新希望金融信息有限公司 一种分布式数据库自增字段产生有序唯一值的方法和装置

Similar Documents

Publication Publication Date Title
US11625501B2 (en) Masking sensitive information in records of filtered accesses to unstructured data
US10776336B2 (en) Dynamic creation and maintenance of multi-column custom indexes for efficient data management in an on-demand services environment
US10678773B2 (en) Parallel processing of disjoint change streams into a single stream
US10783124B2 (en) Data migration in a networked computer environment
US9582524B1 (en) Transformative migration of static data
CN106909597B (zh) 一种数据库迁移方法和装置
US11196567B2 (en) Cryptographic verification of database transactions
US10664508B1 (en) Server-side filtering of unstructured data items at object storage services
US10824612B2 (en) Key ticketing system with lock-free concurrency and versioning
WO2020041950A1 (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
AU2017243870A1 (en) "Methods and systems for database optimisation"
US11243942B2 (en) Parallel stream processing of change data capture
CN116680315A (zh) 数据离线处理方法、装置、电子设备及存储介质
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
Šušter et al. Optimization of MySQL database
CN113626430A (zh) 一种为kudu中医疗数据添加自增列的方法
Naseem et al. Extending HTML5 local storage to save more data; efficiently and in more structured way
Ul Haque et al. Performance comparison of state of art nosql technologies using apache spark
CN114020296A (zh) 配置信息更新方法、装置、设备及可读存储介质
US11481391B1 (en) Query language operations using a scalable key-item data store
US11093409B1 (en) Using emulation of storage characteristics to perform an access request translated between different protocols
US20170220656A1 (en) Information Access System
US20190057120A1 (en) Efficient Key Data Store Entry Traversal and Result Generation
Singh NoSQL: A new horizon in big data
Patel et al. Relational databases and SQL language

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination