doris 编码

doris 的编码 dict编码是什么,有大佬可以详解一下吗?

dict编码 就是字典编码。
在存储层,存储string类型的时候,如果某列的基数比较低(比如 国家,城市这种列),就会使用字典编码。字典编码就是用一个字典(可以是hashmap, trie树等数据结构) 将string映射到int。

假如某个string列的值是 “北京”, “上海”,’‘广州’’,“深圳”,基数是4, 我们可以将 “北京”, “上海”,’‘广州’’,“深圳” 映射到 1,2,3,4。 在存储层就不用存储 “北京”, “上海”,’‘广州’’,“深圳”,直接存储1,2,3,4 就行。 可以节省存储空间,而且基于字典编码可以在Filter, Agg, Join 时做更多优化。

在存储层,存储string类型的时候,如果某列的基数比较低(比如 国家,城市这种列),就会使用字典编码。
那么这个基数是多大呢,几万?几十万?

和string的长度有关,一般是几千,几万的级别。