CN106354829A - 一种列存数据库的物化方法及装置 - Google Patents
一种列存数据库的物化方法及装置 Download PDFInfo
- Publication number
- CN106354829A CN106354829A CN201610777661.4A CN201610777661A CN106354829A CN 106354829 A CN106354829 A CN 106354829A CN 201610777661 A CN201610777661 A CN 201610777661A CN 106354829 A CN106354829 A CN 106354829A
- Authority
- CN
- China
- Prior art keywords
- materialization
- data
- line number
- sequence
- ranked
- 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/221—Column-oriented 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
本发明提供了一种列存数据库的物化方法及装置,其中,所述方法包括:按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化;将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。通过将乱序的行号索引排序,提前将该维度数据物化,以避免频繁的重复I/O。然后通过高效的排序算法将物化的数据调整顺序,使原来的维度可以顺序物化。最后将原来的乱序行号索引换成顺序的索引,基于新的数据物化。提高了join后物化的性能,减少了大量的重复I/O。
Description
技术领域
本发明属于列存数据库技术领域,尤其是涉及一种列存数据库的物化方法及装置。
背景技术
随着大数据分析和数据挖掘等领域的不断发展,数据库处理的数据量越来越大,远远超出了内存的范围,为了有效处理数据,出现了新型的列存数据库。列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于小批量的数据处理,常用于联机事务型数据处理。它将数据按照逻辑列的形式集中进行存储,能够获得更高的压缩比,减少数据访问时不必要的磁盘I/O。
晚期物化策略,是指在数据库的操作过程中,将命中的数据位置(我们称之为行号索引)记录下来,而不是把最终需要的数据都提前物化到内存中。这种策略能更好地利用数据库的列存特性,避免无效I/O,有效利用内存,整体提高查询性能。
但是在某些场景下,如join操作,晚期物化使用的行号索引的顺序比较杂乱无序,没有规律,会引起大量的重复I/O。列存储的方式通常是同一列的数据被划分为若干个数据块,每个数据块中的记录个数相同,这样做的好处是分散管理,节省内存。当需要的数据块命中时,会从磁盘该数据块到内存中,当其他数据块命中同时内存不足时,又会将该数据块从内存中释放。join算子使用的晚期物化策略,是将不同维度命中的数据行号索引记录下来,在最终物化时根据这些行号索引进行物化,从磁盘读取数据。当数据比较分散时,有的维度就会出现读取->释放->读取->释放......的重复I/O操作。导致性能严重下降,查询时开销大。
发明内容
本发明实施例提供了一种列存数据库的物化方法及装置,以解决现有技术中超大规模数据量下列存数据库运用晚期物化策略导致性能严重下降的技术问题。
一方面。本发明实施例提供了一种列存数据库的物化方法,包括:
按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化;
将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。
进一步的,所述方法还包括:
按照物化序号进行排序;
将排序结果作为顺序数据源。
另一方面,本发明实施例还提供了一种列存数据库的物化装置,包括:
第一排序单元,用于按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化;
第二排序单元,用于将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。
进一步的,所述装置还包括:
第三排序单元,用于按照物化序号进行排序;
数据源生成单元,用于将排序结果作为顺序数据源。
本发明实施例提供了一种列存数据库的物化方法及装置,通过将乱序的行号索引排序,提前将该维度数据物化,以避免频繁的重复I/O。然后通过高效的排序算法将物化的数据调整顺序,使原来的维度可以顺序物化。最后将原来的乱序行号索引换成顺序的索引,基于新的数据物化。提高了join后物化的性能,减少了大量的重复I/O。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的列存数据库的物化方法的流程示意图;
图2是本发明实施例二提供的列存数据库的物化方法装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的分列存数据库的物化方法的流程图,本实施例可适用于数据量很大,内存仅能缓存住部分数据,同时行号索引乱序比较严重时,对列存数据库进行物化的情况,该方法可以由列存数据库的物化装置来执行,该装置可由软件/硬件方式实现,并可集成于列存数据库中。
参见图1,所述分布式数据库系统数据的分发方法,包括:
S110,按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化。
示例性的,以下述列存数据库为例,t1为数据代码行号索引,假设一个数据块中只包含一行数据,且内存中只能放两条数据,那么下述的I/O次数为:(t1->1)+(t2->1)+(t2->2)+(t1->2)+(t2->1)+(t2->2)+(t1->3)+(t2->1)+(t2->2)+(t1->4)+(t2->1)+(t2->2)+(t1->5)+(t2->1)+(t2->2)=15;归纳为计算公式为:t1.cnt+t1.cnt*t2.cnt=5+5*2=15;而t1.cnt+t1.cnt*t2.cnt≈t1.cnt*t2.cnt;(当t2.cnt比较大时),如t1的数据块为1000,t2的数据块为100,那么I/O次数约为100000次
原来的索引行号是乱序的,如上述实例中的t2维度,排序后的效果如如下所示:
此时根据t2的行号索引物化,只需(t2->1)+(t2->2)=2次读I/O,同时将物化的数据写入磁盘,还需要10(需要物化的行数rows)次写I/O,总结成公式为:t2.cnt次读I/O+需要物化的行数rows次写I/O,即t2.cnt+rows。
S120,将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。
根据最新的行号索引和新的数据进行最终的物化,物化的结果如下所示:
物化需要读(t1->1)+(t1->2)+(t1->3)+(t1->4)+(t1->5)+rows=t1.cnt+rows次I/O,完成物化。
通过以上步骤,完成了最终的物化,I/O次数为:步骤1中的t2.cnt+rows次+步骤2中的2*rows次+步骤3中的t1.cnt+rows次,计算公式为t1.cnt+t2.cnt+4*rows次;而不做优化前的I/O次数约为t1.cnt*t2.cnt。可以看出,当t1.cnt和t2.cnt比较大时,优化前的I/O次数比优化后高一个数量级。
本实施例通过将乱序的行号索引排序,提前将该维度数据物化,以避免频繁的重复I/O。然后通过高效的排序算法将物化的数据调整顺序,使原来的维度可以顺序物化。最后将原来的乱序行号索引换成顺序的索引,基于新的数据物化。提高了join后物化的性能,减少了大量的重复I/O。
实施例二
图2是本发明实施例二提供的列存数据库的物化方法装置的结构示意图,如图2所示,所述装置包括:
第一排序单元210,用于按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化;
第二排序单元220,用于将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。
进一步的,所述装置还包括:
第三排序单元,用于按照物化序号进行排序;
数据源生成单元,用于将排序结果作为顺序数据源。
本发明实施例提供了一种列存数据库的物化方法及装置,通过将乱序的行号索引排序,提前将该维度数据物化,以避免频繁的重复I/O。然后通过高效的排序算法将物化的数据调整顺序,使原来的维度可以顺序物化。最后将原来的乱序行号索引换成顺序的索引,基于新的数据物化。提高了join后物化的性能,减少了大量的重复I/O。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种列存数据库的物化方法,其特征在于,包括:
按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化;
将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。
2.根据权利要求1所述的方法,其特征在于:所述方法还包括:
按照物化序号进行排序;
将排序结果作为顺序数据源。
3.一种列存数据库的物化装置,其特征在于,包括:
第一排序单元,用于按照列存数据库物化需要的行号索引进行排序,将排序后的数据进行物化;
第二排序单元,用于将物化的数据根据物化序号排序,按照所述行号索引对数据进行物化。
4.根据权利要求3所述的装置,其特征在于:所述装置还包括:
第三排序单元,用于按照物化序号进行排序;
数据源生成单元,用于将排序结果作为顺序数据源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610777661.4A CN106354829A (zh) | 2016-08-31 | 2016-08-31 | 一种列存数据库的物化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610777661.4A CN106354829A (zh) | 2016-08-31 | 2016-08-31 | 一种列存数据库的物化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106354829A true CN106354829A (zh) | 2017-01-25 |
Family
ID=57857004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610777661.4A Pending CN106354829A (zh) | 2016-08-31 | 2016-08-31 | 一种列存数据库的物化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019971A (zh) * | 2017-09-21 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种索引创建方法、装置及数据库系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122033B2 (en) * | 2008-01-09 | 2012-02-21 | International Business Machines Corporation | Database query optimization |
CN102521303A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种用于列数据库的单表多列序存储方法 |
CN103440245A (zh) * | 2013-07-15 | 2013-12-11 | 西北工业大学 | 数据库系统的行列混合存储方法 |
CN104572893A (zh) * | 2014-12-24 | 2015-04-29 | 天津南大通用数据技术股份有限公司 | 一种数据库中的数据混合存储方法 |
US20150269202A1 (en) * | 2014-03-21 | 2015-09-24 | Futurewei Technologies, Inc. | System and method for column-specific materialization scheduling |
-
2016
- 2016-08-31 CN CN201610777661.4A patent/CN106354829A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8122033B2 (en) * | 2008-01-09 | 2012-02-21 | International Business Machines Corporation | Database query optimization |
CN102521303A (zh) * | 2011-11-30 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种用于列数据库的单表多列序存储方法 |
CN103440245A (zh) * | 2013-07-15 | 2013-12-11 | 西北工业大学 | 数据库系统的行列混合存储方法 |
US20150269202A1 (en) * | 2014-03-21 | 2015-09-24 | Futurewei Technologies, Inc. | System and method for column-specific materialization scheduling |
CN104572893A (zh) * | 2014-12-24 | 2015-04-29 | 天津南大通用数据技术股份有限公司 | 一种数据库中的数据混合存储方法 |
Non-Patent Citations (1)
Title |
---|
张滨等: "基于列存储的大数据分析系统物化策略研究", 《计算机研究与发展》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019971A (zh) * | 2017-09-21 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种索引创建方法、装置及数据库系统 |
CN110019971B (zh) * | 2017-09-21 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 一种索引创建方法、装置及数据库系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485689C (zh) | 基于文件系统缓存的数据加速查询方法 | |
CN103577440B (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
US6546394B1 (en) | Database system having logical row identifiers | |
CN103902702B (zh) | 一种数据存储系统和存储方法 | |
CN102129442B (zh) | 一种分布式数据库系统和数据访问方法 | |
CN102799634A (zh) | 数据存储方法及装置 | |
CN108897761A (zh) | 一种聚簇存储方法及装置 | |
CN110109910A (zh) | 数据处理方法及系统、电子设备和计算机可读存储介质 | |
CN104112011B (zh) | 一种海量数据提取的方法及装置 | |
CN104685499A (zh) | 过滤/投影操作的硬件实现 | |
CN105359142B (zh) | 哈希连接方法和装置 | |
CN104991741B (zh) | 一种基于键值模型的情境适配电网大数据存储方法 | |
CN103500224A (zh) | 一种数据写入方法及装置、数据读取方法及装置 | |
CN105095255A (zh) | 一种数据索引创建方法及装置 | |
US7725448B2 (en) | Method and system for disjunctive single index access | |
CN111324781A (zh) | 一种数据分析方法、装置及设备 | |
CN106802787B (zh) | 基于GPU排序的MapReduce优化方法 | |
CN103500226A (zh) | 一种去除敏感数据敏感性的方法及装置 | |
CN101295316B (zh) | 位图索引方法、位图索引单元以及智能卡 | |
CN114741368A (zh) | 基于人工智能的日志数据统计方法及相关设备 | |
CN108228634A (zh) | 一种数据处理方法及装置 | |
CN106354829A (zh) | 一种列存数据库的物化方法及装置 | |
Xylogiannopoulos et al. | Periodicity data mining in time series using suffix arrays | |
CN109213751B (zh) | 一种基于Spark平台的Oracle数据库并行迁移方法 | |
CN113360551B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170125 |
|
RJ01 | Rejection of invention patent application after publication |