when should i use druid

This commit is contained in:
liujianhuan 2020-03-24 10:36:02 +08:00
parent fd544ebcb9
commit a84128fc35
1 changed files with 20 additions and 1 deletions

View File

@ -25,4 +25,23 @@ Druid的核心架构吸收和结合了[数据仓库](https://en.wikipedia.org/wi
9. **近似算法**Druid应用了近似count-distinct近似排序以及近似直方图和分位数计算的算法。这些算法占用有限的内存使用量通常比精确计算要快得多。对于精度要求比速度更重要的场景Druid还提供了精确count-distinct和精确排序。 9. **近似算法**Druid应用了近似count-distinct近似排序以及近似直方图和分位数计算的算法。这些算法占用有限的内存使用量通常比精确计算要快得多。对于精度要求比速度更重要的场景Druid还提供了精确count-distinct和精确排序。
10. **摄取时自动汇总聚合**Druid支持在数据摄取阶段可选地进行数据汇总这种汇总会部分预先聚合您的数据并可以节省大量成本并提高性能。 10. **摄取时自动汇总聚合**Druid支持在数据摄取阶段可选地进行数据汇总这种汇总会部分预先聚合您的数据并可以节省大量成本并提高性能。
### 什么场景下应该使用Druid ### 什么场景下应该使用Druid
许多公司都已经将Druid应用于多种不同的应用场景详情可查看[Powered by Apache Druid](https://druid.apache.org/druid-powered)页面。
如果您的使用场景符合以下的几个特征那么Druid是一个非常不错的选择
* 数据插入频率比较高,但较少更新数据
* 大多数查询场景为聚合查询和分组查询GroupBy同时还有一定得检索与扫描查询
* 将数据查询延迟目标定位100毫秒到几秒钟之间
* 数据具有时间属性Druid针对时间做了优化和设计
* 在多表场景下每次查询仅命中一个大的分布式表查询又可能命中多个较小的lookup表
* 场景中包含高基维度数据列例如URL用户ID等并且需要对其进行快速计数和排序
* 需要从Kafka、HDFS、对象存储如Amazon S3中加载数据
如果您的使用场景符合以下特征那么使用Druid可能是一个不好的选择
* 根据主键对现有数据进行低延迟更新操作。Druid支持流式插入但不支持流式更新更新操作是通过后台批处理作业完成
* 延迟不重要的离线数据系统
* 场景中包括大连接(将一个大事实表连接到另一个大事实表),并且可以接受花费很长时间来完成这些查询