CN105893435A - 数据加载及存储设备、方法、以及系统 - Google Patents
数据加载及存储设备、方法、以及系统 Download PDFInfo
- Publication number
- CN105893435A CN105893435A CN201510920732.7A CN201510920732A CN105893435A CN 105893435 A CN105893435 A CN 105893435A CN 201510920732 A CN201510920732 A CN 201510920732A CN 105893435 A CN105893435 A CN 105893435A
- Authority
- CN
- China
- Prior art keywords
- data
- rcfile
- file
- row
- load
- 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
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/2291—User-Defined Types; Storage management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据接收、存储及查询领域,公开了一种数据加载及存储设备、方法、以及数据加载、存储及查询系统,其可显著提高数据的存储性能和查询性能。所述数据加载及存储设备,该设备包括:存储单元,用于存储RCfile格式文件;读取单元,用于读取数据;以及数据加载单元,用于:根据元数据定义,从所述数据内读取索引字段数据;根据该索引字段数据、所述RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及将所述数据及索引文件作为行记录存入所述RCfile格式文件内。
Description
技术领域
本发明涉及数据存储及查询领域,具体地,涉及一种数据加载及存储设备、方法、以及数据加载、存储及查询系统。
背景技术
在互联网和通信行业,用户时时刻刻都在产生海量的行为数据(比如上网记录、通话记录等),而如何有效地存储和查询海量数据是目前面临的一个十分重要的问题。
现有技术中,解决数据存储的方案是使用传统关系型数据库或者非关系型数据库对数据进行存储,但它们在面对海量的数据进行存储时,会存在以下不足之处:1、由于在数据量与内存比为3:1时才能达到较好的查询速度,因此,面对海量的数据,若想得到较好的查询速度,则需要巨大的内存;2、由于数据的压缩支持不足,因此,需要更多的存储空间来完成数据存储。
发明内容
本发明的目的是提供一种数据加载及存储设备、方法、以及数据加载、存储及查询系统,其可显著提高数据的存储性能和查询性能。
为了实现上述目的,本发明提供一种数据加载及存储设备,该设备包括:存储单元,用于存储RCfile格式文件;读取单元,用于读取数据;以及数据加载单元,用于:根据元数据定义,从所述数据内读取索引字段数据;根据该索引字段数据、所述RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及将所述数据及索引文件作为行记录存入所述RCfile格式文件内。
优选地,所述数据加载单元在将所述数据及索引文件作为行记录存入所述RCfile格式文件之前,将所述数据及索引文件作为行记录存入临时数据队列内,并在该临时数据队列内的行记录的数量达到预设数量的情况下,将该临时数据队列内的行记录存入所述RCfile格式文件内。
优选地,所述读取单元从Apache Kafka集群读取所述数据。
优选地,该数据加载及存储设备为Apache Hadoop集群。
优选地,所述数据加载单元还用于将所述索引文件加载到Apache Solr集群的行记录索引文件内。
相应地,本发明还提供一种数据加载及存储方法,该方法包括:读取数据;根据元数据定义,从所述数据内读取索引字段数据;根据该索引字段数据、RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及将所述数据及索引文件作为行记录存入所述RCfile格式文件内。
优选地,在将所述数据及索引文件作为行记录存入所述RCfile格式文件之前,该方法还包括:将所述数据及索引文件作为行记录存入临时数据队列内,并在该临时数据队列内的行记录的数量达到预设数量的情况下,将该临时数据队列内的行记录存入所述RCfile格式文件内。
优选地,从Apache Kafka集群读取所述数据。
优选地,该数据加载及存储方法由Apache Hadoop集群实施。
优选地,该方法还包括:将所述索引文件加载到Apache Solr集群的行记录索引文件内。
相应地本发明还提供一种数据加载、存储及查询系统,该系统包含:Apache Kafka集群,用于从一个以上数据源接收数据;上述数据加载及存储设备;以及Apache Solr集群,用于接收查询条件,根据该查询条件获取相应数据的RCfile格式文件的路径及行ID,并根据该RCfile格式文件的路径及行ID获取相应的数据。
本发明的上述数据加载、存储及查询系统利用了Apache Kafka集群统一、高通量、且低等待的消息系统接收来自多个数据源的数据,利用上述数据加载及存储设备来对所述Apache Kafka集群接收的数据进行存储,并利用可提供高效全文检索服务的Apache Solr集群满足数据查询的需求,整体而言,上述数据加载、存储及查询系统的数据读取速度及数据查询速度大幅提高。另外,由于采用RCfile格式文件来进行数据存储,可支持1:3到1:10的压缩比,大幅节省存储空间。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1为本发明提供的数据加载、存储及查询系统的结构示意图;
图2为数据加载及存储方法的流程图;
图3为RCfile格式文件的数据目录示意图;
图4为数据加载及存储方法的一具体实施方式的流程图;以及
图5为数据查询方法的流程图。
附图标记说明
100 Apache Kafka集群 200 数据加载及存储设备
300 Apache Solr集群 210 存储单元
220 读取单元 230 数据加载单元
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1为本发明提供的数据加载、存储及查询系统的结构示意图。如图1所述,本发明提供一种数据加载、存储及查询系统,该系统包含:ApacheKafka集群100,用于从一个以上数据源接收数据;数据加载及存储设备200(例如,Apache Hadoop集群);以及Apache Solr集群300,用于接收查询条件,根据该查询条件获取相应数据的RCfile格式文件的路径及行ID,并根据该RCfile格式文件的路径及行ID获取相应的数据。其中,所述数据加载及存储设备200包括:存储单元210,用于存储RCfile格式文件;读取单元220,用于读取数据(例如,从上述Apache Kafka集群100读取该Apache Kafka集群100所接收的数据);以及数据加载单元230,用于:根据元数据定义,从所述数据内读取索引字段数据;根据该索引字段数据、所述RCfile格式文件的路径(即,该RCfile格式文件在所述存储单元210上的存储路径)、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及将所述数据及索引文件作为行记录存入所述RCfile格式文件内。该数据加载及存储设备200所执行的数据加载及存储流程可参阅图2。
需要说明的是,上述元数据的定义可以是事先定义好的,其规定了所述数据各个字段的含义。Apache Kafka集群100所接收的数据均可按照该元数据的定义而被生成,从而本发明的数据加载、存储及查询系统可依据所述元数据的定义来从所读取的数据内提取索引字段数据。
所述RCfile格式文件的数据目录可如图3所示。该RCfile格式文件可包含数据字段“data”、数据名称字段“dataname1”、表名字段“Tablename1”、配置字段“conf”、临时文件存储字段“temp”(可用于存储索引文件)。所述数据加载及存储设备200可将所读取的数据及该数据的索引文件作为行记录存入所述RCfile格式文件内的相应目录下。以下示出了创建该RCfile格式文件的代码:
上述系统充分利用了Apache Kafka集群、Apache Hadoop集群以及Apache Solr集群各自在数据接收、数据存储以及数据查询方面的优势,使得本发明的系统的数据接收速度、存储速度及查询速度大幅提高。另外,本发明可自动将Apache Kafka集群所接收的数据存入RCfile格式文件,该RCfile格式文件可支持1:3到1:10的压缩比,大幅节省存储空间。
图4为数据加载及存储方法的一具体实施方式的流程图。如图4所述,所述数据加载单元230首先可启动数据加载MapReduce任务,建立与Apache Kafka集群100的连接,从该Apache Kafka集群100读取数据。之后,可根据元数据定义,从所读取的数据内提取索引字段数据,并根据该索引字段数据、RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所读取的数据的行的ID,生成索引文件。之后,可将所读取的数据及所生成的索引文件作为行记录存入临时数据队列内,并进一步判断该临时数据队列内的行记录的数量是否达到预设数量。在所述临时数据队列内的行记录的数量是否达到预设数量的情况下,可将临时数据队列内的行记录存入所述RCfile格式文件内,否则重复执行上述数据读取、索引字段数据提取、索引文件生成的步骤。藉此,可减少对RCfile格式文件的写入次数,提高存储效率。
优选地,所述数据加载单元230还可用于将所述索引文件加载到Apache Solr集群300的行记录索引文件内,藉此Apache Solr集群300在接收到查询条件之后,可根据该查询条件直接从所述行记录索引文件内进行检索,而无需在所述数据加载及存储设备200内的索引文件内进行检索,提高数据查询效率。
所述Apache Solr集群300所执行的数据查询方法可如图5所示。Apache Solr集群300可从终端接收查询条件(例如,SQL语句),从该查新条件内解析出索引字段条件,之后根据该索引字段条件从该Apache Solr集群300的行记录索引文件内检索符合该索引字段条件的行记录。在检索到符合所述索引字段条件的行记录的情况下,可根据该行记录内的RCfile格式文件的路径及行ID,从所述Apache Hadoop集群200找到路径下的RCfile格式文件以及该RCfile格式文件内对应于所述行ID的行记录,从该行记录内获取数据,并将该数据反馈给所述终端。在未检索到符合所述索引字段条件的行记录的情况下,可反馈指示未检索到符合所述索引字段条件的数据的指示至所述终端。
相应地,如图2所示,本发明还提供一种数据加载及存储方法,该方法包括:读取数据;根据元数据定义,从所述数据内读取索引字段数据;根据该索引字段数据、RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及将所述数据及索引文件作为行记录存入所述RCfile格式文件内。
本发明提供的该方法可将数据自动存储至RCfile格式文件内,由于采用RCfile格式文件来进行数据存储,可支持1:3到1:10的压缩比,从而可大幅节省存储空间。
如图4所示,优选地,在将所述数据及索引文件作为行记录存入所述RCfile格式文件之前,该方法还包括:将所述数据及索引文件作为行记录存入临时数据队列内,并在该临时数据队列内的行记录的数量达到预设数量的情况下,将该临时数据队列内的行记录存入所述RCfile格式文件内。藉此,可减少对RCfile格式文件的写入次数,提高存储效率。
上述方法中所读取的数据可来自所述Apache Kafka集群,该ApacheKafka集群接收来自一个以上数据源的数据。
优选地,本发明提供的所述数据加载及存储方法可由Apache Hadoop集群实施。该Apache Hadoop集群为分布式计算及分布式存储海量数据的集群,其在存储数据方面具有速度快的优势。该Apache Hadoop集群内单机的存储速度能够达到6万行记录/秒,而Apache Hadoop集群的存储速度能够达到集群内单机数量*6万行记录/秒。
优选地,所述数据加载及存储方法还包括:将所述索引文件加载到Apache Solr集群的行记录索引文件内。藉此,可使得Apache Solr集群在接收到查询条件之后,根据该查询条件直接从所述行记录索引文件内进行检索,而无需在所述数据加载及存储设备200内的索引文件内进行检索,提高数据查询效率。
本发明的上述数据加载、存储及查询系统利用了Apache Kafka集群统一、高通量、且低等待的消息系统接收来自多个数据源的数据,利用可通过分布式计算及分布式存储海量数据的Apache Hadoop集群来对所述Apache Kafka集群接收的数据进行存储,并利用可提供高效全文检索服务的Apache Solr集群满足数据查询的需求,整体而言,上述数据加载、存储及查询系统的数据读取速度、数据存储速度及数据查询速度大幅提高。就存储速度而言,Apache Hadoop集群内单机的存储速度能够达到6万行记录/秒,而Apache Hadoop集群的存储速度能够达到集群内单机数量*6万行记录/秒。另外,由于采用RCfile格式文件来进行数据存储,可支持1:3到1:10的压缩比,大幅节省存储空间。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (11)
1.一种数据加载及存储设备,其特征在于,该设备包括:
存储单元,用于存储RCfile格式文件;
读取单元,用于读取数据;以及
数据加载单元,用于:
根据元数据定义,从所述数据内读取索引字段数据;
根据该索引字段数据、所述RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及
将所述数据及索引文件作为行记录存入所述RCfile格式文件内。
2.根据权利要求1所述的数据加载及存储设备,其特征在于,所述数据加载单元在将所述数据及索引文件作为行记录存入所述RCfile格式文件之前,将所述数据及索引文件作为行记录存入临时数据队列内,并在该临时数据队列内的行记录的数量达到预设数量的情况下,将该临时数据队列内的行记录存入所述RCfile格式文件内。
3.根据权利要求1所述的数据加载及存储设备,其特征在于,所述读取单元从Apache Kafka集群读取所述数据。
4.根据权利要求1所述的数据加载及存储设备,其特征在于,该数据加载及存储设备为Apache Hadoop集群。
5.根据权利要求1-4中任一项权利要求所述的数据加载及存储设备,其特征在于,所述数据加载单元还用于将所述索引文件加载到Apache Solr集群的行记录索引文件内。
6.一种数据加载及存储方法,其特征在于,该方法包括:
读取数据;
根据元数据定义,从所述数据内读取索引字段数据;
根据该索引字段数据、RCfile格式文件的路径、以及该RCfile格式文件内将用于存储所述数据的行的ID,生成索引文件;以及
将所述数据及索引文件作为行记录存入所述RCfile格式文件内。
7.根据权利要求6所述的数据加载及存储方法,其特征在于,在将所述数据及索引文件作为行记录存入所述RCfile格式文件之前,该方法还包括:将所述数据及索引文件作为行记录存入临时数据队列内,并在该临时数据队列内的行记录的数量达到预设数量的情况下,将该临时数据队列内的行记录存入所述RCfile格式文件内。
8.根据权利要求6所述的数据加载及存储方法,其特征在于,从ApacheKafka集群读取所述数据。
9.根据权利要求6所述的数据加载及存储方法,其特征在于,该数据加载及存储方法由Apache Hadoop集群实施。
10.根据权利要求6-9中任一项权利要求所述的数据加载及存储方法,其特征在于,该方法还包括:
将所述索引文件加载到Apache Solr集群的行记录索引文件内。
11.一种数据加载、存储及查询系统,该系统包含:
Apache Kafka集群,用于从一个以上数据源接收数据;
根据权利要求1-5中任一项权利要求所述的数据加载及存储设备;以及
Apache Solr集群,用于接收查询条件,根据该查询条件获取相应数据的RCfile格式文件的路径及行ID,并根据该RCfile格式文件的路径及行ID获取相应的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510920732.7A CN105893435A (zh) | 2015-12-11 | 2015-12-11 | 数据加载及存储设备、方法、以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510920732.7A CN105893435A (zh) | 2015-12-11 | 2015-12-11 | 数据加载及存储设备、方法、以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893435A true CN105893435A (zh) | 2016-08-24 |
Family
ID=57002867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510920732.7A Pending CN105893435A (zh) | 2015-12-11 | 2015-12-11 | 数据加载及存储设备、方法、以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893435A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339183A (zh) * | 2016-08-29 | 2017-01-18 | 东软集团股份有限公司 | 数据检索的方法及服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996250A (zh) * | 2010-11-15 | 2011-03-30 | 中国科学院计算技术研究所 | 一种基于Hadoop的海量流数据存储和查询方法及系统 |
CN102663107A (zh) * | 2012-04-16 | 2012-09-12 | 深圳市华曦达科技股份有限公司 | 嵌入式数据管理的方法及系统 |
CN103353901A (zh) * | 2013-08-01 | 2013-10-16 | 百度在线网络技术(北京)有限公司 | 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统 |
CN103440244A (zh) * | 2013-07-12 | 2013-12-11 | 广东电子工业研究院有限公司 | 一种大数据存储优化方法 |
CN104079983A (zh) * | 2014-06-26 | 2014-10-01 | 江苏省邮电规划设计院有限责任公司 | 一种hls节目录制和服务的系统和方法 |
CN105095421A (zh) * | 2015-07-14 | 2015-11-25 | 南京国电南自美卓控制系统有限公司 | 一种实时数据库的分布式的存储方法 |
-
2015
- 2015-12-11 CN CN201510920732.7A patent/CN105893435A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996250A (zh) * | 2010-11-15 | 2011-03-30 | 中国科学院计算技术研究所 | 一种基于Hadoop的海量流数据存储和查询方法及系统 |
CN102663107A (zh) * | 2012-04-16 | 2012-09-12 | 深圳市华曦达科技股份有限公司 | 嵌入式数据管理的方法及系统 |
CN103440244A (zh) * | 2013-07-12 | 2013-12-11 | 广东电子工业研究院有限公司 | 一种大数据存储优化方法 |
CN103353901A (zh) * | 2013-08-01 | 2013-10-16 | 百度在线网络技术(北京)有限公司 | 基于Hadoop分布式文件系统的表数据的有序管理方法以及系统 |
CN104079983A (zh) * | 2014-06-26 | 2014-10-01 | 江苏省邮电规划设计院有限责任公司 | 一种hls节目录制和服务的系统和方法 |
CN105095421A (zh) * | 2015-07-14 | 2015-11-25 | 南京国电南自美卓控制系统有限公司 | 一种实时数据库的分布式的存储方法 |
Non-Patent Citations (1)
Title |
---|
HE YONGQIANG等: "RCFile:a Fast and Space-efficient Data Placement Structure in MapReduce-based Warehouse systems", 《PROCEEDINGS OF THE IEEE INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106339183A (zh) * | 2016-08-29 | 2017-01-18 | 东软集团股份有限公司 | 数据检索的方法及服务器 |
CN106339183B (zh) * | 2016-08-29 | 2020-02-11 | 东软集团股份有限公司 | 数据检索的方法及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104252536B (zh) | 一种基于hbase的上网日志数据查询方法及装置 | |
CN106227800B (zh) | 一种高度关联大数据的存储方法及管理系统 | |
CN102906751A (zh) | 一种数据存储、数据查询的方法及装置 | |
CN102323947B (zh) | 环形架构数据库上预连接表的生成方法 | |
CN103488704B (zh) | 一种数据存储方法及装置 | |
CN107145537B (zh) | 一种表格数据导入方法及系统 | |
CN103888547B (zh) | 一种账单处理方法和服务器 | |
WO2019105420A1 (zh) | 数据查询 | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN104063487A (zh) | 基于关系型数据库及k-d树索引的文件数据管理方法 | |
CN102402602A (zh) | 一种实时数据库的b+树索引方法及装置 | |
CN104408159A (zh) | 一种数据关联、加载、查询方法及装置 | |
JP2013186890A (ja) | データベースミドルウェアを用いたデータ管理システム及びその方法 | |
CN111159219B (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
CN105095458A (zh) | 一种基于时间特征支持复杂条件的大数据检索方法 | |
CN104268298A (zh) | 一种创建数据库索引及其查询的方法 | |
CN102438004A (zh) | 获取媒体文件的元数据信息的方法、系统及多媒体播放器 | |
CN104486777A (zh) | 一种实现数据处理的方法及装置 | |
CN104217011A (zh) | HBase二级索引表的查询方法和装置 | |
CN110109874A (zh) | 一种基于区块链的无中心分布式文件检索方法 | |
CN104915148A (zh) | 用于串流存储装置中的高效内容高速缓冲存储的系统和方法 | |
CN102622361B (zh) | 一种数据库查询方法 | |
CN101533394B (zh) | 一种日历事件的查询方法、系统及移动终端 | |
CN103425694B (zh) | 关系型数据的搜索方法和装置 | |
CN108255955B (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |