国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

創業公司做數據分析(六)數據倉庫的建設

大數據 數據分析 數據倉庫
本文將重點探討數據處理層中數據倉庫的建設。在第二篇運營數據系統一文,有提到早期的數據服務中存在不少問題,雖然在做運營Dashboard系統時,對后臺數據服務進行了梳理,構建了數據處理的底層公共庫等,但是仍然存在一些問題。

作為系列文章的第六篇,本文將重點探討數據處理層中數據倉庫的建設。在第二篇運營數據系統一文,有提到早期的數據服務中存在不少問題,雖然在做運營Dashboard系統時,對后臺數據服務進行了梳理,構建了數據處理的底層公共庫等,但是仍然存在一些問題:

中間數據流失,計算結果沒有共享。比如在很多數據報告中都會對同一個功能進行數據提取、分析,但是都是各自處理一遍,沒有對結果進行共享。

數據分散在多個數據源,如MySQL、MongoDB、Elasticsearch,很難對多個源的數據進行聯合使用、有效組織。

每個人都需要非常清楚產品業務邏輯才能正確地提取、處理數據,導致大家都將大量時間耗費在基礎數據處理中。

于是,我們考慮建設一個適于分析的數據存儲系統,該系統的工作應該包含兩部分:***,根據需求抽象出數據模型;第二,按照數據模型的定義,從各個數據源抽取數據,進行清洗、處理后存儲下來。雖然數據倉庫的學術定義有很多版本,而且我們的系統也沒有涉及到多部門的數據整合,但是符合上述兩個特點的,應該可以歸結到數據倉庫的范疇了,所以請允許筆者將本文命名為“數據倉庫的建設”。

下圖所示,為現階段我們的數據倉庫建設方案。數據主要來源于MySQL和MongoDB中的業務數據、Elasticsearch中的用戶行為數據與日志數據;ETL過程通過編寫Python腳本來完成,由Airflow負責任務流的管理;建立適于分析的多維數據模型,將形成的數據存入MySQL中,供數據應用層使用。可以看到,數據倉庫本身既不生產數據也不消費數據,只是作為一個中間平臺集中存儲數據,整個系統實現的重點在于數據建模與ETL過程,這也是日常維護中的重點。

創業公司做數據分析(六)數據倉庫的建設

存儲選型

將數據落地到哪里是首先要考慮的問題,筆者考慮的因素主要有這么幾點:一是數據量大小和增長速度,二是要能實現SQL或者類SQL操作,有多表聯合、聚合分析功能,三是團隊技術棧。可選的技術方案有MySQL、Oracle和Hive,最終選擇了基于MYISAM存儲引擎的MySQL,部分原因如下:

要不要Hadoop? 生產業務數據庫與用戶行為數據增長均比較緩慢,預計在接下來的一年里數據倉庫的總存儲量不會超過500GB 。因此現階段接入Hadoop的意義不大,強行接入反而會降低工作效率。而且團隊主要技術棧是Python,使用Python操作Hadoop本身就會有性能損耗。

為什么是MySQL? 相比Oracle,團隊對MySQL更加熟悉,所以筆者更多的考慮是選擇MySQL的哪個存儲引擎:Infobright vs. myisam vs. innodb。Infobright引入了列存儲方案,高強度的數據壓縮,優化的統計計算,但是目前已經沒有社區版了,需要收費。拋開底層存儲的區別,myisam與innodb在特性上的區別主要體現在三個方面:***,引用的一致性,innodb有外鍵,在一對多關系的表之間形成物理約束,而myisam沒有;第二,事務,innodb有事務操作,可以保證一組操作的原子性,而myisam沒有;第三,鎖級別,innodb支持行鎖,而myisam只支持表鎖。對于外鍵與事務,并不是數據倉庫需要的,而且數據倉庫是讀多寫少的,myisam的查詢性能優于innodb,因此myisam成為***。

數據建模

根據數據分析的需求抽象出合適的數據模型,是數據倉庫建設的一個重要環節。所謂數據模型,就是抽象出來的一組實體以及實體之間的關系,而數據建模,便是為了表達實際的業務特性與關系所進行的抽象。數據建模是一個很寬泛的話題,有很多方法論值得研究,具體到業務上不同行業又會有不同的建模手法。這里主要結合我們的實踐來簡單地談一些認識和方法。

目前業界有很多數據建模的方法,比如范式建模法、維度建模法等等。遵循三范式,我們在做業務數據庫設計時經常會用到,這種方法對業務功能進行抽象,方便功能擴展,但是會額外增加分析的復雜度,因此筆者更傾向于維度建模法。維度建模法,是Kimball ***提出的概念,將數據抽象為事實表與維度表兩種,而根據二者之間的關系將整體的模型劃分為星型模型與雪花模型兩種。這種建模方法的優勢在于,根據各個維度對數據進行了預處理,比如按照時間維度進行預先的統計、分類等等,可以提高數據分析應用時的效率,是適于分析的一種方法。具體來看看幾個概念:

維度表與事實表。維度表,描述的是事物的屬性,反映了觀察事物的角度。事實表,描述的是業務過程的事實數據,是要關注的具體內容,每行數據對應一個或多個度量事件。比如,分析“某地區某商品某季度的銷量”,就是從地區、商品、時間(季度)三個角度來觀察商品的銷量,維度表有地區表、商品表和時間表,事實表為銷量表。在銷量表中,通過鍵值關聯到三個維度表中,通過度量值來表示對應的銷量,因此事實表通常有兩種字段:鍵值列、度量值列。

星型模型與雪花模型。兩種模型表達的是事實表與維度表之間的關系。當所有需要的維度表都直接關聯到事實表時,看上去就是一顆星星,稱之為星型模型;當有一個或多個維表沒有直接關聯到到事實表上,而是通過其他維度表連接到事實表上時,看上去就是一顆雪花,稱之為雪花模型。二者的區別在于,雪花模型一定程度上降低了信息冗余度,但是合適的冗余信息能有效的幫助我們提高查詢效率,因此,筆者更傾向于星型模型。

創業公司做數據分析(六)數據倉庫的建設

基本的維度建模思路。維度建模的基本思路可以歸納為這么幾點:***,確定主題,即搞清楚要分析的主題是什么,比如上述的“某地區某商品某季度的銷量”;第二,確定分析的維度,準備從哪幾個角度來分析數據;第三,確定事實表中每行的數據粒度,比如時間粒度細化到季度就可以了;第四,確定分析的度量事件,即數據指標是什么。

舉個例子,業務場景是:一款做連鎖企業招聘工作的產品,比如為麥當勞的所有連鎖門店招聘員工,現在要分析“每家門店的招聘情況如何?”。結合具體業務,我們引入六個維度:時間維度、地區維度、品牌維度、門店維度、職位維度、申請渠道;數據指標上,主要有申請工作人數、申請工作次數、聘用人數、拒絕人數,每個指標分別有增量值和總量值兩種;數據粒度上,時間維度細分到以小時為單位,地區維度細分到市一級。下圖所示便是相應的星型模型,有三點值得一提:

可以看到我們只建立了四張維度表,地區維度和渠道維度是直接以字符串的形式放到事實表中的。這是維度設計中經常遇到的一個問題:如果這個維度只有一個屬性,那么是作為單獨的一張表還是作為事實表的一部分?其實并沒有完全對與錯的答案,只有是否適合自己的答案。這里,城市與渠道的信息并不會發生變化,所以放入事實表中可以避免聯合查詢。

建立了統一的時間維度,可以支持各種時間統計方案,避免在查詢時進行時間值運算。

在品牌維度、門店維度、職位維度三張表中,都有prod_xxxx_id的字段,其值是產品業務數據庫中相應數據的id,作用是為了與業務數據庫中的信息進行同步。當業務數據庫中的相關信息發生變化時,會通過ETL來更新數據倉庫中的信息,因此我們需要這樣的一個字段來進行唯一標識。

創業公司做數據分析(六)數據倉庫的建設

ETL

ETL這塊,由于前期我們做了不少工作來構建底層數據分析公共庫,能有效的幫助我們進行數據抽取與處理,因此,現階段還沒有引入諸如Kettle這樣的開源工具,主要采用編寫Python腳本來實現。這里主要談談增量更新機制與任務流管理兩個問題的策略。

1. 增量更新機制

增量更新的背景是這樣的:***,上面有提到,對于可變的維度表,我們添加了prod_xxxx_id字段來唯一標識,實現信息覆蓋更新。對于事實表,為了反映歷史狀態,表中的數據通常是不可逆的,只有插入操作,沒有刪除或者修改操作,表示在過去一段時間內完成的事實業務數據,更新的方法就是插入新的數據。第二,ETL通常是近實時的,需要依賴schedule觸發更新,因此每次需要更新的信息就是上一次更新時間與當前時間之間的變化數據。筆者采用的策略是:

  • 建立一張temp表,表中有last_update_time與etl_name兩個字段;
  • 每次更新時,首先查詢出相應的etl_name的最近一條記錄,取其中的last_update_time作為起始時間,取當前時間為結束時間;
  • 抽取數據源中在這段時間內變化的數據,作為ETL過程的輸入,進行處理;
  • 更新成功時,插入一條數據,last_update_time為當前時間。

2. Airflow任務流管理系統

在早期數據服務中,我們主要依靠crontab來運行各個任務,隨著業務增多,任務的管理變得越來越吃力,體現在以下幾方面:

  • 查看任務的執行時間和進展不方便。每次需要查看某個任務的執行情況時,都要登錄到服務器上去查看命令行的執行時間、log在哪里,通過ps來查看當前進程是否在運行等等。
  • 任務跑失敗后,沒有通知與重試。
  • 任務之間的依賴關系無法保證,完全靠預估,然后在crontab里設定執行時間間隔,經常出現上游還沒有處理完,下游就啟動了,導致臟數據的產生。

于是,我們開始考慮引入一個任務流管理系統,基本想法是:***,要能解決上述的問題;第二,***能與Python友好的兼容,畢竟團隊的主要技術棧是Python。經過調研,發現Airflow是當前最適合我們的。Airflow是Airbnb公司開源的一款工作流管理系統,基于Python編寫,兼容crontab的schedule設置方法,可以很簡單的描述任務之間的邏輯與依賴,并且提供了可視化的WebUI用于任務管理與查看,任務失敗時可以設置重試與郵件通知。這里貼一張官方的截圖來一睹其風采。

創業公司做數據分析(六)數據倉庫的建設

Airflow有三個重要的概念:DAG、Task和Operator。DAG(directed acyclic graphs),有向無環圖,用來表示任務的依賴結構;Task表示一個具體的任務節點;Operator表示某個Task的執行體是什么,比如BashOperator是執行一個Bash腳本,PythonOperator是執行一段python代碼等等。使用Airflow,首先要編寫對應的任務腳本,通常腳本需要做三件事:***,描述DAG的屬性(比如schedule、重試策略等),第二,描述Task屬性(比如Operator是什么),第三,描述Task的依賴情況。進一步的認識可以參考官方文檔。

創業公司做數據分析(六)數據倉庫的建設

以上便是現階段我們的數據倉庫發展與建設方法,雖然比較簡單,但是目前基本能滿足需求。隨著數據規模的增長和業務的復雜化,未來還有很多路要走:如何合理的建模?如何有效的利用數據?如何提高數據分析效率?期待更多的挑戰!

點擊查看:
創業公司做數據分析(一)開篇

創業公司做數據分析(二)運營數據系統

創業公司做數據分析(三)用戶行為數據采集系統

創業公司做數據分析(四)ELK日志系統

創業公司做數據分析(五)微信分享追蹤系統

責任編輯:未麗燕 來源: 36大數據
相關推薦

2017-02-09 15:46:09

數據分析互聯網

2017-02-09 17:51:18

數據分析數據系統互聯網

2017-04-06 21:29:58

數據分析ELK架構

2017-02-09 15:33:51

數據分析采集

2011-04-14 14:28:53

數據倉庫數據分析

2016-11-08 09:16:54

數據倉庫優化

2017-04-06 22:40:52

數據分析追蹤系統微信

2023-08-23 15:33:15

數據倉庫數據分析

2019-06-06 14:08:37

數據倉庫數據分析數據報表

2023-07-02 14:11:28

數據倉庫大數據

2023-09-05 16:30:53

數據倉庫數據分析

2017-03-01 10:50:45

2013-11-01 11:06:33

數據

2022-08-01 11:30:27

數據建模

2021-09-30 18:27:38

數據倉庫ETL

2016-05-10 13:55:36

2009-01-19 14:48:02

ETL優化過程原理

2013-05-09 16:09:19

Teradata 數據倉庫天睿

2009-01-18 16:50:31

數據倉庫數據倉庫概念模型數據挖掘

2023-12-14 14:41:37

點贊
收藏

51CTO技術棧公眾號

午夜精品视频一区| 男女爱爱免费网站| 2021中文字幕一区亚洲| 亚洲伦理在线| 国产aⅴ夜夜欢一区二区三区 | 国产成人精品视频免费看| 色综合天天做天天爱| 免费看美女隐私的视频| 亚洲第一页在线| 一区二区国产精品| 日韩精品成人av| 久久资源亚洲| 欧美一卡2卡3卡4卡| 久久成人在线| 激情国产在线| 国产对白在线播放| 国产一级揄自揄精品视频| 久久精品国产亚洲高清剧情介绍| 宅男网站在线免费观看| 亚洲 日韩 国产第一区| 精品国产a毛片| 成人一道本在线| 91成人在线精品视频| 国产经典av| 成人欧美在线观看| 91精品在线免费| 国产iv一区二区三区| 精品一区二区三区在线观看视频| 欧美日韩亚洲第一| 欧美一级在线亚洲天堂| 一区二区三区免费观看| 无码人妻h动漫| 亚洲天堂网在线观看| 久久女同精品一区二区| 成人在线免费小视频| 最新97超碰在线| 色噜噜狠狠色综合网| 日韩中文字幕精品视频| 亚洲电影激情视频网站| 一本久久综合| 激情不卡一区二区三区视频在线| 免费人成短视频在线观看网站| 国产精品久久国产三级国电话系列| 欧美猛男男办公室激情| av电影天堂一区二区在线观看| 亚洲第一论坛sis| 久久免费电影| 久久综合色播| 亚洲欧洲精品在线 | 久久永久免费| av男人一区| av成人 com a| 亚洲成人男人天堂| 妞干网在线观看视频| 久久伦理网站| 成人天堂噜噜噜| 欧美激情亚洲精品| 亚洲国产精品yw在线观看 | 狠狠色丁香婷综合久久| 日本女优一区| 成人国产精品| 成人bbav| 在线黄色网页| www.91在线| 亚洲网友自拍| 中文字幕在线影院| 男生操女生视频网站| 欧美性久久久久| 蜜臀精品一区二区| 亚洲精品国产一区| 欧美久久久久久一卡四| 成人国产精品av| 成人黄色午夜影院| 国产精品视频yy9099| 国产91色在线|免| 欧美最猛性xxxx| 久久人人看视频| 97精品久久久| 欧美一级视频免费在线观看| 萌白酱国产一区二区| 在线观看日韩av| 亚洲美女视频网站| 色婷婷综合久久久久| 久久精品99国产精品酒店日本| 亚洲国产精品一区二区三区| 亚洲精品福利在线观看| 亚洲成人黄色网| 日韩国产在线看| 中文字幕免费国产精品| 中文精品99久久国产香蕉| 不卡av在线免费观看| 狠狠色综合日日| www国产成人| 国产三级一区二区| 亚洲国产成人91porn| 色综合久久综合网97色综合| 欧美三级电影网| 亚洲美女又黄又爽在线观看| 色小说视频一区| 久久国产精品免费视频| 日韩免费高清在线观看| 91丝袜脚交足在线播放| 一区二区国产日产| 无码人妻丰满熟妇区96| 午夜影院网站| 男女在线观看视频| 欧美高清影院| 日本久久黄色| 麻豆91精品视频| 亚洲人成在线观看一区二区| 亚洲中字在线| 欧美精品aaaa| 午夜在线视频| 亚洲色图图片| 国产视频一区在线观看一区免费| 成人性生交大片免费看中文| 日韩精品一卡| 国产成人精品网址| 天天色天天爱天天射综合| 亚洲精品久久久久中文字幕二区| 538国产精品一区二区在线| 五月天色一区| 一级片免费在线| 国产精品免费精品自在线观看 | 国产美女久久久| 免费网站永久免费观看| 高清中文字幕一区二区三区| 成人黄页网站视频| 欧美午夜不卡| 亚洲一区二区三区视频在线| 一区二区三区四区在线观看视频| 成人疯狂猛交xxx| 久久久国产欧美| 成人直播视频| 日韩黄色片在线观看| 欧美优质美女网站| 国产精品一区二区久久国产| 91精品视频大全| 亚洲三区四区| 69视频在线| 欧美人妖视频| 久久精品综合| 欧美在线视频日韩| 日韩av手机在线观看| 在线国产伦理一区| 99re热久久这里只有精品34| 深爱激情久久| 2022国产精品视频| 亚洲经典中文字幕| 国产亚洲自拍偷拍| 二区在线视频| 午夜精品一区二区三区国产| 国产精品伦理在线| 久久精品久久久久久| 欧美日韩中文字幕在线播放| 欧美视频免费一区二区三区| 在线日韩网站| 亚洲精品午夜久久久| 欧美成人精品在线观看| 国产xxxxx视频| 成人在线超碰| 国产亚洲精品bt天堂精选| 亚洲最新av在线| 一区一区视频| 欧美人与性动交α欧美精品济南到| 香蕉久久国产| 一级做a爰片久久毛片美女图片| 在线国产伦理一区| 亚洲伦乱视频| 国产精品无人区| 国产欧美婷婷中文| 一区二区三区伦理| 免费的成人av| 国产午夜精品久久久| 中文字幕精品一区日韩| 成人涩涩网站| 亚洲一区二区三区中文字幕在线| 国产日韩精品入口| 99福利在线| 久久精品亚洲一区二区三区浴池| 午夜精品一区二区三区在线播放| 白浆爆出在线观看| 午夜天堂精品久久久久| 国产一级揄自揄精品视频| 青青草国产精品视频| 欧美激情影院| 欧美精品自拍偷拍动漫精品| 国产91美女视频| 亚洲日产av中文字幕| 欧美一级搡bbbb搡bbbb| 国内自拍视频一区| 日日夜夜精品视频免费| 日本高清视频精品| 黄频免费在线观看| 国产精品国产馆在线真实露脸| 精品中文字幕人| 欧美日韩大片免费观看| 亚洲国产精品悠悠久久琪琪| 欧美性大战久久久久xxx| 亚洲欧洲一区|