Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

資料工程&科學 [1]

初入 Python 資料處理

因為工作的關係,開始接觸了資料分析、資料處理等領域,因此來把自己的學習記錄儲存在這邊。目前大概了解兩個方向,一、資料工程,二、資料科學

資料工程更偏向於對資料的處理做出自動化流程建置,使用多為 Apache 家族的工具

  • Apache Hadoop: 傳統的地端資料處理群集,採用多種技術如
    • HDFS (Hadoop Distrubuted File System): 用來將數據分散式儲存於群集的 Disk 中
    • YRAN (Yet Another Resource Negotiator): 群集中資源調度系統
    • MapReduce: 分散式運算框架,中間資料是儲存於 Disk 中
  • Apache Beam: 用來設計 Pipeline
  • Apache Spark: 運算框架,中間資料存在記憶體中(因此較快速),可以用來取代 MapReduce
  • Apache Flink: 流處理框架,處理 Real Time 資料
  • Apache Airflow: workload 調度工具,是一個 Orchestration (Data 之於 Airflow 類似 Container 之於 Kubernetes)

資料科學則更偏向依據需求對資料調整、分析,採用的工具多為 framework

  • Numpy: 多維度陣列處理套件,處理同質性陣列為主
  • Pandas: 資料表的分析與處理,處理異質性和標籤型的資料為主
  • SciPy: 數值科學運算
  • Scikit-learn: 機器學習相關
  • Tensorflow, PyTorch: 類神經網路相關
  • Matplotlib, Seaborn: 繪製分析結果圖
  • Jupyter: notebook (IPython) 互動式操作
  • sqlalchemy: 與資料庫互動的介面框架
  • BI 工具: Business Intelligence Tool,視覺化工具(如 tableau, Google Looker, MS powerBI)

根據不同公司的規模,可能有不同的團隊編制

  • 在小公司有可能只有一個資料工程師,直接處理主管或行銷的需求來分析,並且建置自動化流程方便未來調用資料,大部分這種小需求其實直接使用 excel, google sheet 就可以達成了
  • 在有規模一點的公司,可能有專門的團隊來處理資料,集中收集每日資料透過預先設定好的自動化流程(ETL),完成後儲存,後續再依據業務需求、行銷活動,來針對性製作報表或另外建置 ML 流程訓練模型,可能一個人完成整條資料處理流程 (類似 full-stack engineer)
  • 體制較為完善的公司,會分成兩者,一種是專門接收資料並做第一層處理(如去除PII)團隊,集中管控所有的資料。第二種是專門撰寫分析報告、訓練模型的團隊,達成資料上的分工。

因為目前工作上主要是使用 Google Cloud ,所以之後的文章都會以 Google Cloud 為主,很多服務也有在 Google Cloud 上有對應,之後也會慢慢來分享。接下來會寫關於資料儲存在哪(交易型資料庫、分析型資料庫差異),資料如何取出放入管線中,如何對資料做安全性權限管控,如何針對需求或問題對茲要做操作。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *