訂閱
糾錯(cuò)
加入自媒體

基于HBase的工業(yè)大數(shù)據(jù)存儲(chǔ)實(shí)戰(zhàn)

隨著工業(yè)4.0時(shí)代的到來(lái),工業(yè)互聯(lián)網(wǎng)和企業(yè)的智能化、信息化都將不斷推進(jìn),傳統(tǒng)的工業(yè)實(shí)時(shí)數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)已經(jīng)難以完全勝任工業(yè)大數(shù)據(jù)的存儲(chǔ),以HBase為代表的NoSQL數(shù)據(jù)庫(kù)正在蓬勃發(fā)展,其完全分布式特征、高性能、多副本和靈活的動(dòng)態(tài)擴(kuò)展等特點(diǎn),使得HBase在工業(yè)大數(shù)據(jù)的存儲(chǔ)上擁有強(qiáng)大的優(yōu)勢(shì),打破了流程工業(yè)生產(chǎn)中的"數(shù)據(jù)壁壘"效應(yīng)的瓶頸,可以促進(jìn)工業(yè)生產(chǎn)水平和生產(chǎn)管理水平的提高。本期格物匯,就來(lái)給大家介紹HBase數(shù)據(jù)庫(kù)及格創(chuàng)東智相關(guān)實(shí)戰(zhàn)案例。

了解HBase

HBase是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。HBASE的目標(biāo)是存儲(chǔ)并處理大型的數(shù)據(jù),更具體來(lái)說(shuō)是僅需使用普通的硬件配置,就能夠處理由成千上萬(wàn)的行和列所組成的大型數(shù)據(jù)。

HBASE是GoogleBigtable的開(kāi)源實(shí)現(xiàn),但是也有很多不同之處。比如:Google Bigtable使用GFS作為其文件存儲(chǔ)系統(tǒng),HBASE利用HadoopHDFS作為其文件存儲(chǔ)系統(tǒng);Google運(yùn)行MAPREDUCE來(lái)處理Bigtable中的海量數(shù)據(jù),HBASE同樣利用Hadoop MapReduce來(lái)處理HBASE中的海量數(shù)據(jù);Google Bigtable利用Chubby作為協(xié)同服務(wù),HBASE利用Zookeeper作為協(xié)同服務(wù)。

與傳統(tǒng)數(shù)據(jù)庫(kù)的相比,HBASE具備多重優(yōu)勢(shì)

1)線性擴(kuò)展,隨著數(shù)據(jù)量增多可以通過(guò)節(jié)點(diǎn)擴(kuò)展進(jìn)行支撐;

2)數(shù)據(jù)存儲(chǔ)在hdfs上,備份機(jī)制健全;

3)通過(guò)zookeeper協(xié)調(diào)查找數(shù)據(jù),訪問(wèn)速度快。

HBase實(shí)戰(zhàn)案例

為了更好的介紹 HBase 在人工智能場(chǎng)景下的使用,下面我們以某半導(dǎo)體顯示企業(yè)為案例,給大家分析格創(chuàng)東智大數(shù)據(jù)團(tuán)隊(duì)如何利用 HBase 設(shè)計(jì)出一個(gè)快速查找面板特征的系統(tǒng)。

目前,該公司的業(yè)務(wù)場(chǎng)景里面有很多面板相關(guān)的特征數(shù)據(jù),每張面板數(shù)據(jù)大概 3.2k。這些面板數(shù)據(jù)又被分成很多組,每個(gè)面板特征屬于某個(gè)組。組和面板的數(shù)據(jù)分布如下:

——43%左右的組含有1張面板數(shù)據(jù);

——47%左右的組含有 2 ~9張面板數(shù)據(jù);

——其余的組面板數(shù)范圍為 10 ~ 10000張。

現(xiàn)在的業(yè)務(wù)需求主要有以下兩類(lèi):

——根據(jù)組的 id 查找該組下面的所有面板數(shù)據(jù);

——根據(jù)組 id +面板id 查找某個(gè)面板的具體數(shù)據(jù)。

原有方案:MySQL+OSS

之前業(yè)務(wù)數(shù)據(jù)量比較小的情況使用的存儲(chǔ)主要為 MySQL 以及 OSS(對(duì)象存儲(chǔ))。相關(guān)表主要有面板組表group和面板表face。表的格式如下:

group表:

group_idsize12

glass表:

glass_idgroup_idfeature"TB7B3695BA05"1"CASBA"

其中 feature(特征)大小為3.2k,是二進(jìn)制數(shù)據(jù) base64 后存入的,這個(gè)就是真實(shí)的面板特征數(shù)據(jù),F(xiàn)在面板組 id 和面板id 對(duì)應(yīng)關(guān)系存儲(chǔ)在MySQL 中,對(duì)應(yīng)上面的 group 表;面板 id 和面板相關(guān)的特征數(shù)據(jù)存儲(chǔ)在 OSS 里面,對(duì)應(yīng)上面的 face 表。

因?yàn)槊總(gè)面板組包含的玻璃特征數(shù)相差很大(1 ~ 10000),所以基于上面的表設(shè)計(jì),我們需要將面板組以及每張面板特征id存儲(chǔ)在每一行,那么屬于同一個(gè)面板組的數(shù)據(jù)在MySQL 里面上實(shí)際上存儲(chǔ)了很多行。比如某個(gè)組id對(duì)應(yīng)的特征數(shù)為10000,那么需要在MySQL 里面存儲(chǔ) 10000 行。

我們?nèi)绻枰鶕?jù)面板組 id 查找該組下面的所有面板,那么需要從 MySQL 中讀取很多行的數(shù)據(jù),從中獲取到組和面板對(duì)應(yīng)的關(guān)系,然后到 OSS 里面根據(jù)面板id獲取所有相關(guān)的特征數(shù)據(jù)。

這樣的查詢導(dǎo)致鏈路非常長(zhǎng)。從上面的設(shè)計(jì)可看出,如果查詢的組包含的面板張數(shù)比較多的情況下,那么我們需要從 MySQL 里面掃描很多行,然后再?gòu)?OSS 里面拿到這些特征數(shù)據(jù),整個(gè)查詢時(shí)間在10秒左右,遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)有業(yè)務(wù)快速發(fā)展的需求。

1  2  下一頁(yè)>  
聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)