Apache Druid 0.18.1 compact (合并,压缩) segements

Apache Druid 0.18.1 compact (合并,压缩) segements

经验文章nimo972025-03-28 14:36:5110A+A-

问题

Apache druid 中 的实时任务 默认一个小时生成一个segement (如果是老版本,一个小时生成的数量与Kafka 的partition 数量有关),会导致集群产生大量的 segements.根据druid 的建议 每个 segement大小 300M-700M. 有时需要进行compact .



向 overlord节点提交任务地址

http://overlord:port/druid/indexer/v1/task

任务内容

保持原有granularity

{
  "type": "compact",
  "dataSource": "call_record_test_2",
  "interval": "2015-04-01/2020-09-01",
  "tuningConfig" : {
    "type" : "index_parallel",
    "maxRowsPerSegment" : 5000000,
    "maxRowsInMemory" : 25000
  }
}

修改 granularity

{
  "type": "compact",
  "dataSource": "compaction-tutorial",
  "interval": "2015-09-12/2015-09-13",
  "segmentGranularity": "DAY",
  "tuningConfig" : {
    "type" : "index_parallel",
    "maxRowsPerSegment" : 5000000,
    "maxRowsInMemory" : 25000,
    "forceExtendableShardSpecs" : true
  }
}

清理深度存储文件

经过 compact 操作的segements 只是将元数据中的 segements used 标记为 0. 不在加载数据,但数据在深度存储中依然存在。

需要另行清除。

深度存储清理任务

{
	"type":"kill",
	"dataSource":"call_record_test_2",
	"interval":"2020-01-01/2020-04-01"
	
}

此任务将会进行两个操作。

1.删除元数据表:druid_segments 中used 为 0的 segements .

2.清理深度存储中对应的文件.

总结



druid 中还提供了一个hadoop的方式进行合并任务。这种Hadoop方式将更加的灵活,基本上的操作在hadoop中 将数据重新按照新的规则重新写入。

hadoop任务的方式将会更加复杂些。

以后在整理相关的文章。

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7