结论
Kylin的数据模型本质上是将二维表(Hive表)转换为Cube,然后将Cube存储到HBase表中,也就是两次转换。
第一次转换,其实就是传统数据库的Cube化,Cube由CuboId组成,下图每个节点都被称为一个CuboId,CuboId表示固定列的数据数据集合 第二次转换,是将Cube中的数据存储到HBase中,转换的时候CuboId和维度信息序列化到rowkey,度量列组成列簇。在转换的时候数据进行了预聚合。下图展示了Cube数据在HBase中的存储方式。
- Kylin、Druid只适合聚合场景,ClickHouse适合明细和聚合场景
- 聚合场景,查询效率排序:Kylin > Druid > ClickHouse
- Kylin、ClickHouse建表都需要业务专家参与
- Kylin、ClickHouse查询效率都可能产生巨大差异
- ClickHouse在向量化方面做得的最好,Druid少量算子支持向量化、Kylin目前还不支持向量化计算。
Kylin的数据模型本质上是将二维表(Hive表)转换为Cube,然后将Cube存储到HBase表中,也就是两次转换。
第一次转换,其实就是传统数据库的Cube化,Cube由CuboId组成,下图每个节点都被称为一个CuboId,CuboId表示固定列的数据数据集合 第二次转换,是将Cube中的数据存储到HBase中,转换的时候CuboId和维度信息序列化到rowkey,度量列组成列簇。在转换的时候数据进行了预聚合。下图展示了Cube数据在HBase中的存储方式。