CN112307008B - 一种Druid压实方法 - Google Patents
一种Druid压实方法 Download PDFInfo
- Publication number
- CN112307008B CN112307008B CN202011463087.8A CN202011463087A CN112307008B CN 112307008 B CN112307008 B CN 112307008B CN 202011463087 A CN202011463087 A CN 202011463087A CN 112307008 B CN112307008 B CN 112307008B
- Authority
- CN
- China
- Prior art keywords
- compaction
- fragment
- segment
- guide
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000005056 compaction Methods 0.000 claims abstract description 46
- 239000012634 fragment Substances 0.000 claims abstract description 43
- 238000005192 partition Methods 0.000 claims abstract description 17
- 238000012216 screening Methods 0.000 claims abstract description 5
- 239000003638 chemical reducing agent Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种Druid压实方法,属于数据查询技术领域。包括:通过Druid片段服务接口获取数据源的片段信息;筛选出需要参与压实的片段列表;对数据进行合并和汇总生成新的片段,新片段的开始根分区号与结束根分区号覆盖了参与压实的片段,生成的片段信息保存在Druid深度存储中;向Druid元数据库中写入需要新增的片段信息,Druid协调节点会从深度存储中加载到新的片段到历史节点,完成压实。可以提高查询性能。
Description
技术领域
本发明涉及数据查询技术领域,尤其涉及一种Druid压实方法。
背景技术
Apache Druid是一个面向海量数据的分布式、高性能OLAP工具,它集时间序列数据库、数据仓库和全文检索系统特点于一体,兼具海量数据的高效摄入和快速查询能力,得到了国内外众多公司的广泛使用。
Druid基于近时序(如一天内数据乱序,跨天是有序)数据来设计,对于点击流、访问流、活动流等时序性较强的数据具有很高的处理性能。然而,对于时序性不强的乱时序数据(例如实时摄入的数据除了大部分当天的数据外,还包含之前较长时间段内的一些历史数据),Druid的处理性能就会大打折扣。
Druid摄取乱时序数据后,会将数据写入到对应时间段的时间块(例如每天一个时间块)的不同片段中。由于乱时序数据的时间跨度较大,导致数据没法做到充分的roll-up(一种预处理方式,Druid在数据摄取时通过roll-up来将原始数据聚合到片段中,以节约存储空间,并提高查询统计的性能,越高的roll-up率意味着片段碎片越少,查询速度越快),这样就会生成大量的片段碎片,在进行查询的时需要对这些碎片片段做聚合计算,该计算占用较高的CPU和磁盘IO资源,最终导致查询速度缓慢。
为解决片段碎片问题,Druid会定时对所属相同时间段的不同片段进行压实操作(一种数据合并的操作),减少片段碎片。目前Druid的压实任务存在一些问题,首先压实任务优先级低于数据摄取任务,数据摄取任务会长期保持着片段锁,导致压实任务很难获取到锁触发任务。再则压实任务必须对整个时间段内所有的片段进行全量的压实,随着数据量的增加,压实任务的运行时间会越来越长,最终会导致压实片段提高查询速度的效果。
以上问题的存在,对于Druid如何维持查询的高性能,特别是对于乱时序数据的应用场景,是一个很大的挑战。
发明内容
为了克服上述技术问题,本发明提供了一种Druid压实方法,可以提高查询性能。
为解决上述问题,本发明提供的技术方案为:
一种Druid压实方法,包括:通过Druid的接口获取数据源的片段信息;筛选需要参与压实的片段,生成包含有多个片段信息集合压实计划;提交MapReduce进行压实;Mapper获取参与压实片段的每行信息,将该信息映射到需要生成新片段分区号;Reducer对数据进行合并和汇总生成新片段,新片段分区编码覆盖需要替换的片段分区号,生成的片段信息保存在Druid深度存储中;向Druid元数据库中写入需要新增的片段元数据信息,Druid协调节点会定时将新片段从深度存储中加载到历史节点,以完成压实。
可选的,所述片段信息至少包括:片段分区号、时间间隔、字节大小。
可选的,所述片段信息集合生成方法为:
segmentsTotalBytes/segmentBytesPerRow<maxCompactionRows;
其中:
segmentsTotalBytes:连续的片段字节大小之和;
segmentBytesPerRows:片段每行记录平均字节大小;
maxCompactionRows:压实任务处理最大行数;
连续的片段字节大小之和与片段每行记录平均字节大小相除,求出总行数,总行数小于压实任务处理最大行数,其中,压实任务处理最大行数提前设定,是常数值,根据不同系统测试而来,为经验值。
可选的,所述片段信息集合生成后,产生所述的压实计划。
可选的,所述片段信息集合作为Mapper任务的输入参数。
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
(1)采用Hadoop MapReduce进行压实,对于Druid集群本身不会产生额外的负载,Hadoop在Druid中只是扮演了数据备份的角色。
(2)程序定时扫描数据源,按需提交压实任务、支持增量,可在摄取任务上传片段之后马上进行,单个压实处理的数据集在可控范围内简单并高效。
(3)新的片段会标记被覆盖片段分区号范围,无数据丢失风险。
附图说明
图1为本发明一实施例提供的一种Druid压实方法流程图。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。本发明中所述的第一、第二等词语,是为了描述本发明的技术方案方便而设置,并没有特定的限定作用,均为泛指,对本发明的技术方案不构成限定作用。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例1
本实施例提供了一种Druid压实方法,包括:通过Druid片段服务接口获取数据源的片段信息;筛选指定时间块片段信息集合生成压实计划;提交MapReduce任务进行压实;Mapper获取片段每行的分区信息,与压实计划中的指定时间块对应的分区范围进行匹配;Reducer对数据进行合并和汇总生成新的片段信息,将新片段分区编号待覆盖片段分区,生成新的片段信息保存在Druid深度存储目录中;向Druid元数据库中写入需要新增的片段元数据信息,Druid协调节点会将片段从深度存储中加载到历史节点,以完成压实。
作为本实施例可选的实施方式,所述片段信息至少包括:片段分区号、时间间隔、字节大小。作为本实施例可选的实施方式,所述片段信息集合生成方法为:segmentsTotalBytes/segmentBytesPerRow<maxCompactionRows;segmentsTotalBytes:partitionId连续的片段字节大小之和;segmentBytesPerRows:片段每行记录平均字节大小;maxCompactionRows:压实任务处理最大行数。连续的片段字节大小之和与片段每行记录平均字节大小相除,求出总行数,总行数小于压实任务处理最大行数,其中,压实任务处理最大行数提前设定,是常数值,根据不同系统测试而来,为经验值。
作为本实施例可选的实施方式,所述片段信息集合生成后,产生所述的压实计划。作为本实施例可选的实施方式,所述的压实计划包括在指定时间块中参与压实片段信息的多个片段分区范围。作为本实施例可选的实施方式,所述片段信息集合的多个片段分区范围为映射简化任务的输入参数。
Claims (3)
1.一种Druid压实方法,其特征在于,包括:
通过Druid片段服务接口获取数据源的片段信息;
筛选指定时间块中的片段信息;
计算时间块中的片段信息列表,筛选出需要参与压实的片段列表,生成包含有多个片段的片段信息集合;
提交MapReduce进行压实;
Map获取片段的每行数据,与压实计划中的指定时间块对应的分区范围进行匹配,计算出分区范围;
Reduce对数据进行合并和汇总生成新的片段,新片段的开始根分区号与结束根分区号覆盖了参与压实的片段集合,生成的片段保存在Druid深度存储目录中;
向Druid元数据库中写入需要新增的片段元数据信息,Druid协调节点会将片段从深度存储中加载对应到历史节点,以完成压实;
所述片段信息集合生成方法为:
segmentsTotalBytes/segmentBytesPerRow<maxCompactionRows;
其中:
segmentsTotalBytes:连续的片段字节大小之和;
segmentBytesPerRows:片段每行记录平均字节大小;
maxCompactionRows:压实任务处理最大行数;
连续的片段字节大小之和与片段每行记录平均字节大小相除,求出总行数,总行数小于压实任务处理最大行数,其中,压实任务处理最大行数提前设定,是常数值;
所述片段信息集合生成后,产生所述的压实计划;
所述的压实计划包括在指定时间块中参与压实片段信息。
2.根据权利要求1所述方法,其特征在于:
所述片段信息至少包括:片段分区范围、时间间隔、字节大小。
3.根据权利要求1所述方法,其特征在于:所述压实计划为MapReduce任务的输入参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011463087.8A CN112307008B (zh) | 2020-12-14 | 2020-12-14 | 一种Druid压实方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011463087.8A CN112307008B (zh) | 2020-12-14 | 2020-12-14 | 一种Druid压实方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112307008A CN112307008A (zh) | 2021-02-02 |
CN112307008B true CN112307008B (zh) | 2023-12-08 |
Family
ID=74487476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011463087.8A Active CN112307008B (zh) | 2020-12-14 | 2020-12-14 | 一种Druid压实方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307008B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
CN103106253A (zh) * | 2013-01-16 | 2013-05-15 | 西安交通大学 | 一种MapReduce计算模型中基于遗传算法的数据平衡方法 |
CN103927331A (zh) * | 2014-03-21 | 2014-07-16 | 珠海多玩信息技术有限公司 | 数据查询方法、装置及系统 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN107247799A (zh) * | 2017-06-27 | 2017-10-13 | 北京天机数测数据科技有限公司 | 兼容多种大数据存储的数据处理方法、系统及其建模方法 |
CN107515916A (zh) * | 2017-08-18 | 2017-12-26 | 北京奇虎科技有限公司 | 数据查询的性能优化方法及装置 |
CN108763572A (zh) * | 2018-06-06 | 2018-11-06 | 湖南蚁坊软件股份有限公司 | 一种实现Apache Solr读写分离的方法和装置 |
CN110502337A (zh) * | 2019-07-12 | 2019-11-26 | 上海交通大学 | 针对Hadoop MapReduce中混洗阶段的优化系统及方法 |
CN111125099A (zh) * | 2019-12-10 | 2020-05-08 | 苏宁云计算有限公司 | 基于Druid宽表的关联数据处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892599B2 (en) * | 2012-10-24 | 2014-11-18 | Marklogic Corporation | Apparatus and method for securing preliminary information about database fragments for utilization in mapreduce processing |
-
2020
- 2020-12-14 CN CN202011463087.8A patent/CN112307008B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
CN103106253A (zh) * | 2013-01-16 | 2013-05-15 | 西安交通大学 | 一种MapReduce计算模型中基于遗传算法的数据平衡方法 |
CN103927331A (zh) * | 2014-03-21 | 2014-07-16 | 珠海多玩信息技术有限公司 | 数据查询方法、装置及系统 |
CN107038162A (zh) * | 2016-02-03 | 2017-08-11 | 滴滴(中国)科技有限公司 | 基于数据库日志的实时数据查询方法和系统 |
CN107247799A (zh) * | 2017-06-27 | 2017-10-13 | 北京天机数测数据科技有限公司 | 兼容多种大数据存储的数据处理方法、系统及其建模方法 |
CN107515916A (zh) * | 2017-08-18 | 2017-12-26 | 北京奇虎科技有限公司 | 数据查询的性能优化方法及装置 |
CN108763572A (zh) * | 2018-06-06 | 2018-11-06 | 湖南蚁坊软件股份有限公司 | 一种实现Apache Solr读写分离的方法和装置 |
CN110502337A (zh) * | 2019-07-12 | 2019-11-26 | 上海交通大学 | 针对Hadoop MapReduce中混洗阶段的优化系统及方法 |
CN111125099A (zh) * | 2019-12-10 | 2020-05-08 | 苏宁云计算有限公司 | 基于Druid宽表的关联数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112307008A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166282B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN103412916B (zh) | 一种监控系统的多维度数据存储、检索方法及装置 | |
CN103366015B (zh) | 一种基于Hadoop的OLAP数据存储与查询方法 | |
CN105989129B (zh) | 实时数据统计方法和装置 | |
US7174345B2 (en) | Methods and systems for auto-partitioning of schema objects | |
CN108197296B (zh) | 基于Elasticsearch索引的数据存储方法 | |
CN104407879B (zh) | 一种电网时序大数据并行加载方法 | |
US7761474B2 (en) | Indexing stored data | |
US20080140627A1 (en) | Method and apparatus for aggregating database runtime information and analyzing application performance | |
EP1351165A2 (en) | Stratified sampling of data in a database system | |
DE202012013469U1 (de) | Datenverarbeitungsdienst | |
CN106599052B (zh) | 一种基于Apache Kylin的数据查询系统及其方法 | |
CN106294757B (zh) | 一种基于超图划分的分布式数据库及其集群分区方法 | |
CN102663116A (zh) | 面向列存储数据仓库的多维olap查询处理方法 | |
CN103646073A (zh) | 一种基于HBase表的条件查询优化方法 | |
CN102129442A (zh) | 一种分布式数据库系统和数据访问方法 | |
DE202023101653U1 (de) | Organisations- und cloudübergreifende automatisierte Datenpipelines | |
Singh et al. | SWST: A disk based index for sliding window spatio-temporal data | |
Madden et al. | Self-organizing data containers | |
CN114185885A (zh) | 一种基于列存数据库的流式数据处理方法及系统 | |
CN112307008B (zh) | 一种Druid压实方法 | |
CN108319604B (zh) | 一种hive中大小表关联的优化方法 | |
US10997175B2 (en) | Method for predicate evaluation in relational database systems | |
US20160078071A1 (en) | Large scale offline retrieval of machine operational information | |
EP3719663B1 (en) | Iterative multi-attribute index selection for large database systems |
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 |