学习 Druid(七):Segment

更新至 Druid 0.15.1 版本

生命周期

TODO

状态

published

Segment 元数据插入 Metadata Storage,Segment 文件推到 Deep Storage。
Segment 元数据表为 druid.druid_segment,表结构如下:

字段名 类型 描述
id varchar(255) 主键
dataSource varchar(255) 所属 DataSource
created_date varchar(255) 创建时间
start varchar(255) 分区开始时间
end varchar(255) 分区结束时间
partitioned boolean 是否分区?
version varchar(255) 版本
used boolean 是否使用?
payload blob JSON 格式,Segment 元数据

Segment 文件位置由配置项 druid.storage.storageDirectory 决定,目录结构:

segments  
 - DataSource
   - Partition
     - Version
       - Segment File

available

Segment 是否可被查询。

used

Segment 是否可用。是 Segment 元数据表 druid.druid_segment 上的标记位。
删除 DataSource 元数据,将 DataSource 所有 Segment 置为 unused:

curl -X DELETE /druid/coordinator/v1/datasources/

将 DataSource 时间范围内所有 Segment 置为 unused:

curl -X POST -H 'Content-Type:application/json' -d '{ "interval" : "2019-10-01T00:00:00.000Z/2019-10-08T00:00:00.000Z" }' /druid/coordinator/v1/datasources//markUnused

彻底删除 Segment 数据,必须先将 Segment 置为 unused,然后启动 Kill 任务删除被置为 unused 的 Segment 在 Metadata Storage 上的元数据和 Deep Storage 上的文件。

结构

TODO

优化

TODO

参考