每日優鮮如何搭建數據倉庫?

7 評論 21419 瀏覽 68 收藏 12 分鐘

編輯導讀:生鮮配送已經不是一件新鮮事,只要在手機上下單就能享受到送貨到家的服務。這背后不僅要依靠強大的物流,還需要搭建數據倉庫,以便決策。本文將以每日優鮮為例,分析它是如何搭建數據倉庫的,與你分享。

一、為什么要做數據倉庫&數據倉庫的結構

1. 市場

國內生鮮銷售渠道中農貿市場占73%,而超市渠道滲透率僅為22%,相比與發達國家70%以上的水平,仍有較大差距。

隨著新零售的風口刮到了社區生鮮領域,社區生鮮近年來仍密集開店,一是行業巨頭降維打擊,布局“社區生鮮”市場,二是生鮮傳奇、錢大媽之類的小品牌井噴式爆發。

PEST分析:

國家政策:

國家大力發展在線農產品交易,對農產品超市進行補貼。并于2017年出臺的《商務部 中國農業發展銀行關于共同推進農產品和農村市場體系建設的通知》,其中主要支持方向為:

  • 農產品市場及倉儲物流設施建設。支持新建、改造各類農產品批發市場、綜合加工配送中心、產地集配中心,完善預選分級、包裝、倉儲、物流等設施。
  • 公益性農產品市場體系建設。支持公益性農產品批發市場建設公共加工配送中心、公共信息服務平臺、檢驗檢測中心、消防安全監控中心、廢棄物處理設施等公益性流通基礎設施。支持建設公益性菜市場、平價菜店等公益性農產品零售網點。
  • 農產品冷鏈物流體系建設。支持建設、改造標準化冷庫和冷鏈物流集散中心,提高農產品產地預冷、低溫加工、冷鏈倉儲配送能力。推動封閉式交接貨通道、月臺、貨架等設施標準化改造,加快綠色環保冷藏冷凍設施設備與技術應用。

因此為在線生鮮的發展打開了政策渠道。

經濟發展:

我國今年來經濟快速發展,經濟發展帶動了人民的消費欲望,在線生鮮電商打開了網上生鮮買賣的渠道。

社會現狀:

目前人們的消費水品提高,人們越來越關注農產品的安全問題,因此人們很多希望能夠直接從農產品生產地直接拿貨,既保證了食品安全,又對價格滿意;并且隨著人們網上購物的習慣養成和物流運輸水平的發展,人們網上采購生鮮類產品的意愿也在加強。

技術現狀:

隨著AI大數據以及物聯網等新技術的誕生,保質期短的生鮮產品能夠在特定的時間及時送到用戶手中,并對用戶反饋的數據進行追蹤,既提高了用戶的滿意度,同時也能夠保證食品的安全和新鮮。

綜上所述,生鮮網上發展正處于快速成長期,市場份額將越來越大。

二、每日優鮮產品概況

每日優鮮成立于2014年,2018年已完成水果、蔬菜、乳品、零食、酒飲、肉蛋、水產、熟食、輕食、速食、糧油、日百等全品類精選生鮮布局,因此SKU非常豐富,作為配送類產品,每日產生巨大的數據量。

每日優鮮能夠做了更多精準的觸達。媒體環境變得越來越精準了,這要求我們作為一個零售商或者廣告主,也會在算法上越來越精準。因此我們猜測每日優鮮具有自己的OLTP。

伴隨著新零售到來的步伐以及社區團購迎來的新風口,電商巨頭們亦紛紛布局生鮮電商。阿里有盒馬鮮生,京東有7Fresh,蘇寧有蘇鮮生,步步高有鮮食演義,同一賽道角逐的還有美團的小象生鮮、易果生鮮、天天果園、大潤發優鮮等,生鮮電商的搶灘戰未來將更加激烈。

因此,根據以上產品分析,每日優鮮需要搭建自己的數據倉庫,用于公司決策,精細化運營。

三、數據倉庫的結構

1. 事實與維度

每日優鮮維度分析:

數據集市矩陣表:

2. 數據倉庫數據源

數據源分為三種:

  1. 結構化數據:一般是業務數據庫或日志數據庫中直接產生的數據,存于關系數據庫中,常用的數據庫有,MYSQL,ORCAL,SQL SERVER,POSTGRESQL等數據庫中,主要以表的形式呈現。
  2. 半結構化數據:一般我們會將半結構化的數據經過XML轉化存于CLOB中,即存在XML的節點中,因此可以對數據進行有效擴展,半結構化數據一般后期會存入結構化數據庫中進行調用。
  3. 非結構化數據:一般是圖片,文字,語言類型通常會使用到NLP,圖像處理,語音識別等技術手段進行處理之后存在nosql數據庫中,常用的有mongo DB 和HBASE或者基于內存運算的列式存儲Redis數據庫,將數據存在數據庫的節點中,優點在于能夠有效擴展。

3. 數據倉庫的物理生產環境和ETL

在服務器集群規模選擇上如下分析(舉例):

  • 日活100w,每人平均產生100條日志,那么每天總日志可以是100w*100=1億條;
  • 每條日志一般情況5~2k,按照1k進行計算,約需要100萬存儲空間;
  • 如果服務器半年內不盡興擴容,那么需要的空間就是100萬*180天約為18T;
  • 保存3套數據副本,為54T;
  • 一般情況下還要預留20%~30%的空間,那么需要77T;
  • 按照一個磁盤10T的容量,那么我們就可以得出需要10個硬盤的服務器。

數據倉庫的物理生產環境一般是在LINUX平臺下運行,因為大數據生態體系下的編譯好的很多并包都是在LINUX系統中進行編譯,因此從技術開發層次在LINUX下開發。

一般服務器可以部署Apache開源的服務,當然在選擇框架的過程中需要考慮企業數據的規模,一般情況下大企業使用Apache框架,而對于中小企業可以選擇CDH框架。可以使用使用Mysql或其他類型的數據庫(根據需求)。使用PHP或者Python、JavaScript進行寫入。

ETL可選擇Informatica、Beeload、Kettle(開源,有數據安全風險)。

在進行服務器集群管理時,可選擇軟件Claudira Manager(只支持CDH框架下軟件安裝)簡化框架安裝和集群管理。

4. 半結構化數據的預處理

通常會使用XML或JOSN進行半結構化數據的處理存儲。

5. 物理化實現數據庫物理表

這一步就是設計數據庫的表結構,依據上一部中的分析維度和事實情況進行數據庫表的設計。常用的維度建模模型有星型模型(結構清晰)和星座模型。根據維度模型建立數據倉庫表。

6. ETL

數據倉庫設計完成,再對數據庫中的數據進行抽取轉換加載步驟。進行數據處理。將數據在各個框架中傳遞。

7. 加載事實表和維度表

對已經制作完成的表結構加載,得出我們希望看到的數據的事實表。

8. OLAP分析

將數據倉庫中的數據通過報表的形式和dashboard形式呈現出來。在此常用的工具有:

選擇的依據可以遵循兩個方面:

1)按照超大數據的查詢效率

Druid & Kylin & Presto & Spark SQL

2)從能夠處理的數據源多少的種類(從多到少)

Presto & Spark SQL & Kylin& Druid

數據可視化的工具一般可選用:echarts,superset,QuickBI,DataV。后兩種可視化工具為阿里提供的付費工具。

四、總結

數據倉庫的搭建是企業對數據的充分重視,搭建的過程可以是高層主導直接全域搭建或者由業務主題開始搭建數據集市,然后匯總成數據倉庫。

優點:數據倉庫使企業數據集成,向上能夠幫助高層決策,向下能夠滿足運營、財務、采購、物流等業務部門需求;隨著企業數據量的增大,為后續數據湖和數據平臺的搭建提供底層支撐,對企業數據進行數據資產化和數據管理,進一步能夠指導企業的業務線發展。

缺點:數據倉庫幫助企業數字集成的同時,隨著企業發展壯大,缺少對數據的運維,如何能夠更好服務企業發展,各部門協作,是下面需要考慮的問題。

后期,數據倉庫為更好的為企業節省成本,需要搭建數據平臺,集成業務中臺和技術中臺。

由于本人知識結構尚待優化,有不足之處,請多多指正。感謝。

 

作者:汪仔2296,QQ:1083368735

本文由@汪仔2296 原創發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash, 基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 辛苦了

    回復
    1. 哪里辛苦,哈哈

      回復
  2. 講的太粗了,
    100萬存儲空間具體是怎么計算的呢?
    需要10個硬盤的服務器,是怎么計算的?

    回復
  3. 太籠統

    來自山東 回復
  4. ??隔壁啊

    回復
    1. 啥意思

      來自上海 回復
    2. 之前我在每日優鮮隔壁公司

      來自北京 回復