druid 後設資料介面查詢

Xlucas發表於2017-09-07

1、後設資料查詢
druid支援對DataSource的基礎後設資料查詢
1、time Boundary
通過timeBoundary可查詢DataSource的最早和最晚的時間點,查詢json示例
語法

{
    "queryType" : "timeBoundary",
    "dataSource": "sample_datasource",
    "bound"     : < "maxTime" | "minTime" > # optional, defaults to returning both timestamps if not set 
    "filter"    : { "type": "and", "fields": [<filter>, <filter>, ...] } # optional
}
欄位名         描述                              是否必須
queryType       這個String是timeBoundary           是
datasource      定義要查詢的資料來源                       是
bound       設定為maxTime或者minTime僅返回最新或最早的時間      否
context  指定一些查詢引數                               否
filter  過濾器                                 否

示例

{
"queryType" : "timeBoundary",
"dataSource" : "app_auto_prem_qd_pp3"
}

結果的格式的是:

[ {
  "timestamp" : "2017-08-22T22:00:00.000+08:00",
  "result" : {
    "maxTime" : "2017-08-22T22:00:00.000+08:00",
    "minTime" : "2017-08-22T22:00:00.000+08:00"
  }
} ]

2、segment Metadata
通過segmentMetadata可查詢segment的後設資料,如有那些column、metric、aggregator,
1、分段中所有列的基數
2、字串型別的最大/最小值
3、位元組大小
4、儲存行數
5、涵蓋的間隔
6、分段中列的型別
7、預計總段數字節大小
8、段roll up
9、段ID
示例

{
"queryType" : "segmentMetadata",
"dataSource" : "app_auto_prem_qd_pp3"
}

相當於sql desc app_auto_prem_qd_pp3

欄位名          描述                           是否必須
queryType       這個String是segmentMetadataDataSource      定義要查詢的資料來源                    是
intervals 查詢的時間範圍,預設是ISO-8601格式             否
toInclude   一個json物件,表示結果中應包含那些列,預設是全部 否
merge          將所有的元素結果合併為單個結果           否
context      上下文                                        否
analysisTypes 字串列表,指定應在結果中計算和返回哪些列屬性   否
lenientAggregatorMerge  如果是true 並且如果啟動了aggregators 這聚合器將被合併                                    否

查詢結果如下

[ {
  "id" : "app_auto_prem_qd_pp3_2017-08-22T08:00:00.000+08:00_2017-08-23T08:00:00.000+08:00_2017-08-22T18:11:01.983+08:00",
  "intervals" : [ "2017-08-22T08:00:00.000+08:00/2017-08-23T08:00:00.000+08:00" ],
  "columns" : {
    "__time" : {
      "type" : "LONG",
      "hasMultipleValues" : false,
      "size" : 0,
      "cardinality" : null,
      "minValue" : null,
      "maxValue" : null,
      "errorMessage" : null
    },
    "auto_model_chn_name" : {
      "type" : "STRING",
      "hasMultipleValues" : false,
      "size" : 0,
      "cardinality" : 47361,
      "minValue" : "",
      "maxValue" : "龍馬LM5815WD自卸農用車",
      "errorMessage" : null
    },
    .....
  },
  "size" : 0,
  "numRows" : 4902965,
  "aggregators" : null,
  "timestampSpec" : null,
  "queryGranularity" : null,
  "rollup" : null
} ]

toInclude 介紹

All

"toInclude": { "type": "all"}

None

"toInclude": { "type": "none"}

List

"toInclude": { "type": "list", "columns": [<string list of column names>]}

analysisTypes支援的屬性有

cardinality,minmax,size,interval,timestampSpec,queryGranularity,aggregators,rollup

3、dataSourceMetadata
資料來源後設資料查詢,最新裝載的時間,這是裝載的事件
例項:

{

"queryType" : "dataSourceMetadata",
"dataSource" : "app_auto_prem_qd_pp3"

}

查詢結果

[ {
  "timestamp" : "2017-08-22T22:00:00.000+08:00",
  "result" : {
    "maxIngestedEventTime" : "2017-08-22T22:00:00.000+08:00"
  }
} ]

相關文章