Druid 是一款高性能、分布式、列存儲型實時數據處理系統。在 Druid 中,可以使用 JSON 文件來描述一個查詢任務。
一個 Druid JSON 任務由多部分組成,例如:數據源、過濾器、聚合等等。
下面是一個使用 JSON 文件來描述 Druid 查詢任務的示例:
{ "queryType": "groupBy", "dataSource": "my_datasource", "granularity": "day", "dimensions": ["dim1", "dim2"], "aggregations": [ { "type": "longSum", "name": "metric1", "fieldName": "metric1" }, { "type": "doubleSum", "name": "metric2", "fieldName": "metric2" } ], "intervals": ["2022-01-01T00:00:00.000/2022-02-01T00:00:00.000"], "filter": { "type": "and", "fields": [ { "type": "selector", "dimension": "dim1", "value": "value1" }, { "type": "or", "fields": [ { "type": "selector", "dimension": "dim2", "value": "value2" }, { "type": "selector", "dimension": "dim2", "value": "value3" } ] } ] }, "having": { "type": "greaterThan", "aggregation": "metric1", "value": 100 }, "limitSpec": { "type": "default", "limit": 100, "columns": ["metric1"] } }
在這個例子中,我們描述了一個聚合查詢任務。我們使用了groupBy
查詢類型,在數據源my_datasource
中按照day
粒度對數據進行聚合。我們使用了兩個維度dim1
和dim2
,以及兩個聚合函數longSum
和doubleSum
。
我們還使用了一個過濾器來限制查詢結果,以僅包含維度dim1=value1
以及維度dim2=value2
或dim2=value3
的行。我們還添加了一個having
子句,以僅返回聚合結果中metric1
值大于 100 的行。最后,我們使用limitSpec
子句來限制返回結果的數量。
這只是一個簡單的例子,Druid JSON 查詢任務可以包含更多部分,并具有更復雜的查詢語句。
上一篇dsl json下載
下一篇vue人臉識別輪廓