presto是一個分佈式的sql交互式查詢引擎。能夠達到hive查詢效率的5到10倍。支持多種數據源的秒級查詢。html
presto是基於內存查詢的,這也是它爲何查詢快的緣由。除了基於內存,presto還使用了java
從而優化查詢的速度。mysql
https://prestodb.github.io/docs/current/git
由於咱們解析log最經常使用的就是json解析。
咱們單獨說下json解析的方法。直接上代碼:github
-- employee表的xjson字段,只有一條數據 [{"name":"王二","sex":"男","age":"25"},{"name":"李四","sex":"男","age":"47"}] |
取出"王二"的年齡:redis
hive sql爲:sql
select get_json_object(xjson,'$.[0].age') from employee limit 1; |
hive 查詢結果爲: 25json
presto 對json的處理函數是 json_array_get() 和 json_extract()分佈式
-- 咱們分步操做,先用 json_array_get()取出jsonArray的第一個元素 select json_array_get(xjson,0) from employee limit 1; |
presto查詢結果: {"name":"王二","sex":"男","age":"25"}函數
-- 再介紹下用 json_extract() 在 {"name":"王二","sex":"男","age":"25"} 中查詢 "王二"的年齡 -- json_extract 和 hive中的get_json_object相似 select json_extract('{"name":"王二","sex":"男","age":"25"}', '$.age') |
presto查詢結果是:25