CN110688382A - 数据存储查询方法、装置、计算机设备及存储介质 - Google Patents
数据存储查询方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110688382A CN110688382A CN201910910842.3A CN201910910842A CN110688382A CN 110688382 A CN110688382 A CN 110688382A CN 201910910842 A CN201910910842 A CN 201910910842A CN 110688382 A CN110688382 A CN 110688382A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- storage
- result
- acquiring
- 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
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/2228—Indexing structures
- G06F16/2264—Multidimensional index 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据存储查询方法、装置、计算机设备及存储介质,该方法包括获取需存储的数据;暂存需存储的数据至kafka队列服务器,以得到暂存数据;采用spark streaming消费暂存数据,以得到中间数据;获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;将中间数据写入存储位置内,以得到写入结果;根据写入结果建立二级索引;反馈二级索引以及写入结果;获取查询请求;根据查询请求获取查询结果;反馈查询结果。本发明实现针对大文件数据的写入时,不影响写入性能,在进行查询时,查询效率高,且有效满足真实场景中复杂多样的业务存储查询需求。
Description
技术领域
本发明涉及智慧城市数据处理方法,更具体地说是指数据存储查询方法、装置、计算机设备及存储介质。
背景技术
随着智慧城市的快速发展,视频、图片和文本等基础数据采集手段被广泛应用,引发了短时间内生产的海量视频、图片和文本数据无法快速存储和处理,从而严重影响数据时效性价值问题。如何快速高效的分析数据带来的价值,首先需要解决的问题是如何高效的存储,然后是如何快速的查询。
传统的数据管理、存储无法满足需求,现有的HDFS(分布式文件系统,HadoopDistributed File System)是为处理大文件而量身定做,若直接用来存储小文件,则会由于元数据膨胀,在扩展性和性能方面均存在严重问题。HBase(分布式存储系统,HadoopDatabase)是基于HDFS的海量非结构化数据存储技术,具有很好的线性扩展能力,可被用来存储海量小文件,并具有系统层小文件合并、全局名字空间等多种优势,然而在实际应用中,存在着性能和延时问题,总的来说,主要表现在如下几个方面:存储含有大量大文件数据时,由于HRegion的分裂和合并操作触发过于频繁,严重影响数据的写入性能;根据非主键进行查询时,只能通过扫描全表或者使用MapReduce框架扫描全表获得想要的数据,无法满足实时查询需求,查询效率低下。
因此,有必要设计一种新的方法,实现针对大文件数据的写入时,不影响写入性能,在进行查询时,查询效率高,且有效满足真实场景中复杂多样的业务存储查询需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供数据存储查询方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:数据存储查询方法,包括:
获取需存储的数据;
暂存需存储的数据至kafka队列服务器,以得到暂存数据;
采用spark streaming消费暂存数据,以得到中间数据;
获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
将中间数据写入存储位置内,以得到写入结果;
根据写入结果建立二级索引;
反馈所述二级索引以及写入结果;
获取查询请求;
根据查询请求获取查询结果;
反馈所述查询结果。
其进一步技术方案为:所述采用spark streaming消费暂存数据,以得到中间数据,包括:
启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
暂存所述初始数据;
将初始数据转移至Executor内以进行处理,得到中间数据。
其进一步技术方案为:所述采用spark streaming消费暂存数据,以得到中间数据之后,还包括:
更新分布式协调服务内的偏移量。
其进一步技术方案为:所述获取中间数据在HBase表内的真正HRegion位置,以得到存储位置,包括:
根据中间数据从分布式协调服务内调取根表所在的位置;
根据根表所在的位置获取对应的元数据表所在的HRegion位置,以得到中间数据在HBase表内的真正HRegion位置。
其进一步技术方案为:所述根据写入结果建立二级索引,包括:
获取基于HBase的协处理器针对写入结果拓展的二级索引;
将二级索引存储于基于ElasticSearch的分布式索引服务器。
其进一步技术方案为:所述查询请求是从用户终端生成的查询脚本,且根据该查询脚本在基于ElasticSearch的分布式索引服务器内进行检索所得到要查询的行键。
本发明还提供了数据存储查询装置,包括:
数据获取单元,用于获取需存储的数据;
第一暂存单元,用于暂存需存储的数据至kafka队列服务器,以得到暂存数据;
消费单元,用于采用spark streaming消费暂存数据,以得到中间数据;
存储位置获取单元,用于获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
写入结果获取单元,用于将中间数据写入存储位置内,以得到写入结果;
二级索引建立单元,用于根据写入结果建立二级索引;
第一反馈单元,用于反馈所述二级索引以及写入结果;
查询请求获取单元,用于获取查询请求;
查询结果形成单元,用于根据查询请求获取查询结果;
第二反馈单元,用于反馈所述查询结果。
其进一步技术方案为:所述消费单元包括:
初始数据获取子单元,用于启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
初始数据暂存子单元,用于暂存所述初始数据;
处理子单元,用于将初始数据转移至Executor内以进行处理,得到中间数据。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过针对大文件数据隔离存储在HDFS上,回避了HBase本身的分裂和合并机制,针对设置基于HBase协处理器所拓展的二级索引,采用基于ElasticSearch的分布式索引服务器存储二级索引,支持字段模糊查询和多字段组合查询,极大地提升了非主键查询性能和灵活性,实现针对大文件数据的写入时,不影响写入性能,在进行查询时,查询效率高,且有效满足真实场景中复杂多样的业务存储查询需求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据存储查询方法的应用场景示意图;
图2为本发明实施例提供的数据存储查询方法的流程示意图;
图3为本发明实施例提供的数据存储查询方法的子流程示意图;
图4为本发明实施例提供的数据存储查询方法的子流程示意图;
图5为本发明实施例提供的数据存储查询方法的子流程示意图;
图6为本发明实施例提供的二级索引的示意图;
图7为本发明实施例提供的刷新机制的流程示意图;
图8为本发明实施例提供的HBase存储架构示意图;
图9为本发明实施例提供的数据存储查询装置的示意性框图;
图10为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的数据存储查询方法的应用场景示意图。图2为本发明实施例提供的数据存储查询方法的示意性流程图。该数据存储查询方法应用于服务器中,该服务器与用户终端、基于ElasticSearch的分布式索引服务器、kafka队列服务器进行数据交互,该服务器内包括有若干个基于HBase的协处理器,如同集群,其中一个基于HBase的协处理器作为主节点,其余的基于HBase的协处理器作为子节点,以主节点调动子节点进行数据的调取和存储,从用户终端获取需要存储的数据,并结合基于ElasticSearch的分布式索引服务器、kafka队列服务器实现数据的存储,查询时,则结合用户终端、基于ElasticSearch的分布式索引服务器进行查询。
图2是本发明实施例提供的数据存储查询方法的流程示意图。如图2所示,该方法包括以下步骤S110至S200。
S110、获取需存储的数据。
在本实施例中,具体是从用户终端获取需要存储的数据。
可利用智慧城市终端传感器、摄像头、卡口等设备数据采集设备采集数据,将采集到的数据作为需存储的数据,服务器获取该需要存储的数据。
S120、暂存需存储的数据至kafka队列服务器,以得到暂存数据。
在本实施例中,暂存数据是指存储在kafka队列服务器内的数据。
具体地,通过网络传输将需存储的数据写入到kafka队列服务器,当然,于其他实施例,还可以由智慧城市终端传感器、摄像头、卡口等设备数据采集设备采集数据后,直接通过网络传输发送至kafka队列服务器内。
接受需存储的数据,使用kafka队列服务器,一方面可以在有大量并发的情况下,能够尽快的做出回应;另一方面,解耦数据采集和数据处理过程,不受其他应用的影响,应用之间更独立。
S130、采用spark streaming消费暂存数据,以得到中间数据。
在本实施例中,中间数据是指经过Executor处理后的数据。
在一实施例中,请参阅图2,上述的步骤S130可包括步骤S131~S133。
S131、启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
S132、暂存所述初始数据;
S133、将初始数据转移至Executor内以进行处理,得到中间数据。
spark streaming是将持续不断输入的数据流转换成多个批处理分片,使用一批spark应用实例进行处理。spark streaming是以Spark Core为核心构建的一种分布式的流式计算框架,适用于对实时任务进行在线任务计算和输出,实现对数据的实时处理。
于其他实施例中,上述的步骤S130之后,还包括:更新分布式协调服务内的偏移量。
Spark Streaming启动时,会在Executor中同时启动Receiver异步线程用于从Kafka队列服务器持续获取数据,获取的初始数据先存储在Receiver中,后续,当Batch Job触发后,这些初始数据会被转移到剩下的Executor中被处理。处理完毕后,然后调用基于HBase的协处理器所对应的客户端,将处理后的数据写入Hbase集群,Receiver会自动更新分布式协调服务中的偏移量,通过调用基于HBase的协处理器所对应的客户端API接口将处理后的数据写入HBase集群。
S140、获取中间数据在HBase表内的真正HRegion位置,以得到存储位置。
在本实施例中,存储位置是指HBase表内中间数据实际写入的HRegion位置。
在一实施例中,请参阅图4,上述的步骤S140可包括步骤S141~S142。
S141、根据中间数据从分布式协调服务内调取根表所在的位置;
S142、根据根表所在的位置获取对应的元数据表所在的HRegion位置,以得到中间数据在HBase表内的真正HRegion位置。
通过访问分布式协调服务,找到根表所在的位置,然后查找到根表,获取对应的元数据表所在的HRegion的位置,进而通过访问对应的元数据表,找到需要存储数据的真正HRegion位置,最后根据中间数据的位置信息实现数据的存储请求。
S150、将中间数据写入存储位置内,以得到写入结果。
在本实施例中,写入结果是指存储在服务器内某一子节点即基于HBase的协处理器内对应的HRegion位置中。
如图8所示,在服务器中所有子节点中,一个基于HBase的协处理器对应一个HBase表,一个HBase表内有多个HRegion,在每个HRegionserver内都是设有一个专门用于存储管理维护整个HBase表中的大文件数据的分区bigfile region,该分区是采用基于StoreFile逻辑结构创建的,从而提高数据存储速度;其中,HRegionserver就是服务器内的一个子节点,在每一个HRegionserver的服务端建立基于HBase的协处理器的二级索引;由zookeeper分布式协调服务帮助主节点检测每一个子节点的状态,一旦检测到故障,可以及时采取相应的措施进行处理,有效解决单点故障问题。
另外,如图7所示,将中间数据写入存储位置内的过程中,是采用文件记录数据的方式,首先写入WAL(预写日志系统,Write-Ahead Logging)预写式日志中,同时也写入MemStore(排序内存缓冲区,Sorted Memory Buffer)内存中,当MemStore中的数据达到阈值时,首先判断用户是否已经开启大文件刷新机制,如果开启,直接把数据写入大文件区即HFile中,然后把文件链接地址存储到对应大文件列族中。如果未开启,用HBase表本身的刷新机制直接把数据写入大文件区中。
上述的存储过程实现针对大文件数据的写入时,不影响写入性能。
S160、根据写入结果建立二级索引。
在本实施例中,二级索引是指针对于非主键查询表所建立的行键集合。基于ElasticSearch的分布式索引服务器存储二级索引,支持字段模糊查询和多字段组合查询,极大地提升了非主键查询性能和灵活性。
在一实施例中,请参阅图5,上述的步骤S160可包括步骤S161~S162。
S161、获取基于HBase的协处理器针对写入结果拓展的二级索引;
S162、将二级索引存储于基于ElasticSearch的分布式索引服务器。
基于HBase的协处理器拓展二级索引,并采用基于ElasticSearch的分布式索引服务器存储二级索引,基于ElasticSearch的分布式索引服务器的布尔模型和空间向量模型,可以支持字段模糊查询和多字段组合查询。如图6所示,对非主键查询表建立二级索引,然后通过二级索引查询符合条件的行键,最后通过行键查询所需要的值进而提高查询效率,将索引表存储与基于ElasticSearch的分布式索引服务器,而主表存储HBase内;整个数据存储查询方法可减少与HRegionServer建立连接的次数。
S170、反馈所述二级索引以及写入结果;
将二级索引以及写入结果反馈至用户终端。
S180、获取查询请求。
在本实施例中,该查询请求是从用户终端生成的查询脚本,且根据该查询脚本在基于ElasticSearch的分布式索引服务器内进行检索所得到要查询的行键。
S190、根据查询请求获取查询结果。
用户终端根据用户的请求构造elastic search DSL查询脚本,提交该elasticsearch DSL查询脚本至基于ElasticSearch的分布式索引服务器内,由基于ElasticSearch的分布式索引服务器以该elastic search DSL查询脚本作为检索条件,进行检索以得到要查询的行键,然后到HBase集群内的HBase表内根据该行键查询对应的数据,以得到查询结果,并返回查询结果。
S200、反馈所述查询结果。
将查询结果反馈至用户终端。
基于现有Hadoop平台的HBase数据库基础上,提出了一种针对大文件数据隔离存储在HDFS上的框架,回避了HBase本身的分裂和合并机制,同时针对HBase非主键查询需要全表扫描来获取数据的问题,提出了基于HBase协处理器的拓展二级索引,二级索引数据存储在基于ElasticSearch的分布式索引服务器,基于ElasticSearch的分布式索引服务器的布尔模型和空间向量模型,支持字段模糊查询和多字段组合查询,可以有效满足真实场景中复杂多样的业务存储查询需求。
上述的数据存储查询方法,通过针对大文件数据隔离存储在HDFS上,回避了HBase本身的分裂和合并机制,针对设置基于HBase协处理器所拓展的二级索引,采用基于ElasticSearch的分布式索引服务器存储二级索引,支持字段模糊查询和多字段组合查询,极大地提升了非主键查询性能和灵活性,实现针对大文件数据的写入时,不影响写入性能,在进行查询时,查询效率高,且有效满足真实场景中复杂多样的业务存储查询需求。
图9是本发明实施例提供的一种数据存储查询装置300的示意性框图。如图9所示,对应于以上数据存储查询方法,本发明还提供一种数据存储查询装置300。该数据存储查询装置300包括用于执行上述数据存储查询方法的单元,该装置可以被配置于服务器中。
具体地,请参阅图9,该数据存储查询装置300包括:
数据获取单元301,用于获取需存储的数据;
第一暂存单元302,用于暂存需存储的数据至kafka队列服务器,以得到暂存数据;
消费单元303,用于采用spark streaming消费暂存数据,以得到中间数据;
存储位置获取单元304,用于获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
写入结果获取单元305,用于将中间数据写入存储位置内,以得到写入结果;
二级索引建立单元306,用于根据写入结果建立二级索引;
第一反馈单元307,用于反馈所述二级索引以及写入结果;
查询请求获取单元308,用于获取查询请求;
查询结果形成单元309,用于根据查询请求获取查询结果;
第二反馈单元310,用于反馈所述查询结果。
在一实施例中,所述消费单元303包括:
初始数据获取子单元,用于启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
初始数据暂存子单元,用于暂存所述初始数据;
处理子单元,用于将初始数据转移至Executor内以进行处理,得到中间数据。
在一实施例中,还包括:更新单元,用于更新分布式协调服务内的偏移量。
在一实施例中,所述存储位置获取单元304包括:
根表位置获取子单元,用于根据中间数据从分布式协调服务内调取根表所在的位置;
真正位置获取子单元,用于根据根表所在的位置获取对应的元数据表所在的HRegion位置,以得到中间数据在HBase表内的真正HRegion位置。
在一实施例中,所述二级索引建立单元306包括:
索引获取子单元,用于获取基于HBase的协处理器针对写入结果拓展的二级索引;
索引存储子单元,用于将二级索引存储于基于ElasticSearch的分布式索引服务器。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述数据存储查询装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述数据存储查询装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500是服务器。
参阅图10,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种数据存储查询方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种数据存储查询方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取需存储的数据;
暂存需存储的数据至kafka队列服务器,以得到暂存数据;
采用spark streaming消费暂存数据,以得到中间数据;
获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
将中间数据写入存储位置内,以得到写入结果;
根据写入结果建立二级索引;
反馈所述二级索引以及写入结果;
获取查询请求;
根据查询请求获取查询结果;
反馈所述查询结果。
其中,所述查询请求是从用户终端生成的查询脚本,且根据该查询脚本在基于ElasticSearch的分布式索引服务器内进行检索所得到要查询的行键。
在一实施例中,处理器502在实现所述采用spark streaming消费暂存数据,以得到中间数据步骤时,具体实现如下步骤:
启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
暂存所述初始数据;
将初始数据转移至Executor内以进行处理,得到中间数据。
在一实施例中,处理器502在实现所述采用spark streaming消费暂存数据,以得到中间数据步骤之后,还实现如下步骤:
更新分布式协调服务内的偏移量。
在一实施例中,处理器502在实现所述获取中间数据在HBase表内的真正HRegion位置,以得到存储位置步骤时,具体实现如下步骤:
根据中间数据从分布式协调服务内调取根表所在的位置;
根据根表所在的位置获取对应的元数据表所在的HRegion位置,以得到中间数据在HBase表内的真正HRegion位置。
在一实施例中,处理器502在实现所述根据写入结果建立二级索引步骤时,具体实现如下步骤:
获取基于HBase的协处理器针对写入结果拓展的二级索引;
将二级索引存储于基于ElasticSearch的分布式索引服务器。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取需存储的数据;
暂存需存储的数据至kafka队列服务器,以得到暂存数据;
采用spark streaming消费暂存数据,以得到中间数据;
获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
将中间数据写入存储位置内,以得到写入结果;
根据写入结果建立二级索引;
反馈所述二级索引以及写入结果;
获取查询请求;
根据查询请求获取查询结果;
反馈所述查询结果。
其中,所述查询请求是从用户终端生成的查询脚本,且根据该查询脚本在基于ElasticSearch的分布式索引服务器内进行检索所得到要查询的行键
在一实施例中,所述处理器在执行所述计算机程序而实现所述采用sparkstreaming消费暂存数据,以得到中间数据步骤时,具体实现如下步骤:
启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
暂存所述初始数据;
将初始数据转移至Executor内以进行处理,得到中间数据。
在一实施例中,所述处理器在执行所述计算机程序而实现所述spark streaming消费暂存数据,以得到中间数据步骤之后,还实现如下步骤:
更新分布式协调服务内的偏移量。
在一实施例中,所述处理器在执行所述计算机程序而实现所述获取中间数据在HBase表内的真正HRegion位置,以得到存储位置步骤时,具体实现如下步骤:
根据中间数据从分布式协调服务内调取根表所在的位置;
根据根表所在的位置获取对应的元数据表所在的HRegion位置,以得到中间数据在HBase表内的真正HRegion位置。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据写入结果建立二级索引步骤时,具体实现如下步骤:
获取基于HBase的协处理器针对写入结果拓展的二级索引;
将二级索引存储于基于ElasticSearch的分布式索引服务器。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.数据存储查询方法,其特征在于,包括:
获取需存储的数据;
暂存需存储的数据至kafka队列服务器,以得到暂存数据;
采用spark streaming消费暂存数据,以得到中间数据;
获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
将中间数据写入存储位置内,以得到写入结果;
根据写入结果建立二级索引;
反馈所述二级索引以及写入结果;
获取查询请求;
根据查询请求获取查询结果;
反馈所述查询结果。
2.根据权利要求1所述的数据存储查询方法,其特征在于,所述采用spark streaming消费暂存数据,以得到中间数据,包括:
启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
暂存所述初始数据;
将初始数据转移至Executor内以进行处理,得到中间数据。
3.根据权利要求1所述的数据存储查询方法,其特征在于,所述采用spark streaming消费暂存数据,以得到中间数据之后,还包括:
更新分布式协调服务内的偏移量。
4.根据权利要求1至3任一项所述的数据存储查询方法,其特征在于,所述获取中间数据在HBase表内的真正HRegion位置,以得到存储位置,包括:
根据中间数据从分布式协调服务内调取根表所在的位置;
根据根表所在的位置获取对应的元数据表所在的HRegion位置,以得到中间数据在HBase表内的真正HRegion位置。
5.根据权利要求1所述的数据存储查询方法,其特征在于,所述根据写入结果建立二级索引,包括:
获取基于HBase的协处理器针对写入结果拓展的二级索引;
将二级索引存储于基于ElasticSearch的分布式索引服务器。
6.根据权利要求1所述的数据存储查询方法,其特征在于,所述查询请求是从用户终端生成的查询脚本,且根据该查询脚本在基于ElasticSearch的分布式索引服务器内进行检索所得到要查询的行键。
7.数据存储查询装置,其特征在于,包括:
数据获取单元,用于获取需存储的数据;
第一暂存单元,用于暂存需存储的数据至kafka队列服务器,以得到暂存数据;
消费单元,用于采用spark streaming消费暂存数据,以得到中间数据;
存储位置获取单元,用于获取中间数据在HBase表内的真正HRegion位置,以得到存储位置;
写入结果获取单元,用于将中间数据写入存储位置内,以得到写入结果;
二级索引建立单元,用于根据写入结果建立二级索引;
第一反馈单元,用于反馈所述二级索引以及写入结果;
查询请求获取单元,用于获取查询请求;
查询结果形成单元,用于根据查询请求获取查询结果;
第二反馈单元,用于反馈所述查询结果。
8.根据权利要求7所述的数据存储查询装置,其特征在于,所述消费单元包括:
初始数据获取子单元,用于启动Receiver异步线程从kafka队列服务器内获取暂存数据,以得到初始数据;
初始数据暂存子单元,用于暂存所述初始数据;
处理子单元,用于将初始数据转移至Executor内以进行处理,得到中间数据。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910842.3A CN110688382B (zh) | 2019-09-25 | 2019-09-25 | 数据存储查询方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910842.3A CN110688382B (zh) | 2019-09-25 | 2019-09-25 | 数据存储查询方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688382A true CN110688382A (zh) | 2020-01-14 |
CN110688382B CN110688382B (zh) | 2022-07-01 |
Family
ID=69110603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910910842.3A Active CN110688382B (zh) | 2019-09-25 | 2019-09-25 | 数据存储查询方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688382B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506992A (zh) * | 2020-12-04 | 2021-03-16 | 中国人寿保险股份有限公司 | Kafka数据的模糊查询方法、装置、电子设备和存储介质 |
CN112612805A (zh) * | 2020-12-24 | 2021-04-06 | 北京浪潮数据技术有限公司 | 一种hbase数据索引到查询引擎的方法和相关装置 |
CN113094340A (zh) * | 2021-04-28 | 2021-07-09 | 杭州海康威视数字技术股份有限公司 | 基于Hudi的数据查询方法、装置、设备及存储介质 |
CN113312353A (zh) * | 2021-06-10 | 2021-08-27 | 中国民航信息网络股份有限公司 | 一种跟踪带日志的存储方法及系统 |
CN113312383A (zh) * | 2021-06-01 | 2021-08-27 | 拉卡拉支付股份有限公司 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
CN114090589A (zh) * | 2022-01-20 | 2022-02-25 | 苏州浪潮智能科技有限公司 | 基于HBase的数据查询方法、装置和计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140188825A1 (en) * | 2012-12-31 | 2014-07-03 | Kannan Muthukkaruppan | Placement policy |
CN105787118A (zh) * | 2016-03-25 | 2016-07-20 | 武汉工程大学 | HBase二级索引的设计方法及查询方法 |
WO2016180123A1 (zh) * | 2015-09-25 | 2016-11-17 | 中兴通讯股份有限公司 | HBase二级索引创建方法和装置 |
CN107273482A (zh) * | 2017-06-12 | 2017-10-20 | 北京市天元网络技术股份有限公司 | 基于HBase的告警数据存储方法及装置 |
CN108763436A (zh) * | 2018-05-25 | 2018-11-06 | 福州大学 | 一种基于ElasticSearch与HBase的分布式数据存储系统 |
CN109299102A (zh) * | 2018-10-23 | 2019-02-01 | 中国电子科技集团公司第二十八研究所 | 一种基于Elastcisearch的HBase二级索引系统及方法 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
-
2019
- 2019-09-25 CN CN201910910842.3A patent/CN110688382B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140188825A1 (en) * | 2012-12-31 | 2014-07-03 | Kannan Muthukkaruppan | Placement policy |
WO2016180123A1 (zh) * | 2015-09-25 | 2016-11-17 | 中兴通讯股份有限公司 | HBase二级索引创建方法和装置 |
CN105787118A (zh) * | 2016-03-25 | 2016-07-20 | 武汉工程大学 | HBase二级索引的设计方法及查询方法 |
CN107273482A (zh) * | 2017-06-12 | 2017-10-20 | 北京市天元网络技术股份有限公司 | 基于HBase的告警数据存储方法及装置 |
CN110019199A (zh) * | 2017-09-29 | 2019-07-16 | 株式会社理光 | 数据存储、查询方法、装置、设备、计算机可读存储介质 |
CN108763436A (zh) * | 2018-05-25 | 2018-11-06 | 福州大学 | 一种基于ElasticSearch与HBase的分布式数据存储系统 |
CN109299102A (zh) * | 2018-10-23 | 2019-02-01 | 中国电子科技集团公司第二十八研究所 | 一种基于Elastcisearch的HBase二级索引系统及方法 |
Non-Patent Citations (3)
Title |
---|
R.F.GIBADULLIN 等: "Service-Orientied Distributed Energy Data Management Using Big Data Technologies", 《2019 INTERNATIONAL CONFERENCE ON INDUSTRIAL ENGINEERING,APPLICATIONS AND MANUFACTURING》 * |
许丹阳: "基于HBase的交通卡口数据存储和查询系统研发", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
黄明 等: "一种通用的工业大数据应用中海量对象存储方法实现", 《冶金自动化》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506992A (zh) * | 2020-12-04 | 2021-03-16 | 中国人寿保险股份有限公司 | Kafka数据的模糊查询方法、装置、电子设备和存储介质 |
CN112506992B (zh) * | 2020-12-04 | 2024-04-16 | 中国人寿保险股份有限公司 | Kafka数据的模糊查询方法、装置、电子设备和存储介质 |
CN112612805A (zh) * | 2020-12-24 | 2021-04-06 | 北京浪潮数据技术有限公司 | 一种hbase数据索引到查询引擎的方法和相关装置 |
CN112612805B (zh) * | 2020-12-24 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种hbase数据索引到查询引擎的方法和相关装置 |
CN113094340A (zh) * | 2021-04-28 | 2021-07-09 | 杭州海康威视数字技术股份有限公司 | 基于Hudi的数据查询方法、装置、设备及存储介质 |
CN113312383A (zh) * | 2021-06-01 | 2021-08-27 | 拉卡拉支付股份有限公司 | 数据查询方法、装置、电子设备、存储介质及程序产品 |
CN113312353A (zh) * | 2021-06-10 | 2021-08-27 | 中国民航信息网络股份有限公司 | 一种跟踪带日志的存储方法及系统 |
CN113312353B (zh) * | 2021-06-10 | 2024-06-04 | 中国民航信息网络股份有限公司 | 一种跟踪带日志的存储方法及系统 |
CN114090589A (zh) * | 2022-01-20 | 2022-02-25 | 苏州浪潮智能科技有限公司 | 基于HBase的数据查询方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110688382B (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110688382B (zh) | 数据存储查询方法、装置、计算机设备及存储介质 | |
US11586692B2 (en) | Streaming data processing | |
US11921672B2 (en) | Query execution at a remote heterogeneous data store of a data fabric service | |
US12007996B2 (en) | Management of distributed computing framework components | |
US11151137B2 (en) | Multi-partition operation in combination operations | |
US11989194B2 (en) | Addressing memory limits for partition tracking among worker nodes | |
US10896182B2 (en) | Multi-partitioning determination for combination operations | |
US20220327149A1 (en) | Dynamic partition allocation for query execution | |
US11416528B2 (en) | Query acceleration data store | |
US11232100B2 (en) | Resource allocation for multiple datasets | |
US11163758B2 (en) | External dataset capability compensation | |
US20200050612A1 (en) | Supporting additional query languages through distributed execution of query engines | |
US20190205293A1 (en) | Systems and methods for concurrent summarization of indexed data | |
US20180089262A1 (en) | Dynamic resource allocation for common storage query | |
CN106776855B (zh) | 基于Spark Streaming读取Kafka数据的处理方法 | |
US8078628B2 (en) | Streaming faceted search | |
WO2017096892A1 (zh) | 索引构建方法、查询方法及对应装置、设备、计算机存储介质 | |
US10268768B2 (en) | Method and system for preparing website data in response to a webpage request | |
CN110162522A (zh) | 一种分布式数据搜索系统及方法 | |
CN109815240B (zh) | 用于管理索引的方法、装置、设备和存储介质 | |
WO2022165168A1 (en) | Configuring an instance of a software program using machine learning | |
CN110889023A (zh) | 一种elasticsearch的分布式多功能搜索引擎 | |
US9390131B1 (en) | Executing queries subject to different consistency requirements | |
US7974965B2 (en) | Federated pagination management | |
KR20190129474A (ko) | 데이터 검색 장치 및 방법 |
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 |