Druid使用

官方文档:http://druid.io/docs/0.9.2/querying/querying.html

一、Druid使用场景:

  • 整体数据条数大于等于500W
  • 实时入库不保证不丢数据,需要离线来辅助
  • Druid仅适用交互式OLAP分析场景,查询TPS无法满足大批量离线计算
  • 不支持Join操作
  • 明细查询不建议使用,并且不支持对明细数据的查询进行排序
  • Double类型的指标字段存在精度问题,不适合特别精确统计的领域。https://www.cnblogs.com/bad-guy/p/7698845.html
  • 定位交互式查询,不适合离线计算等批量查询的应用场景
  • 优先使用单维度进行聚合查询,多维度组合在基数较大的时候,会存在严重的性能问题
  • 单维度聚合优先推荐使用TopN操作,而不是GroupBy操作,Top1000是准确的,超过1000可能会不准确

二、druid-client:

1、 首先来认识下druid支持的哪些查询类型

Druid支持Timeseries、TopN、GroupBy、Time Boundary、Segment Metadata、DataSource Metadata、Search、Select八种查询类型。各类型适用场景如下:

  1. Timeseries: 用于查询一段时间内某些指标的聚合值,但是不支持维度聚合
  2. TopN: 按单维度聚合,查询一段时间内某些指标的聚合值
  3. GroupBy: 按多个维度聚合,查询一段时间内某些指标的聚合值;支持having和orderBy语义,其中orderBy语义请参考
  4. Select: 查询一段时间内的”明细“数据(由于Druid有Rollup语义,这里明细可能和入库原始数据不相符),支持按时间分页。
  5. Search: 在一段时间内,对维度值进行查询,支持模糊查询,不推荐使用
  6. Time Boundary: 查询datasource数据的时间边界
  7. Segment Metadata: 查询Segment的meta信息
  8. DataSource Metadata: 查询datasource的meta信息

 

posted @ 2018-07-04 16:29  舞羊  阅读(539)  评论(0编辑  收藏  举报