6

Hahow 數據團隊的誕生

 3 years ago
source link: https://tech.hahow.in/hahow-%E6%95%B8%E6%93%9A%E5%9C%98%E9%9A%8A%E7%9A%84%E8%AA%95%E7%94%9F-665371af389c
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Hahow 數據團隊的誕生. 一般企業會在什麼時間點成立數據團隊?有什麼考量?數據量大到多少才需要成立數據團隊…

Responses

Image for post
Image for post
Photo by Franki Chamaki on Unsplash

一般企業會在什麼時間點成立數據團隊?有什麼考量?數據量大到多少才需要成立數據團隊?沒有大數據需要處理的數據團隊都在做什麼?成立初期的基礎建設有哪些?

如果你對剛好也遇到以上問題,這篇文章會從成立的契機、團隊組成、成立初期的目標去介紹 Hahow 數據團隊是在什麼樣的情況下誕生的。

對網路公司來說,資料是珍貴的資產,如何有效的運用資料已經成為企業的競爭力之一,而大部分的資料都是有時效性的,為了能夠更好的去使用企業的資料,Hahow 在 2019 年 10 月成立了數據團隊。

在成立資料團隊之前,我們盤點了 Hahow 當時在資料方面遇到的問題

  • 資料使用率低:Hahow 商業分析的資料主要透過自架 Metabase 來做視覺化和儀表板,但 Metabase 必須由熟悉 SQL 的夥伴協助,但大部分需要做商業分析的人都不一定會寫 SQL。
  • 資料一致性:Hahow 會透過 MetabaseHubot 都有可以查詢資料的地方,而雙方背後所讀取的資料是來自不同的資料庫,Metabase 和 Hubot 也有可能因為代碼邏輯不一樣而導致結果不一樣。
  • 缺乏基礎建設:Metabase 只存放本站資料,未來會需要有更好的基礎建設支援存放更多不同來源的資料,比如說透過外部服務收集的行為資料、廣告資料等。

針對以上問題我們訂了以下目標:

  • 提升資料使用率:讓資料可以更輕易的被每位夥伴取得並進行分析
  • 維持資料一致性:所有監控、儀表板、商業分析用的資料都必須來自同一個資料來源
  • 基礎建設:建立收集資料 → 清理資料 → 儲存資料 → 分析資料的流程

訂了目標以後我們開始盤點團隊需要什麼樣的人才有辦法完成以上目標。相信大家理想中的數據團隊組成應該是這樣的:

  • 資料科學家
  • 資料分析師
  • 資料工程師
  • 專案負責人

現實是企業的資源都是有限的,從我們所訂的目標來去看的話,我們需要的是:

  • 能夠獨立處理系統架構的並從 0 到 N 建設基礎建設的人
  • 能夠協助做基本資料分析的人
  • 能夠作為專案負責人做跨部門溝通的人
  • 能夠清楚知道企業現在面對的問題有哪些,並且清楚知道這些問題對企業的重要性優先序的人

Hahow 數據團隊成立至今的組成都非常單純,就 CEO + 一位 Data Engineer。

為什麼會有 CEO?試問還有誰比 CEO 更清楚企業遇到了什麼問題呢。Data Engineer 則是從內部的 Back-end Engineer 轉調過來,負責建置基礎建設、處理系統架構,同時作為專案負責人協助專案中所有需要數據協助的部分。

團隊組成必須看公司資源和目標來決定需要的是通才還是專才,Hahow 的配置不一定適合你們的狀況。以 Hahow 來說我們選擇的是以通才來快速的做整合,幫助各部門解決一些日常營運上遇到的痛點。

團隊組建完成後我們就開始針對目標制定可行方案並執行,以下會分為幾個段落說明我們針對個別的目標做了哪些事情。

提升資料使用率

如前所述,Hahow 當時的商業分析用途的資料都是透過 Metabase 來視覺化和製作儀表版,必須透過懂 SQL 的工程師或夥伴協助製作。資料本身也都是直接從正式資料直接匯入,並未對欄位做優化。為了提升資料使用率我們做了以下三件事:

選擇合適的 BI 軟體

我們希望可以找到一個可以讓公司夥伴更輕易可以取得資料的工具,最好就是可以不用寫代碼就可以自行探索資料、視覺化、製作儀表板,而在 Tableau 和 Looker 間我們選擇了 Tableau。必須得說它們都各有優缺點,各企業都會有自己的考量,而我們選擇 Tableau 的最主要的原因是:不需要懂 SQL,只需要對資料有基本的了解就可以用拖拉的方式做視覺化和基本的分析。

設計合適的內部訓練

為了降低操作人員對於初期使用 Tableau 的挫折感,我們對第一批有可能使用的人員做內部訓練,以工作坊的方式進行,搭配大家在實際在工作上可能會遇到的問題作為範例講解。

透過文件清楚定義資料

除了製作資料的人,通常大家對於資料欄位的定義不是那麼的清楚,透過文件或 Tableau 本身的標註功能盡可能的把每個資料來源和欄位都標註清楚,讓使用的人可以很清楚知道在用的是什麼資料。

資料一致性

資料一致性是讓使用的人可以安心使用的重要因素之一,前面提到的 Metabase 和 Hubot 會讀取不同資料來源的資料和程式邏輯不一致,

Metabase 也很容易出現類似的需求由不同的人撰寫的狀況,在定義上沒有很清楚或許會出現需求和實際結果不符的狀況,比如說 A 所認定的「認列營收」定義未必和 B 認定的定義一致,且類似的資料在 Metabase 有不同的儀表板且數字不一致。

在這邊我們會針對分析用的資料重新設計合適的欄位,把定義的邏輯寫在 ETL 的代碼裏,確保相同的定義只會有一個邏輯。

分析用的資料透過 ETL 存到 Google BigQuery,而使用的人則透過 Tableau 連到 BigQuery 取得資料,Slack 的儀表板也改為顯示 Tableau 上製作好的儀表板,確保 Tableau 和 Slack 看到的資訊會是一致的。

You need a solid foundation for your data before being effective with AI and machine learning.

Source: The AI Hierarchy of Needs

相信大部分人想到資料團隊都會跟 AI、機器學習等聯想起來,但對於一個沒有任何相關基礎建設的公司來說,首先要做的是把基礎建設給蓋起來,而我們成立初期就是按照下圖的金子塔去對應出我們在現階段擁有的資源可以先做哪些基礎建設。

Image for post
Image for post
Source: The AI Hierarchy of Needs

Hahow 第一版以 Kubernetes Cronjob (排程) + Python script (執行) + Cloud Dataflow (資料清理) + BigQuery (資料倉儲)開始運作,而視覺化和分析則是透過 Tableau 呈現。由於篇幅問題更多關於基礎建設的技術細節會留在其他文章詳細說明。

由於 Hahow 大部分服務都在 Google Cloud,這邊服務選擇也都以 Google Cloud 為主,以下會從收集、儲存、清理、分析四個階段來說明。

收集資料

目前 Hahow 的資料來源有:

  • 本站資料不會全部匯入,只針對有商業分析需求的資料做整理再匯入到適合分析的資料庫

Hahow 現階段是透過 Apache Airflow 所提供的 Hooks 或 Operators,或自制客製化的 Operators 去收集各個不同來源的資料,收集的資料都會儲存一份檔案在 Google Cloud Storage,除了作為備份以外也可以作為不同用途的 ETL 取用。

清理資料

依需求會在 Apache Airflow 或 Dataflow 處理,目前會把比較需要彈性擴充的運算丟到 Dataflow 處理,有部分資料也會在 Airflow 對 BigQuery 執行 SQL 處理。

儲存資料

主要分為確定用途的資料和未確定用途的資料:

  • 確定用途的資料會經過規劃和設計存到 Google BigQuery
  • 未確定用途的會存在 Google Cloud Storage,視資料用途來決定要保留多久以前的資料

分析資料

這邊主要會透過 Tableau 來做基本的資料分析和視覺化,至於為何是 Tableau 可以參考前面的說明。有一些比較複雜的需求才會由 Data Engineer 協助跑統計或其他方法分析。

專案與跨部門溝通

除了確實完成部門目標以外,作為一個新成立的部門,如何讓其他部門夥伴認識你們並且了解你們在做什麼呢?

第一個專案

應該選一個「要做半年,但成效巨大的專案」還是「要做一個月,成效雖小但會有感的專案」呢?

我們的選擇是選一個對公司現階段最重要的目標來作為起始專案,且執行時間盡量不要超過一個月,盡量以最快速度試錯,跟據專案執行過程會遇到的問題來去調整,儘快的有產出讓公司夥伴有感。

主要是大部分的內部夥伴其實也沒有概念到底數據可以幫到他們什麼,如果可以快速的有一些成品出來,可以讓夥伴更有畫面,也可以讓數據團隊在合作的過程中發現基礎建設、SOP 等有什麼需要改善地方。

主動了解痛點

多和不同團隊的夥伴交流,了解他們在日常營運中遇到的問題,並思考有哪些是可以透過數據去協助的部分,從公司的目標去思考什麼才是最重要的

  • 跟不同的團隊了解他們工作上遇到的難題,協助分析有哪些部分是可以透過資料解決的
  • 收集不同團隊的目標以後還需要對齊公司目標,排出對公司現階段來說最重要的專案

快速驗證

一般來說數據團隊應該會在其他團隊都相對穩定的情況下才會成立,相信一定有很多助力可以使用。

以 Hahow 數據團隊來說會著重在商業目標的交付,以最小成本的方式快速去實驗,所以在選擇上都以現有資源可以支援的考量下去思考,比方說在選擇程式語言、工具、平台時都會評估:

  • 公司內其他部門的工程夥伴是否可以支援
  • 是否有現成的架構 / 部署 / 工具可以套用

反饋與優化

快速做出成品以後透過問卷、會議了解夥伴對於合作過程、成品的想法,並透過回饋來優化現有的系統和流程。

透過「主動了解需求 → 快速驗證 → 反饋 → 優化」的良好循環,找到數據團隊可以施力的點

對現階段的 Hahow 來說,數據團隊的最重要的價值不在於能處理多大的數據,而在於能提供什麼樣的觀點,讓數據可以輔佐商業決策和日常營運。

有一次儀表板顯示前一天業績暴漲,乍看之下有點不尋常,過去需要到各個不同服務和後台去查資料,現在透過資料整合到 Tableau,透過簡單的操作,前後只需花不到 5 分鐘便能分析出原因。

此外,數據團隊也致力於透過內部訓練、案例分享、學習社群、諮詢服務等推動各層級的夥伴可以取得他們所需的資料進行分析,培養夥伴們對資料的興趣和敏銳度,讓夥伴們可以跟據事實和指標做更好的決策。

以上就是 Hahow 數據團隊成立至今的心路歷程與故事,如果你對文章的任何一個議題有興趣了解更多,歡迎留言讓我們知道。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK