SlideShare a Scribd company logo
DATA PIPELINE ESSENTIAL
Bryan@LINE TV

資料⼯程年會 2020.09
https://linetv.tw/
你正在為這些事情困擾嗎?
➤ 資料量量⼀一⼤大就不知道該怎麼辦?
➤ 花非常多時間建立、管理理資料管線?
➤ 好多⼯工具不知道要⽤用哪⼀一套?
AGENDA
➤ Why you need data pipelines
➤ How to design a data pipeline
➤ What a good framework should look like
WHO AM I
๏ 現職
๏ LINE TV 資料架構師,負責打點資
料的⼤⼤⼩⼩⽣活瑣事。
๏ 資料⼯程協會常務理事。
๏ 經歷
๏ 稱霸亞洲的⼤數據集團
๏ 股價翻了 20 倍的矽⾕新創
๏ 總經理很帥的台灣電信業
๏ 跨國⾏銷顧問業
WHY WE NEED
DATA PIPELINE
https://www.cienve.org.tw/epaper/105_3/construct.aspx
將資料變成我們想要的形狀狀
MACHINE LEARNING 就是⼀一連串串的轉換過程
⼤大型資料處理理、倉儲、視覺化、⾃自動化
DATA PIPELINE
DATA PIPELINE 就是⼀一系列列處理理資料的過程
TASK
Something
Simple
Input Output
JOB
Task1 Task2 Task3
E T LExtract Transform Load
DEVELOP A
DATA PIPELINE
LIFE CYCLE
Business
Understanding
Data
Understanding
Data
Preparation
DevelopmentEvaluation
Deployment
BUSINESS UNDERSTANDING
5W2H1E
➤ What 想要得到什什麼東⻄西?
➤ Why 為什什麼需要這份資料?
➤ Where 資料從哪來來?要往哪裡去?
➤ When 什什麼時候要拿到?多久拿⼀一次?可以忍受的修復時間?
➤ Who 使⽤用者是誰?誰要負責處理理?有沒有其他⼈人有可能⽤用到?
➤ How 打算⽤用什什麼⽅方式處理理?
➤ How much 有多少預算?
➤ Effect 這份資料有什什麼影響⼒力力?
DATA UNDERSTANDING
Data pipeline essential
EXAMPLE
Volumn Velocity Variety 說明
Input 200 GB/day Near Real Time Nested Json
從 App 收到的
使⽤者資料
Output 20 MB/day Daily Batch Flatten Parquet
每⼩時
Aggregate 的使
⽤者⾏為
PREPARATION
DATA PREPARATION
資料來來源1
Data Lake
資料來來源2

(後端DB)
資料處理理地

(Athena)
資料⽬目的地

(Data Warehouse)
權限
權限
權限
DEVELOPMENT
確認資料流程
Conceptual 建立⽬目標表格 根據條件下 SQL 將算好的資料拋
到⽬目標表格
Logical 確認來來源欄欄位格
式
確認⽬目標表格儲
存形式
確認 SQL 語法邏
輯
Physical 確定⽬目標表格的
檔案存放位置與
格式
確認中繼檔案的
存放地點並刪除
舊的檔案
將檔案從中繼地
移動到⽬目的地
建立 Partition
JOB DESIGN PATTERN
Trigger Task2 Task3
Alert Task4
JOB DESIGN PATTERN - TRIGGER
➤ Scheduler (time based)
➤ Event Trigger (push)
➤ Status Listener (pull)
Trigger Task2 Task3
Alert Task4
JOB DESIGN PATTERN - TASK 的抽象化
➤ 每個 Task 負責的事情很單純,盡量量讓每個 Task 都可以輕易易被
複⽤用
類似的 JOB 裡⾯面的 TASK ⼀一模⼀一樣
JOB DESIGN PATTERN - 狀狀態管理理
Task2 Task3
Alert Task4
監控運⾏行行狀狀態
JOB DESIGN PATTERN - 狀狀態管理理
Task2 Task3
Alert Task4
發⽣生異異常時 Retry
JOB DESIGN PATTERN - 狀狀態管理理
Task2 Task3
Alert Task4
綠燈才允許放⾏行行
JOB DESIGN PATTERN - 狀狀態管理理
Task2 Task3
Alert Task4
紅燈發送告警或做其他事情
TIP 1 - 設置適當參參數
➤ 透過Connection/參參數控制資料來來源
➤
TIP 2 參參數化 SQL
➤ 資料來來源可以帶參參數
➤ ⽇日期也可以帶參參數
TIP 3 SQL 和 TASK 分別管理理
TIP 4 PIPELINE 的冪等性
➤ 確保 Pipeline 重複執⾏行行時不會影響資料
➤ RDBMS -> update/ replace
➤ Hive -> overwrite partition
➤ Athena -> s3 delete
TIP 5 - ⼆二階段轉換
➤ 當你要確認資料轉換結果時:

1. 將資料轉換結果放入⼀一暫存區

2. 驗證轉換後的資料是否正確

3. 再將資料轉入正式環境

EVALUATION
Unit Test
Integration Test
User Test
E2E Test
Monitoring
測試各 Functions 和 SQL
測試 Pipeline 運作
測試商務邏輯是否符合
測試 Pipeline 在⽣生產環境下

運作是否正常
持續監控資料看有無異異常
UNIT TEST 可以涵蓋的範圍
➤ Read data
➤ Data validation
➤ Utilities
➤ Templated SQL
➤ Write data
TIPS
➤ 使⽤用⼩小資料測試管線運作
➤ 使⽤用過去的正式資料驗證結果
➤ 撈幾個範例例資料給使⽤用者,請使⽤用者確認無誤後再著⼿手⾃自動化
DEPLOYMENT
DEPLOYMENT 流程
Staging 環境 + Staging 資料 >> 測試 Pipeline 運⾏行行
Staging 環境 + Production 資料 >> 測試 Pipeline 是否能負荷正式資料
Production 環境 + Production 資料 >> 正式上線
常⾒見見問題
➤ 輸入資料不正確或延遲(資料意外的延遲)
➤ 計算資源不⾜足導致的 Crach 或延遲(資料量量過⼤大)
➤ 資料處理理過程中有 bug(程式沒考慮到的狀狀況)
➤ 未預想到的輸入資料造成 Crash 或 bug(Python 1 -> False)
➤ 儲存時發⽣生錯誤(權限不⾜足)
上線後監控 - TASK 狀狀態
上線後監控 - 資料狀狀態
上線後監控 - 錯誤告警
TIPS
➤ 每次部署都可以做版本控管,隨時可以回退版本
➤ 發⽣生意外時發送告警
➤ 確保任務的 Log 有紀錄
➤ 錯誤排除後可以⾃自動/⼿手動重新執⾏行行
DATA PIPELINE
FRAMEWORK
PIPELINE 框架
幾個 PIPELINE 框架比較(BATCH)
優點 缺點
Cron Linux 環境都可以⽤用
很難開發除錯
很難管理理相依性
Jenkins
UI 介⾯面可以直接操作
很多現成套件可以⽤用
直接透過 UI 操作會不好
做版本管理理
Airflow
Python 開發
⽅方便便測試
UI 很難⽤用
K8s cronjob k8s 原⽣生
很難開發除錯
很難管理理相依性
幾個 PIPELINE 框架比較(STREAMING/ NEAR REAL TIME)
特點
Kafka + Consumer
1. 真 Streaming 處理理
2. 穩,可以當 DB 使⽤用
3. 透過 Topic 管理理資料⽤用途
Spark Streaming
1. 可以⾝身兼資料收集以及資料處理理
2. 分散式運算
AWS Kinesis + Firehose +
Lambda
1. 雲端服務
2. 可以 Streaming 也可以 minibatch
3. Lambda 開發語⾔言彈性
4. Auto scaling
GCP Pub Sub + Dataflow
1. 雲端服務
2. 同個框架可以處理理 Streaming 或 Batch 資料
3. 可以在 Local 或雲端執⾏行行
4. Auto scaling
資料處理理語⾔言
RAW SQL
ORM
TIP 1 - 框架要能提供查核點
TIP 2 ⽅方便便查找 LOG
TIP 3 - JOB 運⾏行行環境和系統運⾏行行環境分離
https://www.bigdataschool.ru/blog/airflow-kubernetes-executor.html
TIP 4 - JOB 運算環境獨立
TIP 5 - LOADING 太重的運算可以再獨立出來來
➤ 資料存放的安全性
➤ 運算時的安全性
➤ 連線之間的權限
➤ 運⾏行行環境的權限
➤ Secret Manager
TIP 6 - 系統安全性
TAKE HOME
➤ Data Pipeline 非常需要中央集中管理理、分散式運⾏行行
➤ 資料越早落落地越安全
➤ 如果我當年年問顧客他們想要什什麼,他們肯定告訴我要⼀一匹更更快
的⾺馬。
Q & A
“把⼀件簡單的事做好就不簡單,
把每⼀件平凡的事做好就不平凡。
-海爾公司總裁張瑞敏

More Related Content

PDF
那些年、我們還沒學會就已經過時的那些技術
PPTX
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
PPTX
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
PDF
Vivado hls勉強会3(axi4 lite slave)
PDF
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
 
PDF
用十分鐘搞懂《離散數學》
PDF
用十分鐘 學會《資料結構、演算法和計算理論》
PDF
파이썬으로 나만의 강화학습 환경 만들기
那些年、我們還沒學會就已經過時的那些技術
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
Vivado hls勉強会3(axi4 lite slave)
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
 
用十分鐘搞懂《離散數學》
用十分鐘 學會《資料結構、演算法和計算理論》
파이썬으로 나만의 강화학습 환경 만들기

What's hot (20)

PDF
【メタサーベイ】Vision and Language のトップ研究室/研究者
PDF
Klee and angr
PDF
梯度下降法 (隱藏在深度學習背後的演算法) -- 十分鐘系列
PPTX
VyOSで作るIPv4 Router/IPv6 Bridge
PDF
TRICK 2022 Results
PDF
Open Policy Agent (OPA) 入門
PDF
An Introduction to Causal Discovery, a Bayesian Network Approach
PPTX
SIGNATE 鰹節コンペ2nd Place Solution
PDF
用十分鐘快速掌握《數學的整體結構》
PDF
簡易版AutoML+OptunaによるHyperparams Tuning
PPTX
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
PDF
Rethinking and Beyond ImageNet
PDF
hooks riverpod + state notifier + freezed でのドメイン駆動設計
PDF
深層強化学習入門 2020年度Deep Learning基礎講座「強化学習」
PPTX
【初学者向け】AI超入門
PDF
DeepLab v3触ってみた
PDF
用十分鐘搞懂 《資管、資工、電子、電機、機械》 這些科系到底在學些甚麼?
PDF
SDN界隈の用語・考え方をざっくりまとめます。
PPT
Javascriptで無限ループを実現する5つの方法
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法
【メタサーベイ】Vision and Language のトップ研究室/研究者
Klee and angr
梯度下降法 (隱藏在深度學習背後的演算法) -- 十分鐘系列
VyOSで作るIPv4 Router/IPv6 Bridge
TRICK 2022 Results
Open Policy Agent (OPA) 入門
An Introduction to Causal Discovery, a Bayesian Network Approach
SIGNATE 鰹節コンペ2nd Place Solution
用十分鐘快速掌握《數學的整體結構》
簡易版AutoML+OptunaによるHyperparams Tuning
Anaconda navigatorのアップデートが終わらないときの対処方法メモ
Rethinking and Beyond ImageNet
hooks riverpod + state notifier + freezed でのドメイン駆動設計
深層強化学習入門 2020年度Deep Learning基礎講座「強化学習」
【初学者向け】AI超入門
DeepLab v3触ってみた
用十分鐘搞懂 《資管、資工、電子、電機、機械》 這些科系到底在學些甚麼?
SDN界隈の用語・考え方をざっくりまとめます。
Javascriptで無限ループを実現する5つの方法
レコメンドアルゴリズムの基本と周辺知識と実装方法
Ad

Similar to Data pipeline essential (20)

PDF
昆腾技术白皮书- 重新设计备份和恢复,适应未来虚拟化和整合的需求
PPT
腾讯大讲堂30 运维工具让你的开发运营更轻松
PPT
腾讯大讲堂30 运维工具让你的开发运营更轻松
PDF
Modernising Data Architecture for Data Driven Insights (Chinese)
PDF
How Enterprises Leverage Data to Overcome Business Challenges During Coronavirus
PDF
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
PDF
美团数据平台之Kafka应用实践和优化
PPT
Sybase Analytic Appliance
PDF
Data Pipeline Matters
PDF
Hadoop Big Data 成功案例分享
PPTX
Actuate presentation 2011
PPT
intra-mart Accel series 2025 Spring updates-zh-Ver.2.ppt
PPTX
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
PDF
災難演練 @ AWS 實戰分享 (Using AWS for Disaster Recovery)
PDF
Realtime analytics with Flink and Druid
PDF
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
PPTX
移动时代端到端的稳定性保障经验谈
PPT
intra-mart Accel series 2025 Spring updates-zh.ppt
PDF
Data Analyse Black Horse - ClickHouse
PDF
逻辑数据编织 – 构建先进的现代企业数据架构
昆腾技术白皮书- 重新设计备份和恢复,适应未来虚拟化和整合的需求
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
Modernising Data Architecture for Data Driven Insights (Chinese)
How Enterprises Leverage Data to Overcome Business Challenges During Coronavirus
沪江去 Windows 实践 - 从 SQL Server 到 MySQL
美团数据平台之Kafka应用实践和优化
Sybase Analytic Appliance
Data Pipeline Matters
Hadoop Big Data 成功案例分享
Actuate presentation 2011
intra-mart Accel series 2025 Spring updates-zh-Ver.2.ppt
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
災難演練 @ AWS 實戰分享 (Using AWS for Disaster Recovery)
Realtime analytics with Flink and Druid
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
移动时代端到端的稳定性保障经验谈
intra-mart Accel series 2025 Spring updates-zh.ppt
Data Analyse Black Horse - ClickHouse
逻辑数据编织 – 构建先进的现代企业数据架构
Ad

More from Bryan Yang (15)

PDF
敏捷開發心法
PPTX
Docker 101
PDF
資料分析的快樂就是如此樸實無華且枯燥
PDF
Data pipeline 101
PPTX
Building a data driven business
PPTX
產業數據力-以傳統零售業為例
PPTX
Serverless ETL
PPTX
敏捷開發心法
PPTX
Introduction to docker
PPTX
Spark Sql for Training
PPTX
Spark MLlib - Training Material
PPTX
Building your bi system-HadoopCon Taiwan 2015
PPTX
Build your ETL job using Jenkins - step by step
PPTX
Data Scientist's Daily Life
PPTX
Introduce to Spark sql 1.3.0
敏捷開發心法
Docker 101
資料分析的快樂就是如此樸實無華且枯燥
Data pipeline 101
Building a data driven business
產業數據力-以傳統零售業為例
Serverless ETL
敏捷開發心法
Introduction to docker
Spark Sql for Training
Spark MLlib - Training Material
Building your bi system-HadoopCon Taiwan 2015
Build your ETL job using Jenkins - step by step
Data Scientist's Daily Life
Introduce to Spark sql 1.3.0

Data pipeline essential