CN113626430A - 一种为kudu中医疗数据添加自增列的方法 - Google Patents
一种为kudu中医疗数据添加自增列的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 239000003814 drug Substances 0.000 title description 6
- 238000005516 engineering process Methods 0.000 claims abstract description 4
- 238000004891 communication Methods 0.000 claims description 3
- 239000000654 additive Substances 0.000 claims 2
- 238000000586 desensitisation Methods 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database 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中医疗数据添加自增列的方法。
背景技术
以前,大数据主要以两种方式存储:
静态数据:以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即可得到当前自增列的最新序号。
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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098540A (zh) * | 2022-06-07 | 2022-09-23 | 北京奥星贝斯科技有限公司 | 分布式数据库中针对自增列的业务处理方法、装置以及设备 |
Citations (4)
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 | 成都新希望金融信息有限公司 | 一种分布式数据库自增字段产生有序唯一值的方法和装置 |
-
2021
- 2021-07-27 CN CN202110848062.8A patent/CN113626430A/zh active Pending
Patent Citations (4)
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 | 成都新希望金融信息有限公司 | 一种分布式数据库自增字段产生有序唯一值的方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098540A (zh) * | 2022-06-07 | 2022-09-23 | 北京奥星贝斯科技有限公司 | 分布式数据库中针对自增列的业务处理方法、装置以及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12118122B2 (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 | |
US10649965B2 (en) | Data migration in a networked computer environment | |
US10650032B1 (en) | Filtering pipeline optimizations for unstructured data | |
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 | |
WO2020041950A1 (zh) | 一种基于b+树索引的数据更新方法、装置及存储装置 | |
US10824612B2 (en) | Key ticketing system with lock-free concurrency and versioning | |
CN113821573B (zh) | 海量数据快速检索服务构建方法、系统、终端及存储介质 | |
AU2017243870A1 (en) | "Methods and systems for database optimisation" | |
US12079202B2 (en) | Parallel stream processing of change data capture | |
CN104199899A (zh) | 一种基于Hbase的海量图片存储方法及装置 | |
CN113626430A (zh) | 一种为kudu中医疗数据添加自增列的方法 | |
US20210374072A1 (en) | Augmenting storage functionality using emulation of storage characteristics | |
US20190057028A1 (en) | Conflict Resolution and Garbage Collection in Distributed Databases | |
Li et al. | Accurate Counting Bloom Filters for Large‐Scale Data Processing | |
US20170220656A1 (en) | Information Access System | |
CN107704478A (zh) | 一种写入日志的方法和系统 | |
US11036762B1 (en) | Compound partition and clustering keys | |
CN114020296A (zh) | 配置信息更新方法、装置、设备及可读存储介质 | |
US11481391B1 (en) | Query language operations using a scalable key-item data store | |
US11055266B2 (en) | Efficient key data store entry traversal and result generation | |
McGlothlin et al. | Scalable queries for large datasets using cloud computing: a case study |
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 |