SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
如何建置
(管線或管線系統)
單一 為多個 的組合
Stage 1 Stage 2 Stage 3Input Output
單一
● 獨立的
● 與其他 相互依賴
Stage 2Iutput OutputOutput
轉換階段
● 改變資料格式,增加或移除欄位
● 跨數據源的聚合計算
● 為資料建立索引,為使用資料的作業提供更好的特性
基本資料處理
不同資料源的資料處理
資料科學任務管線
管線系統設計與開發
管線需求及設計考量(一)功能面
● 延遲 需要即時處理還是批次處理?
● 資料正確性 最少一次 僅此一次?資料順序?
● 高可用性 容錯、
● 障礙排除所需時間?能不能支援版本回滾?
● 紀錄任務進行時間
● 防止錯誤資料進入生產環境
● 資源監控 能否簡單監控甚至預測所需資源?
● 易於開發 部署 符合你們主要的開發語言?
● 方便維運 自動化的維運工具
管線需求及設計考量(二)冪等性
● 資料管線必須能夠被重複執行並產生相同結果:
○ 能不能重新執行過去任一日期 時間的排程?
○ 能不能重新執行過去一個月 一年的排程?
● 資料面的問題
○ 有沒有留過去的資料?
○ 是 還是
○ 最小能重新執行的單位?
管線需求及設計考量(三)二階段轉換
● 當你要確認資料轉換結果時:
○ 將資料轉換結果放入一暫存區
○ 驗證轉換後的資料是否正確
○ 再將資料轉入正式環境
管線需求及設計考量(四)查核點
● 有時候資料管線會非常長:
○ 能不能紀錄單獨一個階段的狀態
○ 如果在某個階段失敗,可以從該階段繼續執行
管線需求及設計考量(五)安全性
● 資料存放的安全性
● 運算時的安全性
● 階段之間的權限
● 運行環境的權限
●
常用的設計模式
● 重複使用程式
○ 對於多個類似的管線採用通用流程,以便於開發或監控
● 微服務模式
○ 讓一個服務做好單一任務
常見管線架構
●
●
●
●
● 固定資源 自動縮放
開發生命週期
設計原型
● 確認流程
● 選定開發語言
● 做好單元測試
參數設置
● 通常會用參數的地方
○
○
○
○
使用小資料做測試
● 當資料量的大的時候,無法直接使用線上資料做測試
● 可以使用 的資料確認整條管線運作通暢
部署到 環境
● 如果有個非常接近生產環境的 環境非常有幫助
● 在這裡可以驗證
○ 管線效能能不能負擔完整的資料量
○ 新的版本是不是能正確取代舊版本
○ 有沒有其他整合問題
部署方式
● 金絲雀部署
○ 處理正式環境資料,但是不要將資料寫入正式環境
● 部分部署
○ 逐漸增加處理的資料量
● 一些常遇到的問題
○ 輸入資料不正確或延遲
○ 資料處理過程中有
○ 未預想到的輸入資料處理
○ 儲存時發生錯誤
○
正式上線後
● 確保上線後若發生錯誤可以迅速回滾
● 確保失敗的任務可以重新執行
●
定義和測量服務目標
● 資料新鮮度
● 資料正確性
● 任務重要性 優先性
● 任務所需資源
的設計與維運
● 當任務之間的依賴關係複雜且長時,以下情況就會變得棘手:
○ 單一任務的變更
○ 上游任務的損壞或延遲
建立並維護相關文件
● 系統圖
● 任務流程
● 還原腳本
● 訂立錯誤處理計畫
其他
● 減少熱點 像是 運算單元 資料倉儲
● 規劃資源
● 訂立資安政策 誰可以碰到 資料
● 規劃升級方式
衡量管線成熟度
失敗容忍度
不支援錯誤管理 自動重試失敗的階段
不支援單一工作節點發生問題 提供
可伸縮性
不可自動伸縮 可自動可自動伸縮工作節點
監控及除錯
沒有 不容易查找 可以輕易找到任何時間點的
透明及容易實作
管線不透明 清楚看到各個 運行狀況
單元與整合測試
易於管理配置( )
管線錯誤的預防以及處理
● 資料延遲
○ 當資料延遲時,相關依賴的 會不會跟著等?等多久之後會
● 資料損毀
● 管線的相互依賴
● 配置錯誤
○ 例如 或是參數設置錯誤
● 意外的資源消耗
● 區域性故障
實務範例
背景
某公司需要即時收集使用者使用 的資料
收集好的資料需要放到 以及放到資料倉儲
需要根據分析師需求將原始資料轉換成統計用報表
搜集事件
● 處理資料之前要確保原始資料都能被保存
事件分類處理
資料存放類型
● 越靠 ,資料格式越鬆散,聚合程度較低
● 越靠應用端,資料格式越嚴謹,聚合程度高
● 確認資料生命週期
● 確認工作依賴關係
● 原始資料一定要保留!
● 原始資料一定要保留!
● 原始資料一定要保留!
補充
有 的情況
開著各別的 輪詢
將所有要查詢的東西丟到一個 裡面,就可以使用單一 去輪詢,查不到的話
就再丟回
沒有 的情況
送出執行後,即斷掉連線
使用上述方式查詢結果,看結果是否被計算出來
如果超過一定時間或次數還 查不到結果即發送告警
補充
● 以最後產出 為單位來切割 :
○ 優點:方便管理和確認當前有多少 產出的資料
○ 缺點: 之間的 難以管理( 管理 )
● 以資料源或是 來切割 ,一個 裡面包含所有相關連的資料
以及產出:
○ 優點:方便觀察每個 產出 之間的關聯,如果需要回溯也會比較方便。

Weitere ähnliche Inhalte

Ähnlich wie Data pipeline 101

阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台guiyingshenxia
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台mysqlops
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器Feng Yu
 
产品演示:Denodo平台如何加速您获取洞察的时间
产品演示:Denodo平台如何加速您获取洞察的时间产品演示:Denodo平台如何加速您获取洞察的时间
产品演示:Denodo平台如何加速您获取洞察的时间Denodo
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍Leo Zhou
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍Leo Zhou
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座NTC.im(Notch Training Center)
 
逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产Denodo
 
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队煜林 车
 
Power flow簡介
Power flow簡介Power flow簡介
Power flow簡介Sky Wu
 
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法Jazz Yao-Tsung Wang
 
Performance Data Analyze
Performance Data AnalyzePerformance Data Analyze
Performance Data Analyzeanysql
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術Wei-Yu Chen
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎frogd
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计YANGL *
 
京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索confluent
 
System optimize experience
System optimize experienceSystem optimize experience
System optimize experience召仁 刘
 
Git入门与实践
Git入门与实践Git入门与实践
Git入门与实践LC2009
 
软件工程
软件工程软件工程
软件工程bill0077
 

Ähnlich wie Data pipeline 101 (20)

阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台
 
了解应用服务器
了解应用服务器了解应用服务器
了解应用服务器
 
产品演示:Denodo平台如何加速您获取洞察的时间
产品演示:Denodo平台如何加速您获取洞察的时间产品演示:Denodo平台如何加速您获取洞察的时间
产品演示:Denodo平台如何加速您获取洞察的时间
 
智慧化的IT架構管理
智慧化的IT架構管理智慧化的IT架構管理
智慧化的IT架構管理
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍
 
美团数据库运维平台介绍
美团数据库运维平台介绍美团数据库运维平台介绍
美团数据库运维平台介绍
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
 
逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产逻辑数据编织如何完善IT架构,盘活数据资产
逻辑数据编织如何完善IT架构,盘活数据资产
 
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
第三届阿里中间件性能挑战赛季军答辩ppt - rapids团队
 
Power flow簡介
Power flow簡介Power flow簡介
Power flow簡介
 
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
 
Performance Data Analyze
Performance Data AnalyzePerformance Data Analyze
Performance Data Analyze
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
 
My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎My sql 5.6新特性深入剖析——innodb引擎
My sql 5.6新特性深入剖析——innodb引擎
 
王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计王龙:百度数据库架构演变与设计
王龙:百度数据库架构演变与设计
 
京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索京东实时消息队列JDQ技术实践与探索
京东实时消息队列JDQ技术实践与探索
 
System optimize experience
System optimize experienceSystem optimize experience
System optimize experience
 
Git入门与实践
Git入门与实践Git入门与实践
Git入门与实践
 
软件工程
软件工程软件工程
软件工程
 

Mehr von Bryan Yang

敏捷開發心法
敏捷開發心法敏捷開發心法
敏捷開發心法Bryan Yang
 
Data pipeline essential
Data pipeline essentialData pipeline essential
Data pipeline essentialBryan Yang
 
資料分析的快樂就是如此樸實無華且枯燥
資料分析的快樂就是如此樸實無華且枯燥資料分析的快樂就是如此樸實無華且枯燥
資料分析的快樂就是如此樸實無華且枯燥Bryan Yang
 
Building a data driven business
Building a data driven businessBuilding a data driven business
Building a data driven businessBryan Yang
 
產業數據力-以傳統零售業為例
產業數據力-以傳統零售業為例產業數據力-以傳統零售業為例
產業數據力-以傳統零售業為例Bryan Yang
 
Serverless ETL
Serverless ETLServerless ETL
Serverless ETLBryan Yang
 
敏捷開發心法
敏捷開發心法敏捷開發心法
敏捷開發心法Bryan Yang
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to dockerBryan Yang
 
Spark Sql for Training
Spark Sql for TrainingSpark Sql for Training
Spark Sql for TrainingBryan Yang
 
Spark MLlib - Training Material
Spark MLlib - Training Material Spark MLlib - Training Material
Spark MLlib - Training Material Bryan Yang
 
Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015Building your bi system-HadoopCon Taiwan 2015
Building your bi system-HadoopCon Taiwan 2015Bryan Yang
 
Build your ETL job using Jenkins - step by step
Build your ETL job using Jenkins - step by stepBuild your ETL job using Jenkins - step by step
Build your ETL job using Jenkins - step by stepBryan Yang
 
Data Scientist's Daily Life
Data Scientist's Daily LifeData Scientist's Daily Life
Data Scientist's Daily LifeBryan Yang
 
Introduce to Spark sql 1.3.0
Introduce to Spark sql 1.3.0 Introduce to Spark sql 1.3.0
Introduce to Spark sql 1.3.0 Bryan Yang
 

Mehr von Bryan Yang (15)

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

Data pipeline 101