Druid是一個OLAP(聯(lián)機(jī)分析處理)數(shù)據(jù)存儲和查詢系統(tǒng),它以快速查詢和高可用為設(shè)計目標(biāo)。Druid使用列式存儲,能夠存儲大規(guī)模數(shù)據(jù),并且能夠?qū)A繑?shù)據(jù)進(jìn)行快速查詢。Druid SQL.json是Druid的一個JSON API,可以在Druid中進(jìn)行SQL查詢。
Druid SQL.json的工作原理是,客戶端發(fā)送一條JSON POST請求到Druid,然后Druid解析和執(zhí)行這個查詢請求。Druid SQL.json查詢語句與傳統(tǒng)SQL語句類似,包含標(biāo)準(zhǔn)的SELECT、WHERE、GROUP BY和ORDER BY子句。但是,Druid SQL.json查詢語句中的語法比較簡單,不支持復(fù)雜的SQL語句。
{ "queryType": "groupBy", "dataSource": "mydatasource", "granularity": "ALL", "dimensions": [ "country", "province" ], "aggregations": [ { "type": "longSum", "name": "count", "fieldName": "count" } ], "intervals": [ "2014-10-06T00:00:00.000Z/2014-10-07T00:00:00.000Z" ] }
以上代碼是一個Druid SQL.json查詢請求的例子,它查詢了某個數(shù)據(jù)源中,2014年10月6日到10月7日之間每個省份的訪問量。其中,queryType指定了查詢類型,dataSource指定了數(shù)據(jù)源,granularity指定了粒度(ALL表示所有精度),dimensions指定了分組的維度,aggregations指定了需要聚合的度量,intervals指定了查詢的時間區(qū)間。
Druid SQL.json具有以下優(yōu)點:
- 更簡單的語法:Druid SQL.json查詢語法比傳統(tǒng)SQL語言更加簡單,易于理解和使用。
- 更好的性能:Druid SQL.json使用Druid的列式存儲和快速查詢引擎,可以提供更好的查詢性能。
- 更好的可擴(kuò)展性:Druid SQL.json可以與其他的API和工具結(jié)合使用,從而提供更好的可擴(kuò)展性。
上一篇python 矢量圖庫
下一篇python 爬取SWF