Druid 分析报表中的实战(一)
生活随笔
收集整理的這篇文章主要介紹了
Druid 分析报表中的实战(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
產品又過來提需求了!
?
案例需求
需要按日匯總充值總數的數據。
過濾條件:
我們用SQL語句表示一下產品需要什么數據,能夠直觀的理解需求,SQL表達如下:
SELECT date,SUM(rechange) AS rechange FROM user_recharge_record WHERE date>='2020-03-01' AND date<='2020-03-05' AND user_name IN ('Tom', 'Jack') AND city IN ('北京','上海','廣州','深圳') GROUP By create_date;druid常用的三種數據查詢類型:Timeseries,TopN,GroupBy。
Timeseries:按照指定日期時間段查詢規則返回聚合合的結果集,查詢規則中可以設置查詢粒度、維度,過濾條件和排序方式,并且支持后聚合。返回一個JSON對象數組。
Timeseries其中主要七個部分:
| property | description | required? |
| queryType | 查詢類型:如:Timeseries、GroupBy,TopN | yes |
| dataSource | 數據源,類似于MySQL的數據表 | yes |
| descending | 是否降序,默認為false | no |
| intervals | 間隔,也是查詢日期范圍,結束日期向后加1 | yes |
| granularity | 查詢粒度 | yes |
| filter | 過濾條件 | no |
| aggregations | 聚合器 | no |
| postAggregations | 后聚合器 | no |
| context | 可以修復查詢行為,包括總計和零填充。應用于所有查詢類型的參數。 | no |
根據當前的需求,我們可以用Timerseries查詢類型來計算指標。
查詢樣例
{"queryType": "timeseries", // 查詢的類型"dataSource": "user_recharge_record", // 數據源"granularity": "day", // 指定日期聚合分區,按照每天的日期維度匯總數據"filter": { // 過濾條件"type": "and","fields": [{"dimension": "user_name","type": "in","values": ["Tom", "Jack"]},{"dimension": "city","type": "in","values": ["北京", "上海", "廣州", "深圳"]}]},"context": {"timeout": 28000 // 超時時間},"aggregations": [ // 聚合器 {"name": "rechange", // 聚合后輸出的名字"type": "doubleSum", // 數值類型累加"fieldName": "rechange" // 聚合時使用的指標列名稱} ], "intervals": "2020-03-01\/2020-03-06" // 日期區間 }Results:
[{"timestamp": "2020-03-01T00:00:00.000+08:00","result": {"rechange": 21195.0}},{"timestamp": "2020-03-02T00:00:00.000+08:00","result": {"rechange": 29785.0}},{"timestamp": "2020-03-03T00:00:00.000+08:00","result": {"rechange": 31123.0}},{"timestamp": "2020-03-04T00:00:00.000+08:00","result": {"rechange": 33818.0}},{"timestamp": "2020-03-05T00:00:00.000+08:00","result": {"rechange": 33658.0}} ]返回結果:
?
搞定需求,可以回家啦!
?
參考
https://druid.apache.org/docs/latest/querying/timeseriesquery.html
總結
以上是生活随笔為你收集整理的Druid 分析报表中的实战(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实时OLAP分析利器Druid介绍
- 下一篇: make : flex: Command