自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實(shí)用調(diào)度工具Airflow

企業(yè)動(dòng)態(tài)
在傳統(tǒng)企業(yè)內(nèi)部,數(shù)據(jù)集成是基礎(chǔ),更是每個(gè)企業(yè)里面都至少有一個(gè)ETL工具或者調(diào)度+業(yè)務(wù)代碼實(shí)現(xiàn)ETL。說(shuō)到ETL,開源比較有名的是kettle。

引言

前面寫過(guò)一篇文章《端午搬磚:聊聊調(diào)度云服務(wù)》,主要講云服務(wù)的。如果企業(yè)也業(yè)務(wù)上云,可以優(yōu)先選用這些服務(wù),減少工作量。

而在傳統(tǒng)企業(yè)內(nèi)部,數(shù)據(jù)集成是基礎(chǔ),更是每個(gè)企業(yè)里面都至少有一個(gè)ETL工具或者調(diào)度+業(yè)務(wù)代碼實(shí)現(xiàn)ETL。

Kettle

說(shuō)到ETL,開源比較有名的是kettle(Kettle英文是水壺的名字,你要是去美國(guó)或者歐洲出差,很多酒店是不提供熱水的,你可以電話前臺(tái)要一個(gè)kettle)?,F(xiàn)在有一家叫petaho的公司專門做kettle的商業(yè)版本。

Kettle

kettle是純java工具,Kettle 是一款國(guó)外開源的 ETL 工具,純 Java 編寫,Kettle 中有兩種腳本文件,transformation 和 job,transformation 完成針對(duì)數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job 則完成整個(gè)工作流的控制。這個(gè)工具發(fā)展很久了,不過(guò)感覺很重型,又是個(gè)C/S框架的,不是很推薦。Github上看,支持的人還是比較少。

Kettle

一個(gè)通用的ETL工具其實(shí)是比較難的,主要是業(yè)務(wù)邏輯通常會(huì)靈活性和復(fù)雜度比較高,通過(guò)界面能全部配置出來(lái)太理想化了。所以反而是一些簡(jiǎn)單的調(diào)度工具會(huì)適用范圍比較廣,業(yè)務(wù)邏輯由企業(yè)開發(fā)人員代碼實(shí)現(xiàn),只解決基本調(diào)度的問題。

Airflow

這里介紹一個(gè)Airflow,這個(gè)是由Airbnb公司貢獻(xiàn)的,(Airbnb,是一個(gè)讓大眾出租住宿民宿的網(wǎng)站,提供短期出租房屋或房間的服務(wù)。最近業(yè)務(wù)也開到中國(guó)來(lái)了) 。這家公司前面還有一個(gè)基于mesos的chronos調(diào)度服務(wù),見文章《Chronos:數(shù)據(jù)中心的任務(wù)調(diào)度器(job scheduler)》,不過(guò)現(xiàn)在已經(jīng)停止更新了。Airflow是由airbnb的Maxime Beauchemin創(chuàng)建,目前是apache孵化項(xiàng)目,很有特點(diǎn):

1. 主要是由Python實(shí)現(xiàn)的。Job定義也是靠python,不提供xml和界面定義的方式。下面是一個(gè)pipeline的定義例子,python本身是一種比較簡(jiǎn)潔的語(yǔ)言,容易上手,所以經(jīng)過(guò)一定的學(xué)習(xí)還是很容易掌握的。

  1. """ 
  2. Code that goes along with the Airflow tutorial located at: 
  3. https://github.com/airbnb/airflow/blob/master/airflow/example_dags/tutorial.py 
  4. """ 
  5. from airflow import DAG 
  6. from airflow.operators.bash_operator import BashOperator 
  7. from datetime import datetime, timedelta 
  8. default_args = { 
  9. 'owner': 'airflow', 
  10. 'depends_on_past': False, 
  11. 'start_date': datetime(2015, 6, 1), 
  12. 'email': ['airflow@airflow.com'], 
  13. 'email_on_failure': False, 
  14. 'email_on_retry': False, 
  15. 'retries': 1, 
  16. 'retry_delay': timedelta(minutes=5), 
  17. # 'queue': 'bash_queue', 
  18. # 'pool': 'backfill', 
  19. # 'priority_weight': 10, 
  20. # 'end_date': datetime(2016, 1, 1), 
  21. dag = DAG('tutorial', default_argsdefault_args=default_args) 
  22. # t1, t2 and t3 are examples of tasks created by instantiating operators 
  23. t1 = BashOperator
  24. task_id='print_date'
  25. bash_command='date'
  26. dagdag=dag) 
  27. t2 = BashOperator
  28. task_id='sleep'
  29. bash_command='sleep 5'
  30. retries=3
  31. dagdag=dag) 
  32. templated_command = ""
  33. {% for i in range(5) %} 
  34. echo "{{ ds }}" 
  35. echo "{{ macros.ds_add(ds, 7)}}" 
  36. echo "{{ params.my_param }}" 
  37. {% endfor %} 
  38. """ 
  39. t3 = BashOperator
  40. task_id='templated'
  41. bash_command=templated_command
  42. params={'my_param': 'Parameter I passed in'}, 
  43. dagdag=dag) 
  44. t2.set_upstream(t1) 
  45. t3.set_upstream(t1) 

2. 使用Jinja來(lái)做模板引擎,所以支持模板,Jinja也是Python實(shí)現(xiàn)的,對(duì)Python真是真愛呀。

3. 雖然不支持常見的UI定義Pipeline,但是還是有豐富的UI界面來(lái)幫助pipeline的維護(hù)和管理。

(1)pipeline狀態(tài)

pipeline狀態(tài)

(2)任務(wù)進(jìn)度

(3)依賴關(guān)系管理

(4)甘特圖可讓您分析任務(wù)持續(xù)時(shí)間和重疊。幫助快速找出瓶頸以及大部分時(shí)間花在特定DAG運(yùn)行中的位置。

(5)過(guò)去N批次運(yùn)行不同任務(wù)的持續(xù)時(shí)間。快速查找異常值,并快速了解在多個(gè)運(yùn)行中在DAG中花費(fèi)的時(shí)間。

(6)更有意思的是,還支持交互式查詢,一些基本,簡(jiǎn)單的數(shù)據(jù)分析在工具中就可以完成,所見即所得,不用編寫pipeline,等任務(wù)完成之后才知道結(jié)果。

http://airflow.incubator.apache.org/profiling.html

4. 擴(kuò)展性方面支持和Celery和mesos集成

5. ***再看看社區(qū)狀況,人不少,281個(gè)

不過(guò)14年的項(xiàng)目,現(xiàn)在還沒有畢業(yè),時(shí)間有點(diǎn)長(zhǎng)了,可能是Airbnb也并不熱衷這個(gè)事情。一個(gè)好的開源軟件,背后一定要看到一個(gè)商業(yè)公司來(lái)推動(dòng)他的發(fā)展,否則穩(wěn)定性和未來(lái)的發(fā)展可能會(huì)一定的問題。

總結(jié)建議

 

***,我個(gè)人的建議是,如果你想對(duì)調(diào)度工具有很強(qiáng)的掌控力,且有能力維護(hù),就考慮選擇airflow吧,否則還是算了吧。

【本文為51CTO專欄作者“大數(shù)據(jù)和云計(jì)算”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)微信公眾號(hào)獲取聯(lián)系和授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2021-08-11 10:50:35

AirFlow MaxCompute阿里云

2021-05-14 11:39:58

SchedulePython工具

2021-11-29 08:48:00

K8S KubernetesAirflow

2016-05-25 10:14:04

開源數(shù)據(jù)管道 ETL

2022-05-16 08:27:20

KubernetePodLinux

2009-07-10 17:54:29

SwingUtilit

2022-09-16 11:23:59

Python框架Celery

2022-02-25 09:03:49

工具Swift項(xiàng)目

2022-01-05 19:34:18

AirflowCeleryMYSQL

2022-01-03 23:59:15

任務(wù)調(diào)度框架

2011-01-14 13:40:24

UbuntuLinux Tips

2020-11-11 11:05:41

Linux工具命令

2011-01-27 16:53:13

系統(tǒng)清理工具BleachBitLinux

2020-04-26 08:22:53

前端網(wǎng)站工具代碼

2013-10-22 09:44:53

數(shù)據(jù)中心商業(yè)模式AWS

2022-01-05 00:03:32

場(chǎng)景容器Airflow

2025-03-04 10:49:51

2013-03-20 09:40:46

HTMLCSS工具

2020-08-27 13:45:24

Linux監(jiān)控工具命令

2022-12-06 17:18:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)