數據源表,phoenix的元數據一般存在哪里_Phoenix常用操作

 2023-11-30 阅读 22 评论 0

摘要:簡介Phoenix本意是鳳凰的意思,Apache Phoenix是構建在HBase之上的關系型數據庫層,作為內嵌的客戶端JDBC驅動用以對HBase中的數據進行低延遲訪問。Apache Phoenix會將用戶編寫的sql查詢編譯為一系列的scan操作,最終產生通用的JDBC結果集返回給客戶端。數據

簡介

Phoenix本意是鳳凰的意思,Apache Phoenix是構建在HBase之上的關系型數據庫層,作為內嵌的客戶端JDBC驅動用以對HBase中的數據進行低延遲訪問。Apache Phoenix會將用戶編寫的sql查詢編譯為一系列的scan操作,最終產生通用的JDBC結果集返回給客戶端。數據表的元數據存儲在HBase的表中被會標記版本號,所以進行查詢的時候會自動選擇正確的schema。直接使用HBase的API,結合協處理器(coprocessor)和自定義的過濾器的話,小范圍的查詢在毫秒級響應,千萬數據的話響應速度為秒級。

特性

Phoenix可以用SQL語句來查詢Hbase,且只能查Hbase,別的類型比如查詢文本文件等都不支持!如果要查文本文件等,可以使用Hive和Impala,Phoenix在Hbase上查詢的性能較Hive和Impala具有優勢。

常用操作

數據源表、登錄。1./sqlline.py localhost

查看HBase所有表。1!tables

table schema為system的是系統表。

查看HBase中表名為test的所有列。1!columns test

表名不用加引號。

查詢表數據。1

2

3select * from test;

select name from test;//查詢指定列

select * from test where name = 'jiangxiaoqiang';//條件查詢

刪除表數據。1

2delete from test where condition;//語法

delete from test where name is null;//例子

condition是過濾條件,注意結尾需要有分號,表示SQL語句已經結束,可以提交給引擎執行。

清除表的重復數據。1delete from tablename where vtime in ( select vtime from tablename group by vtime having count(*)>1) and id not in (select max(id) from tablename group by vtime having count(*)>1 );

清除同一時間重復的數據(同一時刻只能有1條數據)。

連接查詢。1SELECT P.id as id, vtime, A.description FROM 表P P left join 表A A on P.id=A.positional_Id WHERE P.vehicle_id='cae21196-cb66-4256-88a6-7cdfb23e2c78' and P.vtime >= '2016-10-10 00:00:00' and P.vtime <= '2016-10-13 23:59:59' and P.alarm is not null and P.alarm != '0' order by P.vtime;

注意在做MyBatis映射時,P.id列需要一個別名,對應定義的實體字段。

函數(Function)

substr函數用于截取字符串。1select substr(time,0,11) from test group by substr(time,0,11);

time為需要截取的字符串,從第0位開始截取11位長度。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/186741.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息