CN108416027B - 一种基于范围查询边界集的合并数据分片优化方法 - Google Patents
一种基于范围查询边界集的合并数据分片优化方法 Download PDFInfo
- Publication number
- CN108416027B CN108416027B CN201810194425.9A CN201810194425A CN108416027B CN 108416027 B CN108416027 B CN 108416027B CN 201810194425 A CN201810194425 A CN 201810194425A CN 108416027 B CN108416027 B CN 108416027B
- Authority
- CN
- China
- Prior art keywords
- data
- cost
- query
- slice
- deviation
- 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.)
- Expired - Fee Related
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (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
本发明公开了一种基于范围查询边界集的自底向上合并数据分片优化方法,其特征是,包括如下步骤:1)建立范围查询负载下的数据访问概率模型;2)用范围查询边界集初始化分片方案P;3)计算相邻两个数据片合并带来的代价偏差Fc;4)遍历代价偏差数组,找出最小代价偏差,合并这两个相邻数据片;5)更新步骤4)合并影响的代价偏差数组中的两个代价偏差值,重新计算Fc;6)跳转到步骤4),循环执行数据片合并,直到达到数据最优分片数。这种方法地降低了数据的管理维护开销,得到了最优的数据查询代价,从而提高了查询效率。
Description
技术领域
本发明涉及面向大数据上具有倾斜特性的范围查询负载下的数据分片优化技术,具体是一种基于范围查询边界集的自底向上合并数据分片优化方法。
背景技术
数据之间存在着关联关系,数据倾斜意味着数据的关联存在某种模式,找到并利用数据之间的关联模式是进行查询优化的有效方法。在倾斜的范围查询负载下,在数据的某个属性上,一些连续的记录经常被范围查询同时命中。从数据管理的角度看,经常被同时命中的记录可以被看作一个整体,用一份元数据标识,查询时整体地被读取或者被跳过,这样多条记录的管理和维护成本都可以大大降低。为了获得最优的范围查询性能,为数据划分切片的最优分片位置一定是在范围查询的边界上,因为从来没有被范围查询分割开的相邻数据理应被看作一个整体而存在于同一个数据片中。
发明内容
本发明的目的是针对现有技术的不足,为数据集提供一种高效的最优化分片方法。这种方法基于范围查询边界集为数据初始化分片,通过自底向上合并高效地实现数据的最优分片,从而能降低数据的管理维护开销、以及数据查询中的定位寻址代价和传输代价、提高查询效率。
实现本发明的目的的技术方案是:
一种基于范围查询边界集的自底向上合并数据分片优化方法,与现有技术不同的是,包括如下步骤:
1)建立范围查询负载下的数据访问概率模型:定义数据集上范围查询的所有边界组成的集合叫做范围查询边界集,在基于记录的数据组织方式下,一条数据记录的查询累积概率=数据记录被查询负载访问的次数/总查询次数,在基于数据片的数据组织方式下,定义第k个数据片DSk的长度为lk,数据片DSk上的查询累积概率为Pk,由于对数据片DSk上任意记录的访问都体现为对数据片DSk的访问,因此数据片DSk查询累积概率 Pk取值为DSk所含数据记录的查询累积概率的最大值,数据片DSk上的查询代价表示为:
DSk上的查询代价=定位寻址代价+数据传输代价
=磁盘每次定位寻址代价S×DSk的查询累积概率Pk+数据片的长度lk×每字节数据的传输代价×DSk的查询累积概率Pk,由于数据分片后,可能存在查询“误命中”的情况,即片内部分数据不是查询结果集,但会被访问的情况,这就带来了额外的传输开销,定义这部分额外的传输开销叫做代价偏差,用Fc表示,数据的分片粒度越粗,则数据查询的定位寻址代价越小,而数据传输代价偏差越大,导致数据传输代价越大,反之亦然,数据的分片粒度越细,则数据查询的定位寻址代价越大,数据传输代价越小,也就是说,定位寻址代价和数据传输代价是两个互相制约的指标,因此在倾斜范围查询工作负载下,数据分片问题是一个最优化问题;
2)用范围查询边界集初始化分片方案P:假设范围查询边界集中有B个不同的元素,那么数据集被初始化成B-1个数据片;
3)计算相邻两个数据片合并带来的代价偏差Fc(DS1,DS2),FC(DS2,DS3)…, Fc(DSi-1,DSi),Fc(DSi,DSi+1),…,Fc(DSB-2,DSB-1);
4)遍历代价偏差数组,找出最小代价偏差,合并这两个相邻数据片:假设 Fc(DSi,DSi+1)是代价偏差中代价最小的,则合并数据片DSi和DSi+1,合并后数据片为: DS1,…,DSi,DSi+2,…,DSB-1;
5)更新步骤4)合并影响的代价偏差数组中的两个代价偏差值,重新计算Fc;如合并数据片DSi和DSi+1为新的DSi的时候,需要重新计算Fc(DSi-1,DSi)和 Fc(DSi+1,DSi+2);
6)跳转到步骤4),循环执行数据片合并,直到达到数据最优分片数:代价偏差 Fc(DSi,DSi+1)的计算可以在常数时间内,即内完成,循环第一轮需要执行B-1个代价偏差,以后每轮需要计算合并数据片相邻2个代价偏差,共需执行B-K轮直到剩余的数据片个数为K,总的计算代价为(B-1)+2(B-K),其中B为范围查询边界集的基数, K是分片的数据片个数。
在倾斜范围查询工作负载下,数据分片应该尽量适应范围查询的访问模式,以降低数据传输代价偏差。数据分片的切片位置如果不在范围查询边界上,一定会带来无谓的传输代价偏差,因此,数据的最优分片切片位置一定落在范围查询边界上,基于这一结论,只在范围查询的边界点上寻找数据分片的切片位置,这就是基于范围查询边界集的数据分片优化方法,也就是技术方案步骤2)中首先用范围查询边界集来初始化数据分片的依据,然后迭代地合并相邻的数据片,每次合并都会选择产生最小代价偏差的相邻数据片合并。
这种方法地降低了数据的管理维护开销,得到了最优的数据查询代价,从而提高了查询效率。
附图说明
图1为实施例中的数据最优分片切片位置一定落在范围查询边界上的示意图。
具体实施方式
下面结合附图和实施例对本发明内容作进一步的阐述,但不是对本发明的限定。
实施例:
一种基于范围查询边界集的自底向上合并数据分片优化方法,与现有技术不同的是,包括如下步骤:
1)建立范围查询负载下的数据访问概率模型:定义数据集上范围查询的所有边界组成的集合叫做范围查询边界集,在基于记录的数据组织方式下,一条数据记录的查询累积概率=数据记录被查询负载访问的次数/总查询次数,在基于数据片的数据组织方式下,定义第k个数据片DSk的长度为lk,数据片DSk上的查询累积概率为Pk,由于对数据片DSk上任意记录的访问都体现为对数据片DSk的访问,因此数据片DSk查询累积概率 Pk取值为DSk所含数据记录的查询累积概率的最大值,数据片DSk上的查询代价表示为:
DSk上的查询代价=定位寻址代价+数据传输代价
=磁盘每次定位寻址代价S×DSk的查询累积概率Pk+数据片的长度lk×每字节数据的传输代价×DSk的查询累积概率Pk,由于数据分片后,可能存在查询“误命中”的情况,即片内部分数据不是查询结果集,但会被访问的情况,这就带来了额外的传输开销,定义这部分额外的传输开销叫做代价偏差,用Fc表示,数据的分片粒度越粗,则数据查询的定位寻址代价越小,而数据传输代价偏差越大,导致数据传输代价越大,反之亦然,数据的分片粒度越细,则数据查询的定位寻址代价越大,数据传输代价越小,也就是说,定位寻址代价和数据传输代价是两个互相制约的指标,因此在倾斜范围查询工作负载下,数据分片问题是一个最优化问题;
2)用范围查询边界集初始化分片方案P:假设范围查询边界集中有B个不同的元素,那么数据集被初始化成B-1个数据片;
3)计算相邻两个数据片合并带来的代价偏差Fc(DS1,DS2),FC(DS2,DS3)…, Fc(DSi-1,DSi),Fc(DSi,DSi+1),…,Fc(DSB-2,DSB-1);
4)遍历代价偏差数组,找出最小代价偏差,合并这两个相邻数据片:假设 Fc(DSi,DSi+1)是代价偏差中代价最小的,则合并数据片DSi和DSi+1,合并后数据片为: DS1,…,DSi,DSi+2,…,DSB-1;
5)更新步骤4)合并影响的代价偏差数组中的两个代价偏差值,重新计算Fc;如合并数据片DSi和DSi+1为新的DSi的时候,需要重新计算Fc(DSi-1,DSi)和 Fc(DSi+1,DSi+2);
6)跳转到步骤4),循环执行数据片合并,直到达到数据最优分片数:代价偏差 Fc(DSi,DSi+1)的计算可以在常数时间内,即内完成,循环第一轮需要执行B-1个代价偏差,以后每轮需要计算合并数据片相邻2个代价偏差,共需执行B-K轮直到剩余的数据片个数为K,总的计算代价为(B-1)+2(B-K),其中B为范围查询边界集的基数, K是分片的数据片个数。
数据被划分成数据片后,数据片上的查询累积概率分布是对范围查询累积概率分布的拟合,这个拟合是有偏差的,称为拟合代价偏差,它增加了数据片上的范围查询代价,如图1所示,图1中的阴影部分面积就是数据分片带来的拟合代价偏差。
在面对倾斜范围查询需求时,需要感知范围查询的访问模式,并基于此为数据分片,将访问模式下关联性强的数据划分成一个数据片。这种基于关联感知的数据分片模型可以使得数据片在被范围查询访问时会被全部或大比率命中,降低数据的传输代价偏差,从而提高查询效率。
在倾斜范围查询工作负载下,数据分片应该尽量适应范围查询的访问模式,以降低数据查询中的传输代价偏差,最小化数据集上的范围查询代价,获得最优的查询性能,为了降低DSk的查询累积概率Pk,数据的最优分片切片位置一定落在范围查询边界上,如图1所示,数据分片的切片位置如果不落在范围查询边界上,例如b′2,那么[b′2,b2]之间的数据被分到DS3数据片中,[b′2,b2]之间的数据的查询累积概率增加,查询代价增加,因此,切片位置落在范围查询边界上的数据分片方案,数据片的查询累积概率分布和数据集上的查询负载概率分布拟合的最好。
本例提出的方法旨在最小化拟合代价偏差,以最优化数据集上的范围查询性能。
本实施例首先将数据集初始化为若干个数据片,然后迭代地合并相邻的数据片,每次合并都会选择产生最小代价偏差的相邻数据片合并。
Claims (1)
1.一种基于范围查询边界集的自底向上合并数据分片优化方法,其特征是,包括如下步骤:
1)建立范围查询负载下的数据访问概率模型:定义数据集上范围查询的所有边界组成的集合叫做范围查询边界集,在基于记录的数据组织方式下,一条数据记录的查询累积概率=数据记录被查询负载访问的次数/总查询次数,在基于数据片的数据组织方式下,定义第k个数据片DSk的长度为lk,数据片DSk上的查询累积概率为Pk,数据片DSk查询累积概率Pk取值为DSk所含数据记录的查询累积概率的最大值,数据片DSk上的查询代价表示为:
DSk上的查询代价=定位寻址代价+数据传输代价
=磁盘每次定位寻址代价S×DSk的查询累积概率Pk+数据片的长度lk×每字节数据的传输代价×DSk的查询累积概率Pk,数据分片后,存在查询“误命中”的情况,即片内部分数据不是查询结果集,但会被访问的情况,带来了额外的传输开销,定义这部分额外的传输开销叫做代价偏差,用Fc表示;
2)用范围查询边界集初始化分片方案P:假设范围查询边界集中有B个不同的元素,那么数据集被初始化成B-1个数据片;
3)计算相邻两个数据片合并带来的代价偏差Fc(DS1,DS2),Fc(DS2,DS3)…,Fc(DSi-1,DSi),Fc(DSi,DSi+1),…,Fc(DSB-2,DSB-1);
4)遍历代价偏差数组,找出最小代价偏差,合并这两个相邻数据片:假设Fc(DSi,DSi+1)是代价偏差中代价最小的,则合并数据片DSi和DSi+1,合并后数据片为:DS1,…,DSi,DSi+2,…,DSB-1;
5)更新步骤4)合并影响的代价偏差数组中的两个代价偏差值,重新计算Fc;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810194425.9A CN108416027B (zh) | 2018-03-09 | 2018-03-09 | 一种基于范围查询边界集的合并数据分片优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810194425.9A CN108416027B (zh) | 2018-03-09 | 2018-03-09 | 一种基于范围查询边界集的合并数据分片优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108416027A CN108416027A (zh) | 2018-08-17 |
CN108416027B true CN108416027B (zh) | 2021-07-20 |
Family
ID=63130829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810194425.9A Expired - Fee Related CN108416027B (zh) | 2018-03-09 | 2018-03-09 | 一种基于范围查询边界集的合并数据分片优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108416027B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256579A (zh) * | 2008-04-08 | 2008-09-03 | 中兴通讯股份有限公司 | 一种数据库范围查询数据组织的方法 |
CN104516906A (zh) * | 2013-09-29 | 2015-04-15 | 日电(中国)有限公司 | 一种自适应索引的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8543579B2 (en) * | 2005-06-17 | 2013-09-24 | International Business Machines Corporation | Range query methods and apparatus |
-
2018
- 2018-03-09 CN CN201810194425.9A patent/CN108416027B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256579A (zh) * | 2008-04-08 | 2008-09-03 | 中兴通讯股份有限公司 | 一种数据库范围查询数据组织的方法 |
CN104516906A (zh) * | 2013-09-29 | 2015-04-15 | 日电(中国)有限公司 | 一种自适应索引的方法和装置 |
Non-Patent Citations (2)
Title |
---|
A distributed range query framework for the internet of things;Congcong Zhang; Tingting Zhang; Mei Wang;《2015 18th International Conference on Intelligence in Next Generation Networks》;20150402;全文 * |
HiBase:一种基于分层式索引的高效HBase查询技术与***;葛微,罗圣美,周文辉;《计算机学报》;20160131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108416027A (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8825629B2 (en) | Method for index tuning of a SQL statement, and index merging for a multi-statement SQL workload, using a cost-based relational query optimizer | |
KR101117709B1 (ko) | 공간 분할 트리의 최소 데이터-불균등 커버를 이용한 다차원 히스토그램 방법 및 이를 실행하기 위한 프로그램이 저장된 기록매체 | |
US6668263B1 (en) | Method and system for efficiently searching for free space in a table of a relational database having a clustering index | |
CN111868710B (zh) | 搜索大规模非结构化数据的随机提取森林索引结构 | |
US20130124534A1 (en) | Apparatus and method for information access, search, rank and retrieval | |
US10394787B2 (en) | Indexing methods and systems for spatial data objects | |
KR100284778B1 (ko) | 내용기반 이미지 검색을 위한 고차원 색인구조의 삽입 방법 | |
US8583657B2 (en) | Method and apparatus for using a hash-partitioned index to access a table that is not partitioned or partitioned independently of the hash partitioned index | |
JP2007521565A (ja) | ビットベクトルインデックスを使用した多次元データオブジェクト検索 | |
US10915534B2 (en) | Extreme value computation | |
CN112541074A (zh) | 日志解析方法、装置、服务器和存储介质 | |
US20140297606A1 (en) | Method and device for processing a time sequence based on dimensionality reduction | |
US10452658B2 (en) | Caching methods and a system for entropy-based cardinality estimation | |
US8661040B2 (en) | Grid-based data clustering method | |
CN108416027B (zh) | 一种基于范围查询边界集的合并数据分片优化方法 | |
CN108920631B (zh) | 一种文件查询方法、装置、设备及可读存储介质 | |
CN108460137B (zh) | 一种基于合并偏差门限的范围查询数据分片优化方法 | |
CN107688620B (zh) | 一种面向Top-k查询的查询结果即时多样化的方法 | |
JP4091586B2 (ja) | 構造化文書管理システム、索引構築方法及びプログラム | |
CN112328587A (zh) | ElasticSearch的数据处理方法和装置 | |
US20150220596A1 (en) | Dynamically adjust duplicate skipping method for increased performance | |
Gandhi et al. | Experiments on Static Data Summarization Techniques | |
CN108427747B (zh) | 一种基于范围查询边界集的动态规划数据分片优化方法 | |
US20170083567A1 (en) | High-dimensional data storage and retrieval | |
CN107944038A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210720 |
|
CF01 | Termination of patent right due to non-payment of annual fee |