CN112307008B - 一种Druid压实方法 - Google Patents

一种Druid压实方法 Download PDF

Info

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
Application number
CN202011463087.8A
Other languages
English (en)
Other versions
CN112307008A (zh
Inventor
曾锐
王晓斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Eefung Software Co ltd
Original Assignee
Hunan Eefung Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan Eefung Software Co ltd filed Critical Hunan Eefung Software Co ltd
Priority to CN202011463087.8A priority Critical patent/CN112307008B/zh
Publication of CN112307008A publication Critical patent/CN112307008A/zh
Application granted granted Critical
Publication of CN112307008B publication Critical patent/CN112307008B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-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压实方法
技术领域
本发明涉及数据查询技术领域,尤其涉及一种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任务的输入参数。
CN202011463087.8A 2020-12-14 2020-12-14 一种Druid压实方法 Active CN112307008B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
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