国产精品久av福利在线观看_亚洲一区国产精品_亚洲黄色一区二区三区_欧美成人xxxx_国产精品www_xxxxx欧美_国产精品久久婷婷六月丁香_国产特级毛片

錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
hive 拉鏈表設計與實現

作者: 佚名  日期:2023-07-14 20:43:40   來源: 本站整理

一、前言

做過電商開發的同學對訂單的業務應該不陌生,比如對一條訂單數據來說,通常會有一個類似于status的字

段來標識這個訂單的完整的生命周期,從存儲的數據來看,一張表只需要存儲這一條數據即可。

 

但是對于數據分析來看,為了跟蹤這個訂單的全生命周期的完整過程來說,這并不是一個很好的設計,假如說訂

單到已支付但未發貨,而且在未發貨這一步停留的時間很長,對于大數據分析場景來說,這就是一個重要的分析

場景,但對于mysql存儲的訂單表來說,這就有些冗余了。這也就是說,mysql在設計表的時候,是會充分考慮

冗余數據量帶來的性能問題。

 

二、拉鏈表業務背景

 

我們知道,Hive在實際工作中主要用于構建離線數據倉庫,定期的從各種數據源中同步采集數據到Hive中,

經過分層轉換提供數據給上層其他應用使用。

 

例如:有一個定時任務每天從MySQL中同步最新的訂單信息、用戶信息、店鋪信息等到數據倉庫中,從而進行訂單分析、用戶分析等。

 

如下圖所示,為一個數倉簡單的業務流程圖;

 

2.1 數據同步引發的問題

 

有下面這樣一張用戶表tb_user,有過開發經驗的同學對類似的訂單表應該不陌生,比如每次注冊完一個用戶后,該表中就會產生一條新

的數據,記錄了該用戶的id、手機號碼、用戶名、性別、地址等信息。

 

關于該表在業務中的具體使用場景如下:

  • 每天都會有用戶注冊,產生新的用戶信息;
  • 每天都需要將MySQL中的用戶數據同步到Hive數據倉庫中;
  • 需要對用戶的信息做統計分析,例如統計新增用戶的個數、用戶性別分布、地區分布、運營商分布等指標;

 

數據同步的過程大概長下面這樣

 比如說,在2021-01-01這一天,MySQL中有10條用戶信息;

 

然后通過中間程序(或其他方式)同步到下面的Hive表中了;

 

現在,假如在 2021-01-02 這一天,在前一天的基礎上,MySQL中新增了2條用戶注冊數據,并且其中有1條用戶數據發生更新,

  • 新增兩條用戶數據011和012;
  • 008的addr發生了更新,從gz更新為sh;

 

到了2021-01-03這天,Hive需要對2號的數據進行同步更新處理,此時問題來了:

新增的數據會直接加載到Hive表中,但是更新的數據如何存儲在Hive表中?

 

2.1.1 解決方案1

在Hive中用新的addr覆蓋008的老的addr,直接更新

 這么做的優點是:實現最簡單,使用起來最方便,但缺點也是很明顯的,沒有歷史狀態,008的地址是1月2號在sh

,但是1月2號之前是在gz的,如果要查詢008的1月2號之前的addr就無法查詢,也不能使用sh代替;

 

2.1.2 解決方案2

每次數據改變,根據日期構建一份全量的快照表,每天一張表

這樣做的優點是:記錄了所有數據在不同時間的狀態, 缺點:冗余存儲了很多沒有發生變化的數據,導致存儲的數據量過大;

 

2.1.3 解決方案3

 

構建拉鏈表,通過時間標記發生變化的數據的每種狀態的時間周期,如下圖表中數據所示,

它大意就是,當一條數據中的關鍵業務標識字段發送了變化,將新增加一條數據,將這

條數據的過期時間設置的非常大,作為這條數據的邊界,同樣主鍵的數據再次過來的時

候,在新增的一條記錄中只需要記錄變化的字段即可;關于拉鏈表,下文將做詳細的講述;

 

三、拉鏈表設計與原理

 

3.1 功能與應用場景

拉鏈表專門用于解決在數據倉庫中數據發生變化如何實現數據存儲的問題。

拉鏈表的設計是將更新的數據進行狀態記錄,沒有發生更新的數據不進行狀態存儲,用于存儲所有

數據在不同時間上的所有狀態,通過時間進行標記每個狀態的生命周期,查詢時,根據需求可以

獲取指定時間范圍狀態的數據,默認用9999-12-31等最大值來表示最新狀態。

如下圖所示,記錄了某些訂單的完整生命周期;

 

3.2 實現步驟

用下面這張圖來說明其完整的實現過程

具體來說,操作步驟如下:

 

3.2.1 Step1

增量采集變化數據,放入增量表中。

 

3.2.2  Step2

將Hive中的拉鏈表與臨時表的數據進行合并,合并結果寫入臨時表。

 

3.2.3 Step3

將臨時表的數據覆蓋寫入拉鏈表中。

 

3.3 操作演示

 

準備一份原始數據,內容如下

 

3.3.1 創建一張表并加載數據

    ——創建拉鏈表createtabledw_zipper(useridstring,phonestring,nickstring,genderint,addrstring,starttimestring,endtimestring)rowformatdelimitedfieldsterminatedby'\t';——加載模擬數據loaddatalocalinpath'/usr/local/soft/selectdata/zipper。txt'intotabledw_zipper;

執行過程

 檢查數據是否加載進去

 

3.3.2 模擬增量數據變化

下面為兩條新增的數據,以及一條變化的數據

創建一張增量表,并加載數據

    createtableods_zipper_update(useridstring,phonestring,nickstring,genderint,addrstring,starttimestring,endtimestring)rowformatdelimitedfieldsterminatedby'\t';loaddatalocalinpath'/usr/local/soft/selectdata/update。txt'intotableods_zipper_update;

 執行過程

檢查數據是否加載成功

 

 

3.3.3 合并數據

 

創建一張臨時表

    createtabletmp_zipper(useridstring,phonestring,nickstring,genderint,addrstring,starttimestring,endtimestring)rowformatdelimitedfieldsterminatedby'\t';

執行過程

 

合并拉鏈表與增量表

    insertoverwritetabletmp_zipperselectuserid,phone,nick,gender,addr,starttime,endtimefromods_zipper_updateunionall——查詢原來拉鏈表的所有數據,并將這次需要更新的數據的endTime更改為更新值的startTimeselecta。userid,a。phone,a。nick,a。gender,a。addr,a。starttime,——如果這條數據沒有更新或者這條數據不是要更改的數據,就保留原來的值,否則就改為新數據的開始時間-1if(b。useridisnullora。endtime<'9999-12-31',a。endtime,date_sub(b。starttime,1))asendtimefromdw_zipperaleftjoinods_zipper_updatebona。userid=b。userid;

執行上面的sql

 

覆蓋拉鏈表

insert overwrite table dw_zipper select * from tmp_zipper;

執行過程

執行完成后,檢查拉鏈表的數據,可以看到新增了2條數據,同時對于相同的那條數據做了時間上的更新;



熱門文章
  • 華碩B75m-A主板維修一例
  • iPad Air 4不充電,不開機(PD芯片...
  • 華碩X55JX時不時不觸發(橋待機供電...
  • 戴爾筆記本恢復出廠設置恢復原廠系...
  • 開源計算機視覺庫OpenCV詳解
  • hive 拉鏈表設計與實現
  • 條碼打印機設置標簽紙大小?打印機驅...
  • 怎么判斷MySQL中sql語句索引是否生...
  • L1正則化和L2正則化
  • 在Linux系統下,可以使用以下方法和...
  • 主板型號怎么看?小編將給大家介紹...
  • win10在激活界面會提示無法訪問激活...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    黄色国产一级视频| a日韩av网址| 97成人在线视频| 亚洲日本va中文字幕| 午夜福利视频一区二区| aaa毛片在线观看| 国产一区二区日韩精品欧美精品| 老司机精品视频一区二区三区| 天天色天天射天天综合网| 亚洲xxxx2d动漫1| 欧美日韩福利视频| 国产精品成人网| 亚洲小说图片| 中国大陆高清aⅴ毛片| 亚洲男人第一av| 日韩精品 欧美| 国产综合 伊人色| 日韩欧美的一区| 丝袜a∨在线一区二区三区不卡| 久久一卡二卡| 明星国产一级毛片范冰冰视频| 怡红院一区二区| 91九色视频在线观看| 91麻豆精品国产| 国产一区激情在线| 99视频这里有精品| 成人亚洲在线观看| 波多野结衣电车| 青青青免费在线| 亚洲视频电影| 欧美二区在线播放| 一本大道av伊人久久综合| 免费一级欧美片在线播放| 亚洲欧美小说色综合小说一区| jizzjizz韩国| 久草国产在线观看| 能在线观看的av网站| 国产精品成人品| 日韩你懂的电影在线观看| 色综合久久天天综合网| 精品久久久久久久中文字幕| 免费在线观看不卡| 国产成人tv| 麻豆视频在线| 91香蕉网站| 精品一区二区三区五区六区七区| 最近免费中文字幕大全免费第三页 | 蜜臀99久久精品久久久久小说| 日韩欧美a级片| 欧美日韩国产高清视频| 欧美理论片在线观看| 欧美老女人性生活| 欧美二区在线观看| 亚洲丝袜另类动漫二区| 日韩福利视频导航| youjizz亚洲| 性欧美videos高清hd4k| 电影k8一区二区三区久久 | 国产黄大片在线观看画质优化| 99re6在线视频精品免费| 国产成人精品综合网站| a毛片在线免费观看| 精品国产国产综合精品| 男操女免费网站| 香蕉视频xxxx| 日韩中文在线字幕| 国产99久久精品一区二区永久免费 | 色播视频在线播放| 国产一级片免费视频| www.亚洲欧美| 日本天堂网在线观看| 中文字幕av片| 免费成人美女女在线观看| 手机在线看福利| 三级三级久久三级久久18| 国产精品久久久久久av福利软件| 国产综合视频在线观看| 性日韩欧美在线视频| 亚洲色图欧美制服丝袜另类第一页| 一本色道久久综合亚洲精品按摩| 欧美日韩一区二区在线视频| 亚洲成av人综合在线观看| 久久久.com| 国产成人午夜精品影院观看视频 | 国产黄色网址在线观看| 超碰超碰在线观看| 免费看黄在线看| 国产人妻人伦精品| 日本高清一区| 国产一区二区三区黄| 欧美做暖暖视频| 男人天堂成人网| 国产永久免费网站| 中文字幕永久视频| 干b视频在线观看| 蜜桃精品成人影片| 精品久久久久久无码人妻| 91精产国品一二三产区别沈先生| 国产熟女一区二区| 久久精品国产亚洲av久| 亚洲av无码久久精品色欲| 蜜臀一区二区三区精品免费视频 | 在线视频自拍| 久青青在线观看视频国产| 色偷偷亚洲第一成人综合网址 | 国产69精品久久久久9999apgf| 国产精品18久久久久久首页狼| 欧美在线亚洲在线| 5566日本婷婷色中文字幕97| 国内精品久久久久久| 97国产精品人人爽人人做| 好看的日韩精品视频在线| 精品国产乱码久久久久久108| 日韩欧美一区二| 人妻熟妇乱又伦精品视频| 国产精品815.cc红桃| 国产精品久久久久久久久久久久久久久久 | 亚洲欧美色图片| 精品亚洲va在线va天堂资源站| 日韩电视剧免费观看网站| 欧美v国产在线一区二区三区| 亚洲精品www久久久久久广东| 亚洲黄在线观看| 国产在线精品成人一区二区三区| 欧美国产综合在线| 国产福利一区视频| 国产精品1234区| 国产精品欧美综合| 乱精品一区字幕二区| 无码国产色欲xxxx视频| 亚洲成人天堂| 日韩精品亚洲人成在线观看| 精品国产精品国产偷麻豆| 亚洲视频www| 99久久99久久精品免费看蜜桃| 中文字幕制服丝袜一区二区三区| 欧美精品一区二区三区在线| 久久av中文字幕| 国产精品中文在线| 久久青青草综合| 日韩久久久久久久久久久久| 极品美妇后花庭翘臀娇吟小说| 国产原创在线| а√天堂中文在线资源8| 91免费精品国偷自产在线在线| 国产一区免费电影| 亚洲黄色有码视频| 五月天色一区| 中文字幕 91| 国产一区二区小视频| 性18欧美另类| 成年人福利视频| av在线看片| av成人国产| 欧美经典三级视频一区二区三区| 黑人巨大精品欧美一区免费视频 | 性欧美lx╳lx╳| 日韩精品亚洲专区| 欧美一区二区在线免费播放| 色综合天天狠天天透天天伊人| 国产精品va在线观看无码| 中文字幕乱码视频| 国产经典自拍视频在线观看| 亚洲a成人v| 国产主播一区| jiyouzz国产精品久久| 色天使久久综合网天天| 中文字幕日韩高清| 成人xxxxx色| 国产日韩一区二区在线观看| 久久美女免费视频| 夜夜躁狠狠躁日日躁婷婷小说| 成年人视频网站在线| 一级毛片精品毛片| 中文字幕在线播放不卡一区| 国产欧美 在线欧美| 免费网站在线高清观看| 九七影院理伦片| 美女100%一区| 成人黄色在线看| 日本道色综合久久| 久久艳妇乳肉豪妇荡乳av| 色播五月激情五月| 中文字幕av高清| 国产精品亚洲综合在线观看| 久久五月激情| 亚洲美女自拍视频| 亚洲成人福利在线| 口述被爽到呻吟高潮自述| 日本在线视频中文有码| 国产一区二区三区观看| 欧美精品午夜视频| 天天插天天射天天干| 丰满人妻一区二区| 丝袜诱惑一区二区| 日韩精彩视频在线观看| 亚洲欧美一区二区三区四区| 午夜视频在线观| 俄罗斯xxxx性全过程| 午夜亚洲影视|