Druid share
2019-10-18
Druid share
image-
overload
-
task dispatch/assign
-
只在启动时load capcity config,时间长会扰乱
-
-
coordinator
-
data storage dispatch to which historical node
-
segment manager
-
每隔30s去meta server看一下新的segment
-
Tiers
-
冷热数据, hot/cold/default
-
不同的historical有不同的优先级
-
热数据会放到优先级高的节点
-
drop/load data rules,period/interval/forever per datasource segment
-
顺序很重要,只应用第一个符合的规则
-
-
Segment 300 - 700M
只有coordinator、overload与mysql交互
-
Middlemanager
-
load data to deep storage
-
每个任务只能有1个线程/node
-
起一个peon java进程
-
roll-up 操作在此时完成,写入deep storage,原始数据丢失
- image
-
-
broker
- merge操作全部在broker上完成
segment的位置存储在zk上,包含historical和middlemanager
-
segment
-
dimension bitmap index filter,group by 需要基数对应的值,支持multiple value
-
列式存储,但是每个segment会存储该时间段内所有行,stores and compresses each column individually
-
三种结构 timestamp/dimentsion/metric
-
Metrics lz4 compress
- image
-
-
bitmap compress
-
31位为一个片段,加上标志位总共32位
-
concise,反转标志位,简化全为空的片段
-
标志位为01,后面都是1,二进制是几,意为后面跟了几个相同31位bitmap
-
标志位为00,后面都是0,同上
-
标志位是1,不压缩
-
错位匹配
-
-
roaring bitmap
-
高16位为bucket
-
低16位存array或者bigmap(2^16位),是否超过4096
-
-
-
query
-
Timeseries
-
Groupby,topn
-
Select, scan
-
Search
-
建议开启historical segment-level cache,关闭broker result-level cache
0.12.0 kafka incremental handoff