日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据HBase(十一):Apache Phoenix的视图操作

發(fā)布時(shí)間:2023/11/28 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据HBase(十一):Apache Phoenix的视图操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

全網(wǎng)最詳細(xì)的大數(shù)據(jù)HBase文章系列,強(qiáng)烈建議收藏加關(guān)注!

新文章都已經(jīng)列出歷史文章目錄,幫助大家回顧前面的知識重點(diǎn)。

目錄

系列歷史文章

前言

Apache Phoenix的視圖操作

一、應(yīng)用場景

二、視圖介紹

三、語法說明

四、建立MOMO_CHAT:MSG的視圖

1、參考SQL語句

2、嘗試查詢一條數(shù)據(jù)

五、完成陌陌查詢案例

1、需求

2、編寫SQL實(shí)現(xiàn)陌陌案例

3、使用java連接Phoenix:?


系列歷史文章

2021年大數(shù)據(jù)HBase(十七):HBase的360度全面調(diào)優(yōu)

2021年大數(shù)據(jù)HBase(十六):HBase的協(xié)處理器(Coprocessor)

2021年大數(shù)據(jù)HBase(十五):HBase的Bulk Load批量加載操作

2021年大數(shù)據(jù)HBase(十四):HBase的原理及其相關(guān)的工作機(jī)制

2021年大數(shù)據(jù)HBase(十三):HBase讀取和存儲數(shù)據(jù)的流程

2021年大數(shù)據(jù)HBase(十二):Apache Phoenix 二級索引

2021年大數(shù)據(jù)HBase(十一):Apache Phoenix的視圖操作

2021年大數(shù)據(jù)HBase(十):Apache Phoenix的基本入門操作

2021年大數(shù)據(jù)HBase(九):Apache Phoenix的安裝

2021年大數(shù)據(jù)HBase(八):Apache Phoenix的基本介紹

2021年大數(shù)據(jù)HBase(七):Hbase的架構(gòu)!【建議收藏】

2021年大數(shù)據(jù)HBase(六):HBase的高可用!【建議收藏】

2021年大數(shù)據(jù)HBase(五):HBase的相關(guān)操作-JavaAPI方式!【建議收藏】

2021年大數(shù)據(jù)HBase(四):HBase的相關(guān)操作-客戶端命令式!【建議收藏】

2021年大數(shù)據(jù)HBase(三):HBase數(shù)據(jù)模型

2021年大數(shù)據(jù)HBase(二):HBase集群安裝操作

2021年大數(shù)據(jù)HBase(一):HBase基本簡介

前言

?2021大數(shù)據(jù)領(lǐng)域優(yōu)質(zhì)創(chuàng)作博客,帶你從入門到精通,該博客每天更新,逐漸完善大數(shù)據(jù)各個(gè)知識體系的文章,幫助大家更高效學(xué)習(xí)。

Apache Phoenix的視圖操作

一、應(yīng)用場景

因?yàn)槲覀冎耙呀?jīng)創(chuàng)建了 MOMO_CHAT:MSG 表,而且數(shù)據(jù)添加的方式都是以PUT方式原生API來添加的。故此時(shí),我們不再需要再使用Phoenix創(chuàng)建新的表,而是使用Phoenix中的視圖,通過視圖來建立與HBase表之間的映射,從而實(shí)現(xiàn)數(shù)據(jù)快速查詢。

二、視圖介紹

我們可以在現(xiàn)有的HBase或Phoenix表上創(chuàng)建一個(gè)視圖。表、列蔟和列名必須與現(xiàn)有元數(shù)據(jù)完全匹配,否則會出現(xiàn)異常。當(dāng)創(chuàng)建視圖后,就可以使用SQL查詢視圖,和操作Table一樣。

三、語法說明

create view "my_hbase_table" (rowkey varchar primary key,列族.列名1 數(shù)據(jù)類型,列族.列名2 數(shù)據(jù)類型,....
)

考慮以下幾個(gè)問題:

  1. 視圖如何映射到HBase的表? 視圖的名字必須是:命名空間.表名
  2. 視圖中的列如何映射到HBase的列蔟和列? ?列名必須是:列蔟.列名
  3. 視圖中的類如何映射到HBase的ROWKEY? 指定某個(gè)列為primary key,自動(dòng)映射ROWKEY

四、建立MOMO_CHAT:MSG的視圖

1、參考SQL語句

-- 創(chuàng)建MOMO_CHAT:MSG視圖

CREATE VIEW
IFNOT EXISTS "MOMO_CHAT"."MSG" ("pk" VARCHAR PRIMARY KEY,  --?指定ROWKEY映射到主鍵"C1"."msg_time" VARCHAR,"C1"."sender_nickyname" VARCHAR,"C1"."sender_account" VARCHAR,"C1"."sender_sex" VARCHAR,"C1"."sender_ip" VARCHAR,"C1"."sender_os" VARCHAR,"C1"."sender_phone_type" VARCHAR,"C1"."sender_network" VARCHAR,"C1"."sender_gps" VARCHAR,? ? "C1"."receiver_nickyname" VARCHAR,"C1"."receiver_ip" VARCHAR,"C1"."receiver_account" VARCHAR,"C1"."receiver_os" VARCHAR,"C1"."receiver_phone_type" VARCHAR,"C1"."receiver_network" VARCHAR,"C1"."receiver_gps" VARCHAR,"C1"."receiver_sex" VARCHAR,"C1"."msg_type" VARCHAR,"C1"."distance" VARCHAR );

2、嘗試查詢一條數(shù)據(jù)

SELECT * FROM "MOMO_CHAT"."MSG" LIMIT 1;

五、完成陌陌查詢案例

1、需求

根據(jù)日期、發(fā)送人賬號、接收人賬號查詢歷史消息

2、編寫SQL實(shí)現(xiàn)陌陌案例

SELECTC1."sender_account",C1."receiver_account",C1."msg_time",C1."message" 
FROMMOMO_CHAT.MSG 
WHEREsubstr( C1."msg_time", 0, 10 ) = '2021-07-16' AND C1."sender_account" = '18461866438' AND C1."receiver_account" = '13641568674';

3、使用java連接Phoenix:?

@Override    
public List<Msg> getMessage(String date, String sender, String receiver) throws Exception {Class.forName(PhoenixDriver.class.getName());         Connection connection = DriverManager.getConnection("jdbc:phoenix:node1:2181");PreparedStatement ps = connection.prepareStatement("SELECT * FROM MOMO_CHAT.MSG T WHERE substr(\"msg_time\", 0, 10) = ? " + "AND T.\"sender_account\" = ? " + "AND T.\"receiver_account\" = ? ");ps.setString(1, date);         ps.setString(2, sender);ps.setString(3, receiver);        ResultSet rs = ps.executeQuery();        List<Msg> msgList = new ArrayList<>();while(rs.next()) {            Msg msg = new Msg();            msg.setMsg_time(rs.getString("msg_time"));            msg.setSender_nickyname(rs.getString("sender_nickyname"));            msg.setSender_account(rs.getString("sender_account"));            msg.setSender_sex(rs.getString("sender_sex"));            msg.setSender_ip(rs.getString("sender_ip"));            msg.setSender_os(rs.getString("sender_os"));            msg.setSender_phone_type(rs.getString("sender_phone_type"));            msg.setSender_network(rs.getString("sender_network"));            msg.setSender_gps(rs.getString("sender_gps"));            msg.setReceiver_nickyname(rs.getString("receiver_nickyname"));            msg.setReceiver_ip(rs.getString("receiver_ip"));            msg.setReceiver_account(rs.getString("receiver_account"));            msg.setReceiver_os(rs.getString("receiver_os"));            msg.setReceiver_phone_type(rs.getString("receiver_phone_type"));            msg.setReceiver_network(rs.getString("receiver_network"));            msg.setReceiver_gps(rs.getString("receiver_gps"));            msg.setReceiver_sex(rs.getString("receiver_sex"));            msg.setMsg_type(rs.getString("msg_type"));            msg.setDistance(rs.getString("distance"));            msgList.add(msg);        }return msgList;    
}

  • 📢博客主頁:https://lansonli.blog.csdn.net
  • 📢歡迎點(diǎn)贊 👍 收藏 ?留言 📝 如有錯(cuò)誤敬請指正!
  • 📢本文由 Lansonli 原創(chuàng),首發(fā)于 CSDN博客🙉
  • 📢大數(shù)據(jù)系列文章會每天更新,停下休息的時(shí)候不要忘了別人還在奔跑,希望大家抓緊時(shí)間學(xué)習(xí),全力奔赴更美好的生活?

總結(jié)

以上是生活随笔為你收集整理的2021年大数据HBase(十一):Apache Phoenix的视图操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。