CN112015797A - 一种读取数据的方法及计算机设备 - Google Patents
一种读取数据的方法及计算机设备 Download PDFInfo
- Publication number
- CN112015797A CN112015797A CN202010897368.8A CN202010897368A CN112015797A CN 112015797 A CN112015797 A CN 112015797A CN 202010897368 A CN202010897368 A CN 202010897368A CN 112015797 A CN112015797 A CN 112015797A
- Authority
- CN
- China
- Prior art keywords
- data
- data reading
- target service
- value pair
- reading
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000005538 encapsulation Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 description 10
- 239000000306 component Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/2228—Indexing structures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理技术领域,提供了一种读取数据的方法、读取数据的装置、计算机设备及计算机可读存储介质。其中,一种读取数据的方法,根据数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对,按照预设的数据封装策略对目标键值对的数据内容进行处理,得到目标业务数据,调用基于disruptor框架的并发工具将目标业务数据输出至数据读取终端,由于数据内容存储在容器集群中的bucket中,且在bucket中数据内容作为对象,因此在读取业务数据时,能够根据对应的索引文件从bucket中查询目标键值对,又因为并发工具是基于disruptor框架实现,因此通过该并发工具能够将目标业务数据并行返回至所有数据读取终端,提高了并发读取数据的效率。
Description
技术领域
本发明属于涉及数据处理及区块链技术,尤其涉及一种读取数据的方法、读取数据的装置、计算机设备及计算机可读存储介质。
背景技术
在许多高并发场景中,为了提高有关数据的事务处理效率,构建相应的分布式数据库用于响应或处理事务已成常态。例如,根据不同的地理区域设置相应的服务器,并在每个服务器中构建对应的数据库,通过配置数据库与数据库之间的访问逻辑或者权限等,将不同服务器中的数据库组成数据库集群,进而完成分布式数据库的构建。
然而,在实际应用中,由于高并发事件需要频繁对数据库中的数据进行读取操作,因此容易因某一时段内对数据库的访问压力过大,导致数据库崩溃。可见,现有的数据读取方案在高并发场景中存在稳定性不高的问题。
发明内容
有鉴于此,本申请实施例提供了一种读取数据的方法、读取数据的装置、计算机设备及计算机可读存储介质,以解决现有的数据读取方案在高并发场景中存在稳定性不高的问题。
本申请实施例的第一方面提供了一种读取数据的方法,包括:
若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对;
按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据;
调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端。
本申请实施例的第二方面提供了一种读取数据的装置,包括:
查询单元,用于若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对;
第一执行单元,用于按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据;
第二执行单元,用于调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端。
本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。
实施本申请实施例提供的一种读取数据的方法、读取数据的装置、计算机设备及计算机可读存储介质具有以下有益效果:
本申请实施例,根据数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对,按照预设的数据封装策略对目标键值对的数据内容进行处理,得到目标业务数据,调用基于disruptor框架的并发工具将目标业务数据输出至数据读取终端,由于数据内容存储在容器集群中的bucket中,且在bucket中数据内容作为对象,是以键值对的形式呈现,也即以文本形式被存储,使得在读取业务数据时,能够根据对应的索引文件从bucket中查询目标键值对,也即查询到相应的数据字段,不仅在数据存储的结构上使得数据读取过程更加简单,且由于并发工具是基于disruptor框架实现,基于disruptor框架实现的工具能够同时被多个数据读取终端监听,因此通过该并发工具能够将目标业务数据并行输出至所有数据读取终端,提高了并发读取数据的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种读取数据的方法的实现流程图;
图2是本申请实施例中容器集群的结构示意图;
图3是本申请另一实施例提供的一种读取数据的方法的实现流程图;
图4是本申请一实施例提供的一种读取数据的装置的结构框图;
图5是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例,数据内容存储在容器集群中的对象存储桶bucket中,且在bucket中数据内容作为对象,是以键值对的形式呈现,也即以文本形式被存储,使得在读取业务数据时,能够根据对应的索引文件从对象存储桶bucket中查询目标键值对,再按照预设的数据封装策略将该目标键值对的目标键值组成目标业务数据,通过调用基于disruptor框架的并发工具将目标业务数据返回给数据读取终端,不仅在数据存储的结构上令数据读取更直接,无需考虑关联的数据存储在不同表格时的关联性,令数据读取过程变得更加简单,且还能够满足并发读取数据需求。
在本申请实施例中,一种读取数据的方法的执行主体为服务器,具体可以是配置有该方法功能的计算机设备。需要说明的是,执行本实施例提供的一种读取数据的方法的服务器,可以是服务器集群中的特定服务器。服务器集群作为提供数据远程存储和远程读取服务的系统,通过在服务器集群中的部分或全部服务器中构建用于存储数据的容器集群,该容器集群还能够为服务器集群中的任一服务器提供数据服务。服务器集群中的任一服务器能够作为数据读取终端,向服务器集群中的其他服务器发送读取数据的请求,令其他服务器响应该请求,进而从容器集群中读取相应的数据至查询终端,完成数据读取操作。或者,由移动终端作为数据读取终端,读取数据至移动终端上进行展示(如在移动终端的应用程序上进行展示)等操作时,向服务器集群发送数据读取请求,服务器集群中的任一服务器响应该请求,令服务器响应于该数据读取请求,进而通过该服务器从容器集群中读取目标业务数据返回至移动终端。
图1示出了本申请第一实施例提供的读取数据的方法的实现流程图,详述如下:
S11:若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对。
在步骤S11中,数据读取请求由数据读取终端发送或触发,用于指向目标业务数据并区分数据读取终端的权限。索引文件中的信息用于描述目标键值对在容器集群中的存储地址。
在本申请的所有实施例中,容器集群构建于服务器集群中,容器集群是用于存储数据并提供远程数据服务的存储空间。也即,从服务器集群中的各服务器的存储空间中,划分出部分或全部存储空间,共同组成容器集群的存储空间。数据存储在容器集群中相当于存储在服务器集群中的服务器的存储空间中。
示例性的,构建容器集群具体可以是在服务器集群的每个服务器中以新增对象存储桶bucket的方式命名存储空间,不同服务器之间的bucket相互组成容器集群。在容器集群中,单个bucket作为一个数据存储容器,且具有唯一的桶名bucketname。在数据存储容器中数据以键值对key-value的格式存储,其中,键值对由键名keyname与键值value组成。在键值对中,键名用于区分键值的属性,也即区分数据内容属性,键值为数据内容。
作为本申请一实施例,步骤S11具体包括:根据所述数据读取请求从元数据表中确定出索引文件;基于所述索引文件从所述bucket中查询目标键值对。
需要说明的是,在元数据表中记录了存储在容器集群中的所有数据的地址信息,以及地址信息与元数据标识之间的对应关系,索引文件中的信息为根据元数据标识从元数据表中匹配出的所有地址信息。地址信息用于从容器集群中确定出目标桶,且从目标桶中确定出目标键值对。
在一些已知技术中,数据读取终端需要读取的数据被存储在关系型数据库中,关系型数据库是指采用了关系模型来组织数据的数据库,以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
与已知的关联型数据库不同的是,在本实施例中,由于数据存储在容器集群中的各个bucket中,通过设置和修改bucket的属性进而控制地域、访问权限、生命周期等,这些属性设置还可以直接作用于该bucket内所有对象,因此可以通过创建不同的bucket来完成不同的管理功能,进而满足不同类型的数据读取需求。由于索引文件中的信息能够用于描述目标键值对在容器集群中的存储地址,因此根据该索引文件能够从容器集群中确定出目标键值对,也即能够确定出读取请求所指向的数据所在。
作为本实施例一种可能实现的方式,数据读取请求信息中携带有元数据标识。上述步骤:根据所述数据读取请求从元数据表中确定出索引文件,包括:
根据所述数据读取请求信息中携带的元数据标识,从元数据表中确定出多组地址信息组成索引文件,并将所述索引文件存入内存中。
在本实施例中,数据读取请求信息中携带有元数据标识,通过该数据标识指向目标业务数据并区分数据读取终端的权限。
应当理解的是,在实际应用中,数据读取终端的任一次数据读取需求过程中,都有可能读取一组以上的数据内容。本实施例为了提高数据读取的效率,允许在数据读取请求信息中携带多组元数据标识,进而能够根据多组元数据标识确定出多组地址信息,基于多组地址信息组成的索引文件,能够从bucket中快速查询到多个目标键值对。由于本实施例的数据读取终端中,数据内容作为键值对中的键值以文本格式被存储,且允许单次数据读取操作时能够同时读取多组数据,也即同时读取数据内容不同的数据,进而提高数据读取的效率。
图2示出了本实施例中容器集群的结构示意图。如图2所示,bucket1与bucket2组成了容器集群,在单个bucket中存储有对象objec,该对象object至少由键值对(key、value)、访问控制列表ACL以及元数据metadata组成。其中,键名用于区分键值的属性,也即区分数据内容属性,键值为数据内容。访问控制列表(ACL)用于标识对象可以被哪些用户或者用户组访问。元数据(Metadata):用于以key-value形式存储对象其他额外信息,比如对象内容的MD5校验值,对象的属主(owner),atime/ctime/mtime等。
作为本实施例一种可能实现的方式,上述步骤:基于所述索引文件从所述bucket中查询目标键值对,包括:
若从所述索引文件中提取出N组的地址信息,则并行启动N个任务根据N组所述地址信息从所述bucket中查询得到N组目标键值对;其中,N为大于1的整数。
在本实施例中,地址信息bucketname与keyname组成,单个地址信息即为一个bucketname与一个keyname的组合。
需要说明的是,由于bucketname在容器集群中具有唯一性,keyname能够用于区分键值属性,因此根据地址信息能够从容器集群中,依次确定出目标桶与键名对应的目标键值对。也即,根据地址信息中的bucketname确定目标桶,在根据keyname从目标桶中确定出目标键值对。
在本申请的所有实施例中,由于在容器集群中,单个bucket作为一个数据存储容器,且在bucket中存储的数据以键值对key-value的格式存储,在键值对中,键名用于区分键值的属性,也即区分数据内容属性,键值为数据内容,因此在读取数据时可以直接读取目标键值对的键值部分字段,无需考虑查询数据时的关联性,简化了数据读取的流程。此外,通过并行启动N个任务根据N组地址信息从bucket中查询得到N组目标键值对,实现在基于简化了数据读取的流程的条件下,为高并发的数据读取需求提供了实现方案。
S12:按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据。
在步骤S12中,预设的数据封装策略用于描述对目标键值对进行数据处理的逻辑或方式。目标业务数据为基于数据读取请求返回给数据读取终端的数据内容。
在本实施例中,数据封装策略所描述的对目标键值对进行数据处理的逻辑或方式,可以是基于不同的数据内容配置得到。
以目标键值对的数据内容为可运算数值进行举例说明。例如,当目标键值为某营业部第一季度的签单保费数据时,数据封装策略可以是描述对第一季度的签单数据进行求和、求平均等运算的正则表达式。
以目标键值对的数据内容为既定事实数据进行举例说明。例如,当目标键值对的数据内容为第一季度投保人的数据,如年龄、性别以及体重等,数据封装策略可以是定义用于填写第一季度投保人数据的表格或表单,也即定义了填写第一季度每个投保人的年龄、性别以及体重的表格或表单。
作为本申请一实施例,步骤S12具体包括:
从N组所述目标键值对中提取出N组目标键值;按照预设的数据封装策略对N组所述目标键值进行处理,得到目标业务数据。
在本实施例中,目标键值对的数据内容为键值的内容。这里,键值对格式与json格式类似,但与json格式不同的是,键值对格式则是应用于数据存储,而json格式被应用于数据传输过程。由于键值对以文本形式呈现,且键值对包括:键名key与键值value,因此在以键值对格式存储数据时,能够将相互关联的表单内容以键名key与键值value的文本形式来描述,而为了体现数据之间的关联,还可以在某对键值对中的键值value中嵌套新的键名key与新的键值value,设置在新的键值value中嵌套新的键值对,实现多个表单数据关联时,只需要将所有数据以键值对的结构存储方式存储在数据库中即可。也即,将具有关联的数据转换为处理对象,通过组建key与value的绑定关系实现对多关联数据的结构化存储,不仅实现数据的文本化存储,还使得数据间的关联关系能够被文本字段直接表征,同时还避免了因数据间的关联关系导致数据存储结构过于复杂,降低了数据维护难度。
以目标键值为可运算数值进行举例说明。例如,当目标键值为某营业部第一季度的签单保费数据时,数据封装策略可以是描述对第一季度的签单数据进行求和、求平均等运算的正则表达式。按照预设的数据封装策略对N组所述目标键值进行处理,得到目标业务数据,也即按照正则表达式对第一季度的签单数据进行求和、求平均等运算,得到求和值、平均值作为目标业务数据。
以目标键值为既定事实数据进行举例说明。例如,当目标键值为第一季度投保人的数据,如年龄、性别以及体重等,数据封装策略可以是定义用于填写第一季度投保人数据的表格或表单,也即将第一季度投保人的年龄、性别以及体重等信息填写入表格或表单中,再将该表格或表单作为目标业务数据。
S13:调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端。
在步骤S13中,基于disruptor框架的并发工具用于为多个数据读取终端在同一时段内并行提供目标业务数据。由于该并发工具是基于disruptor框架得到,因此该并发工具携带有disruptor框架的特性。
在本实施例中,基于disruptor框架的并发工具中包含有disruptor框架的所有原始组件。这里,disruptor框架的原始组件中,组件sequencer是disruptor框架的核心组件,该组件sequencer中定义了两个实现类singleproducersequence、multiproducesequencer,这两个实现类定义了在生产者和消费者之间快速、正确地传递数据的并发算法。
在一些已知技术中,服务器在查询到相应的目标业务数据后,将目标业务数据导入数据传递列队中以等待执行线程将该目标业务数据下发至数据读取终端。在一些高并发的场景中,当同时有多个数据读取终端同时向服务器集群发送数据读取请求时,由于服务器需要依次响应数据读取请求,且将查询得到的目标业务数据依据查询顺序放入数据传递列队中,再依据数据传递列队中目标业务数据的排列顺序依次生成下发任务,通过执行相应的下发任务将目标业务数据下发至数据读取终端,但在依次执行下发任务时,还需要较大的内存资源才能够满足高并发场景下的数据读取需求。
与已知技术中的数据传递列队不同的是,基于disruptor框架的并发工具继承了disruptor框架的优势,例如,环形数组结构避免垃圾数据被回收,采用数组而非链表,且同时数组对处理器的缓存机制更友好;元素位置定位机制使得通过位运算,能够加快定位的速度;无锁设计通过原子变量CAS保证线程的安全。这里,服务器基于disruptor框架实现的工具即可在读取数据的过程中明确数据的生产者与消费者,也即明确目标业务数据的来源与需要读取业务数据的数据读取终端。通过明确消费者端,并在服务器中生成用于对并发工具进行监听的进程,使得并发工具能够同时被多个消费者端对应的进程进行监听,也即实现数据读取终端对于并发工具的监听,因此当多个数据读取终端同时发送相同的数据读取请求时,通过该并发工具将目标业务数据并行返回至所有数据读取终端,进而提高并发读取数据的效率。
可以理解的是,由于disruptor框架属于现有的开源框架,因此在实际应用中,本领域技术人员可以根据目标业务数据的传递需求确定如何基于该disruptor框架设计与构建并发工具,故如何基于disruptor框架构建并发工具的内容此处不予赘述。
作为本申请一实施例,步骤S13具体包括:
当监听到所述并发工具广播的目标业务数据的生成消息,则从所述并发工具的数据队列中获取目标业务数据;将所述目标业务数据返回至所述数据读取终端。
在本实施例中,并发工具可以分为disruptor生产端与disruptor消费端,其中,disruptor生产端接收到传递的目标业务数据库,向所有监听disruptor生产端的disruptor消费端广播目标业务数据的生成消息,令disruptor消费端从disruptor生产端获取目标业务数据输出至数据读取终端。
在实际应用中,Disruptor消费端输出的目标业务数据,可以是输出到页面用于业务展示,还可以是将目标业务数据写到指定的其他容器集群中,用于报表的生成,或者是异步操作加快数据的处理效率,再或者是将目标业务数据写入到指定的中间件中,用于其它系统使用。
以上方案中,根据数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对,按照预设的数据封装策略对目标键值对的数据内容进行处理,得到目标业务数据,调用基于disruptor框架的并发工具将目标业务数据输出至数据读取终端,由于数据内容存储在容器集群中的bucket中,且在bucket中数据内容作为对象,是以键值对的形式呈现,也即以文本形式被存储,使得在读取业务数据时,能够根据对应的索引文件从bucket中查询目标键值对,也即查询到相应的数据字段,不仅在数据存储的结构上使得数据读取过程更加简单,且由于并发工具是基于disruptor框架实现,基于disruptor框架实现的工具能够同时被多个数据读取终端监听,因此通过该并发工具能够将目标业务数据并行输出至所有数据读取终端,提高了并发读取数据的效率。
图3示出了本申请另一实施例提供的一种读取数据的方法的实现流程图。参见图3,相对于图1所述实施例,本实施例提供的一种读取数据的方法中在所述按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据的步骤之后,还包括:S21,具体详述如下:
S21:将所述目标业务数据上传至区块链节点中。
在本实施例中,为了将目标业务数据进行共享,将目标业务数据上传至区块链节点中,进而避免该目标业务数据被篡改。
在本申请的所有实施例中,目标业务数据能够被查询终端或者分布式系统中的其他服务器加载成数据图表的页面。在实际使用中,可以从区块链中下载得该目标业务数据,以避免目标业务数据在传输过程中被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上方案中,根据数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对,按照预设的数据封装策略对目标键值对的数据内容进行处理,得到目标业务数据,调用基于disruptor框架的并发工具将目标业务数据输出至数据读取终端,由于数据内容存储在容器集群中的bucket中,且在bucket中数据内容作为对象,是以键值对的形式呈现,也即以文本形式被存储,使得在读取业务数据时,能够根据对应的索引文件从bucket中查询目标键值对,也即查询到相应的数据字段,不仅在数据存储的结构上使得数据读取过程更加简单,且由于并发工具是基于disruptor框架实现,基于disruptor框架实现的工具能够同时被多个数据读取终端监听,因此通过该并发工具能够将目标业务数据并行输出至所有数据读取终端,提高了并发读取数据的效率。
此外,由于在容器集群中,单个bucket作为一个数据存储容器,且在bucket中存储的数据以键值对key-value的格式存储,在键值对中,键名用于区分键值的属性,也即区分数据内容属性,键值为数据内容,因此在读取数据时可以直接读取目标键值对的键值部分字段,无需考虑查询数据时的关联性,简化了数据读取的流程。
此外,通过并行启动N个任务根据N组地址信息从bucket中查询得到N组目标键值对,实现在基于简化了数据读取的流程的条件下,为高并发的数据读取需求提供了实现方案。
请参阅图4,图4是本申请实施例提供的一种读取数据的装置的结构框图。本实施例中该移动终端包括的各单元用于执行图1或图3对应的实施例中的各步骤。具体请参阅图1或图2所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,读取数据的装置40包括:查询单元41、第一执行单元42以及第二执行单元43,其中:
查询单元41,用于若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对;
第一执行单元42,用于按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据;
第二执行单元43,用于调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端。
作为本申请一实施例,读取数据的装置40还包括:
上传单元44,用于将所述目标业务数据上传至区块链节点中。
作为本申请一实施例,查询单元41具体用于,根据所述数据读取请求从元数据表中确定出索引文件;基于所述索引文件从所述bucket中查询目标键值对。
作为本申请一实施例,所述数据读取请求信息中携带有元数据标识;查询单元41具体用于,根据所述数据读取请求信息中携带的元数据标识,从元数据表中确定出多组地址信息组成索引文件,并将所述索引文件存入内存中。
作为本申请一实施例,查询单元41具体用于,若从所述索引文件中提取出N组的地址信息,则并行启动N个任务根据N组所述地址信息从所述bucket中查询得到N组目标键值对;其中,N为大于1的整数。
作为本申请一实施例,第一执行单元42具体用于,从N组所述目标键值对中提取出N组目标键值;按照预设的数据封装策略对N组所述目标键值进行处理,得到目标业务数据。
作为本申请一实施例,第二执行单元43具体用于,当监听到所述并发工具广播的目标业务数据的生成消息,则从所述并发工具的数据队列中获取目标业务数据;将所述目标业务数据返回至所述数据读取终端。
应当理解的是,图4示出的读取数据的装置的结构框图中,各单元用于执行图1与图3对应的实施例中的各步骤,而对于图1与图3对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1与图3以及图1与图3所对应的实施例中的相关描述,此处不再赘述。
图5是本申请实施例提供的一种计算机设备的结构框图。如图5所示,该实施例的计算机设备50包括:处理器51、存储器52以及存储在所述存储器52中并可在所述处理器51上运行的计算机程序53,例如读取数据的方法的程序。处理器51执行所述计算机程序53时实现上述各个读取数据的方法各实施例中的步骤,例如图1所示的S11至S13,或者图3所示的S11至S13以及S21。或者,所述处理器51执行所述计算机程序53时实现上述图4对应的实施例中各单元的功能,例如,图4所示的单元41至44的功能,具体请参阅图4对应的实施例中的相关描述,此处不赘述。
示例性的,所述计算机程序53可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器52中,并由所述处理器51执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序53在所述计算机设备50中的执行过程。例如,所述计算机程序53可以被分割成查询单元、显示单元、发送单元以及接收单元,各单元具体功能如上所述。
所述转台设备可包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图5仅仅是计算机设备50的示例,并不构成对计算机设备50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器52可以是所述计算机设备50的内部存储单元,例如计算机设备50的硬盘或内存。所述存储器52也可以是所述计算机设备50的外部存储设备,例如所述计算机设备50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器52还可以既包括所述计算机设备50的内部存储单元也包括外部存储设备。所述存储器52用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种读取数据的方法,其特征在于,包括:
若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对;
按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据;
调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端。
2.根据权利要求1所述的读取数据的方法,其特征在于,所述若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对,包括:
根据所述数据读取请求从元数据表中确定出索引文件;
基于所述索引文件从所述bucket中查询目标键值对。
3.根据权利要求2所述的读取数据的方法,其特征在于,所述数据读取请求信息中携带有元数据标识;
所述根据所述数据读取请求从元数据表中确定出索引文件,包括:
根据所述数据读取请求信息中携带的元数据标识,从元数据表中确定出多组地址信息组成索引文件,并将所述索引文件存入内存中。
4.根据权利要求2所述的读取数据的方法,其特征在于,所述基于所述索引文件从所述bucket中查询目标键值对,包括:
若从所述索引文件中提取出N组的地址信息,则并行启动N个任务根据N组所述地址信息从所述bucket中查询得到N组目标键值对;其中,N为大于1的整数。
5.根据权利要求4所述的读取数据的方法,其特征在于,所述按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据,包括:
从N组所述目标键值对中提取出N组目标键值;
按照预设的数据封装策略对N组所述目标键值进行处理,得到目标业务数据。
6.根据权利要求5所述的读取数据的方法,其特征在于,所述调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端,包括:
当监听到所述并发工具广播的目标业务数据的生成消息,则从所述并发工具的数据队列中获取目标业务数据;
将所述目标业务数据返回至所述数据读取终端。
7.根据权利要求1至6任一项所述的读取数据的方法,其特征在于,在所述按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据的步骤之后,还包括:
将所述目标业务数据上传至区块链节点中。
8.一种读取数据的装置,其特征在于,包括:
查询单元,用于若接收到数据读取终端发送的数据读取请求,则根据所述数据读取请求对应的索引文件,从容器集群中的对象存储桶bucket中查询目标键值对;
第一执行单元,用于按照预设的数据封装策略对所述目标键值对的数据内容进行处理,得到目标业务数据;
第二执行单元,用于调用基于disruptor框架的并发工具将所述目标业务数据返回至所述数据读取终端。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010897368.8A CN112015797B (zh) | 2020-08-31 | 2020-08-31 | 一种读取数据的方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010897368.8A CN112015797B (zh) | 2020-08-31 | 2020-08-31 | 一种读取数据的方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015797A true CN112015797A (zh) | 2020-12-01 |
CN112015797B CN112015797B (zh) | 2024-07-26 |
Family
ID=73503983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010897368.8A Active CN112015797B (zh) | 2020-08-31 | 2020-08-31 | 一种读取数据的方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015797B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113504957A (zh) * | 2021-07-27 | 2021-10-15 | 平安普惠企业管理有限公司 | 表格数据处理方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN106802824A (zh) * | 2016-12-22 | 2017-06-06 | 上海大汉三通数据通信有限公司 | 一种基于Disruptor的数据收发方法 |
CN107220294A (zh) * | 2017-04-26 | 2017-09-29 | 努比亚技术有限公司 | 一种请求处理的方法和终端 |
CN110795469A (zh) * | 2019-10-11 | 2020-02-14 | 安徽工业大学 | 基于Spark的高维序列数据相似性查询方法及系统 |
CN110928874A (zh) * | 2019-10-14 | 2020-03-27 | 京东数字科技控股有限公司 | 一种信息处理方法、装置、系统、电子设备及存储介质 |
CN111241108A (zh) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
-
2020
- 2020-08-31 CN CN202010897368.8A patent/CN112015797B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968498A (zh) * | 2012-12-05 | 2013-03-13 | 华为技术有限公司 | 数据处理方法及装置 |
CN106802824A (zh) * | 2016-12-22 | 2017-06-06 | 上海大汉三通数据通信有限公司 | 一种基于Disruptor的数据收发方法 |
CN107220294A (zh) * | 2017-04-26 | 2017-09-29 | 努比亚技术有限公司 | 一种请求处理的方法和终端 |
CN110795469A (zh) * | 2019-10-11 | 2020-02-14 | 安徽工业大学 | 基于Spark的高维序列数据相似性查询方法及系统 |
CN110928874A (zh) * | 2019-10-14 | 2020-03-27 | 京东数字科技控股有限公司 | 一种信息处理方法、装置、系统、电子设备及存储介质 |
CN111241108A (zh) * | 2020-01-16 | 2020-06-05 | 北京百度网讯科技有限公司 | 基于键值对kv系统的索引方法、装置、电子设备和介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113504957A (zh) * | 2021-07-27 | 2021-10-15 | 平安普惠企业管理有限公司 | 表格数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112015797B (zh) | 2024-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019295818B2 (en) | Block chain-based data processing method and device | |
CN108536761B (zh) | 报表数据查询方法及服务器 | |
CN107229619B (zh) | 互联网业务链路调用情况的统计、展示方法及装置 | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
CN109919691B (zh) | 一种数据处理的系统、方法以及装置 | |
CN110032598B (zh) | 字段更新方法及装置、电子设备 | |
CN104699718A (zh) | 用于快速引入业务数据的方法和装置 | |
CN103246659A (zh) | 键值数据查询的方法和装置 | |
CN112035471B (zh) | 一种事务处理方法及计算机设备 | |
US20230024345A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
CN111209120A (zh) | 微服务的数据同步方法、装置及计算机可读存储介质 | |
WO2022247316A1 (zh) | 存储对象处理系统、请求处理方法、网关和存储介质 | |
CN115203159B (zh) | 一种数据存储方法、装置、计算机设备和存储介质 | |
CN112256457A (zh) | 一种基于共享内存的数据载入加速方法、装置、电子设备及存储介质 | |
WO2022121613A1 (zh) | 基于智能合约的数据处理方法、装置、设备及存储介质 | |
CN112015797A (zh) | 一种读取数据的方法及计算机设备 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN114070847A (zh) | 服务器的限流方法、装置、设备及存储介质 | |
CN117692401A (zh) | 消息发送方法、装置、服务器及存储介质 | |
CN114547055A (zh) | 一种数据处理方法及装置 | |
CN113761053A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN113641649B (zh) | 数据获取方法、装置、设备和存储介质 | |
CN117573296B (zh) | 虚拟机设备直通管控方法、装置、设备和存储介质 | |
CN111611245B (zh) | 处理数据表的方法和系统 | |
CN118036045B (zh) | 标识生成方法、装置及计算机设备、存储介质、程序产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |