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

數(shù)據(jù)倉(cāng)庫(kù)詳細(xì)介紹之調(diào)度

大數(shù)據(jù) 數(shù)據(jù)分析 數(shù)據(jù)倉(cāng)庫(kù)
我們通過(guò)配置調(diào)度去周期性定時(shí)觸發(fā)執(zhí)行各種任務(wù)或流程(同步、集成、計(jì)算、校驗(yàn)、測(cè)試等)并監(jiān)控他們的運(yùn)行情況,及時(shí)、保質(zhì)、自動(dòng)化的滿足各種數(shù)據(jù)使用需求。

[[431516]]

本文轉(zhuǎn)載自微信公眾號(hào)「數(shù)倉(cāng)與大數(shù)據(jù)」,作者otw30。轉(zhuǎn)載本文請(qǐng)聯(lián)系數(shù)倉(cāng)與大數(shù)據(jù)公眾號(hào)。

0x00 前言

在之前的文章,我們規(guī)劃了數(shù)倉(cāng)架構(gòu),制定了數(shù)倉(cāng)規(guī)范,然后在架構(gòu)和規(guī)范的指導(dǎo)下設(shè)計(jì)了存儲(chǔ)模型、構(gòu)建了 ETL 系統(tǒng)。

數(shù)倉(cāng)模型解決了數(shù)據(jù)存儲(chǔ)問(wèn)題,ETL 解決了數(shù)據(jù)同步集成計(jì)算問(wèn)題,而調(diào)度解決的是自動(dòng)化問(wèn)題。

我們通過(guò)配置調(diào)度去周期性定時(shí)觸發(fā)執(zhí)行各種任務(wù)或流程(同步、集成、計(jì)算、校驗(yàn)、測(cè)試等)并監(jiān)控他們的運(yùn)行情況,及時(shí)、保質(zhì)、自動(dòng)化的滿足各種數(shù)據(jù)使用需求。

最后調(diào)度還有一個(gè)附加的用途,對(duì)于新接手的維護(hù)項(xiàng)目,我們想要快速了解其數(shù)據(jù)流轉(zhuǎn),線上運(yùn)行的調(diào)度任務(wù)就是最好的切入點(diǎn)了。

0x01 我接觸過(guò)的調(diào)度場(chǎng)景

場(chǎng)景一、數(shù)據(jù)開(kāi)發(fā)

這是一個(gè)非常熱門(mén)的招聘崗位。

在之前主要是指數(shù)據(jù)庫(kù)開(kāi)發(fā),大概的工作內(nèi)容是基于關(guān)系型數(shù)據(jù)庫(kù)(Oracle、DB2、SQL Server 等)通過(guò)寫(xiě) SQL/存儲(chǔ)過(guò)程等來(lái)實(shí)現(xiàn)業(yè)務(wù)需求。

大數(shù)據(jù)時(shí)代的數(shù)據(jù)開(kāi)發(fā),即大數(shù)據(jù)開(kāi)發(fā),主要是使用大數(shù)據(jù)組件實(shí)現(xiàn)業(yè)務(wù)需求,可以是離線計(jì)算 Hive/Spark 等,也可以是 Spark Streaming/Flink/Kafka 等。

在數(shù)據(jù)倉(cāng)庫(kù)場(chǎng)景,有叫數(shù)倉(cāng)開(kāi)發(fā)/ETL 開(kāi)發(fā),當(dāng)然也有很多直接叫數(shù)據(jù)開(kāi)發(fā)的。大數(shù)據(jù)時(shí)代很少有叫 ETL 開(kāi)發(fā)了,直接就是數(shù)據(jù)倉(cāng)庫(kù)工程師/大數(shù)據(jù)開(kāi)發(fā)工程師。

好了,不管叫法怎么變,我們都可以稱自己為數(shù)據(jù)工程師,我們的工作職責(zé)就是使用各種技術(shù)去實(shí)現(xiàn)業(yè)務(wù)需求,業(yè)務(wù)需求多了又都需要周期性的跑數(shù)據(jù),這時(shí)候就需要配置調(diào)度了。

場(chǎng)景二、對(duì)賬系統(tǒng)

做為一個(gè)企業(yè),跟客戶/供應(yīng)商之間肯定有不少業(yè)務(wù)往來(lái),而且很多都是通過(guò)各自的信息化系統(tǒng)實(shí)現(xiàn)的。比如通過(guò)支付寶購(gòu)買(mǎi)電影票,每月固定日期支付寶跟影院都要進(jìn)行對(duì)賬。我們可以創(chuàng)建各種各樣的對(duì)賬任務(wù),然后配置調(diào)度去周期性的拉取雙方的購(gòu)票數(shù)據(jù)進(jìn)行比對(duì)。

場(chǎng)景三、DMP 人群包自動(dòng)化生成

這個(gè)是我之前做過(guò)的一個(gè)系統(tǒng),業(yè)務(wù)人員通過(guò)頁(yè)面框選人群,系統(tǒng)后臺(tái)自動(dòng)化離線計(jì)算,人群包生成后返回通知。為防止同一時(shí)間點(diǎn)啟動(dòng)過(guò)多的計(jì)算任務(wù),所有任務(wù)統(tǒng)一提交到調(diào)度中心,調(diào)度中心會(huì)根據(jù)計(jì)算資源負(fù)載來(lái)決定是執(zhí)行任務(wù)還是等待。對(duì)于周期性的人群包生成需求,我們還可以配置定時(shí)任務(wù)。

場(chǎng)景四、Yarn 任務(wù)調(diào)度

在大數(shù)據(jù)集群,Yarn 是一個(gè)通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度。當(dāng)計(jì)算任務(wù)到來(lái)時(shí)候,如果空閑資源足夠則立即執(zhí)行,否則就阻塞等待。

0x02 常見(jiàn)的調(diào)度實(shí)現(xiàn)方案

方案一、借助操作系統(tǒng)或數(shù)據(jù)庫(kù)

這種方式的優(yōu)勢(shì)在于不需要專門(mén)安裝配置、非常穩(wěn)定、使用方便。在一些規(guī)模較小的系統(tǒng)非常建議使用。

這是 linux 系統(tǒng)自帶的調(diào)度,最小調(diào)度頻率是分鐘級(jí)別,直接觸發(fā)執(zhí)行指定的 Shell,在腳本內(nèi)實(shí)現(xiàn)任務(wù)依賴、記錄日志等操作。

這是 windows 系統(tǒng)自帶的調(diào)度,最小調(diào)度頻率也是分鐘級(jí)別,直接觸發(fā)執(zhí)行指定的 bat 腳本,在腳本內(nèi)實(shí)現(xiàn)任務(wù)依賴、記錄日志等操作,同時(shí)該操作 windows 會(huì)提供一套可視化頁(yè)面來(lái)配置查看運(yùn)行調(diào)度任務(wù)以及調(diào)用日志。

上邊截圖是 Oracle 數(shù)據(jù)庫(kù)自帶的調(diào)度。Oracle 數(shù)據(jù)庫(kù)調(diào)度分兩個(gè)版本,在 Oracle 10g 之前功能還很簡(jiǎn)單,只能調(diào)用自己的存儲(chǔ)過(guò)程。10g 以后還可以調(diào)度 shell/bat 腳本,并且配置更方便了。

配置好的調(diào)度,其調(diào)用日志以及調(diào)度計(jì)劃,會(huì)在一張 Oracle 元數(shù)據(jù)表中記錄起來(lái)。事實(shí)上,Oracle 服務(wù)自身也有一個(gè)自帶的調(diào)度程序用來(lái)維護(hù)數(shù)據(jù)庫(kù)自身。

方案二、自主開(kāi)發(fā)

調(diào)度這個(gè)事情使用場(chǎng)景特別廣泛,但是每個(gè)場(chǎng)景或者每家公司使用的功能有多又少,比如有的只需要能穩(wěn)定的定時(shí)調(diào)度即可,有的還需要實(shí)現(xiàn)跨服務(wù)器調(diào)度、監(jiān)控告警、流程依賴控制、可視化配置等等。

可能是感覺(jué)市面上可選的工具都不足以滿足個(gè)性化的需求,不少公司會(huì)選擇自主研發(fā),利用多線程和定時(shí)器,或者基于一些底層開(kāi)源工具進(jìn)行深度封裝。我們之前做對(duì)賬系統(tǒng)就是 java 封裝的 quartz。

這里有篇介紹底層調(diào)度工具的文章。需要自主研發(fā)的朋友,可以看看 "JavaBoy" 怎么說(shuō):

分布式定時(shí)任務(wù)調(diào)度系統(tǒng)技術(shù)選型

方案三、選用調(diào)度工具

借助操作系統(tǒng)或數(shù)據(jù)庫(kù)這種方式穩(wěn)定性最高,但只適合單一計(jì)算場(chǎng)景并且調(diào)度任務(wù)不是很多的場(chǎng)景。

  • 如果所有計(jì)算都在同一數(shù)據(jù)庫(kù)內(nèi)就可以使用數(shù)據(jù)庫(kù)本身的調(diào)度。
  • 如果所有計(jì)算調(diào)用都能夠集中到同一臺(tái)服務(wù)器內(nèi)完成,我們就可以用操作系統(tǒng)自帶的調(diào)度。

自主研發(fā)的方式適用于個(gè)性化程度很高、調(diào)度性能并發(fā)要求不太高、或者功能相對(duì)少且自身有研發(fā)能力的場(chǎng)景。

雖然調(diào)度本身不是一個(gè)特別難實(shí)現(xiàn)的事情,很多公司可能都有過(guò)這種經(jīng)歷。但是想把它做到極致,具備穩(wěn)定、易用、功能完備、高性能、高并發(fā)、高適應(yīng)性等各方面都不錯(cuò)的程度,還是很難的。能用和好用/通用之間要走的路還有很多。海豚調(diào)度這兩年能夠迅速得到市場(chǎng)認(rèn)可,但可能大家不知道的是,易觀將其開(kāi)源之前內(nèi)部研發(fā)迭代了至少五年了,照樣其開(kāi)源后仍有一部分人覺(jué)得不好用呢。

下邊這篇是博哥總結(jié)的常見(jiàn)大數(shù)據(jù)調(diào)度系統(tǒng)的介紹,大家可以看一下:

大數(shù)據(jù)調(diào)度系統(tǒng)選得好,下班回家早;調(diào)度用得對(duì),半夜安心睡

0x03 調(diào)度的功能需求介紹

基礎(chǔ)功能

定時(shí)調(diào)用:根據(jù)每個(gè)任務(wù)配置的執(zhí)行時(shí)間點(diǎn)啟動(dòng)任務(wù),可以是一次性的也可以是周期性的。

參數(shù)傳遞:復(fù)雜的 ETL 任務(wù),可能會(huì)有一級(jí)任務(wù)、二級(jí)任務(wù)、三級(jí)任務(wù)等等,必須設(shè)置一些參數(shù)來(lái)支持過(guò)期重跑、補(bǔ)數(shù)等場(chǎng)景。而且最好設(shè)置成外部的參數(shù)可以覆蓋內(nèi)部的(這跟程序開(kāi)發(fā)的邏輯正好相反),防止開(kāi)發(fā)/測(cè)試人員設(shè)置的子任務(wù)參數(shù)上線時(shí)候忘記刪除造成不必要的問(wèn)題。

跨服務(wù)器調(diào)用:很多 ETL 工具也都具備定時(shí)調(diào)度和參數(shù)傳遞的功能,但跨服務(wù)器調(diào)用就是調(diào)度工具所特有的了。擁有跨服務(wù)器調(diào)用能力后,可以真正的將整個(gè)數(shù)據(jù)流轉(zhuǎn)串聯(lián)起來(lái),比如我們的數(shù)據(jù)集成同步任務(wù)、數(shù)倉(cāng)內(nèi)的主體 ETL 任務(wù)、對(duì)外推送任務(wù),三者經(jīng)常是分開(kāi)部署的。

任務(wù)編排:正常的任務(wù)編排應(yīng)該在 ETL 系統(tǒng)里完成,但涉及到跨集群任務(wù)依賴的場(chǎng)景,就必須使用調(diào)度工具了。

擴(kuò)展功能

滿足了以上四點(diǎn)基礎(chǔ)功能后,基本就能滿足日常的調(diào)度需求了。

如果還想更進(jìn)一步,可以考慮實(shí)現(xiàn)如下功能:

可視化配置:所有調(diào)度功能配置都通過(guò)系統(tǒng)頁(yè)面添加和展示。

權(quán)限管理:每個(gè)人都分配獨(dú)立賬號(hào),任務(wù)創(chuàng)建時(shí)候可以分配只讀或可執(zhí)行權(quán)限給指定的角色。

自動(dòng)錯(cuò)誤重試:這里的重試,是針對(duì)某些網(wǎng)絡(luò)、服務(wù)宕機(jī)或者計(jì)算資源不足等問(wèn)題造成的錯(cuò)誤,可以通過(guò)自動(dòng)重試處理。

任務(wù)執(zhí)行情況日志記錄:每一步任務(wù)都會(huì)記錄運(yùn)行日志,比如開(kāi)始時(shí)間、結(jié)束時(shí)間以及ETL程序打印的日志,方便事后檢查。

告警通知:任務(wù)失敗后,根據(jù)告警規(guī)則觸發(fā)告警。任務(wù)完成后不管成功還是失敗都可以將執(zhí)行情況告訴指定的人。通知的作用有 2 點(diǎn):第一,確保任務(wù)真的執(zhí)行了;第二,可以在通知消息體內(nèi)發(fā)送必要的業(yè)務(wù)數(shù)據(jù)如運(yùn)營(yíng)日?qǐng)?bào)。

任務(wù)暫停:該功能我看海豚調(diào)度也有實(shí)現(xiàn),可能是在任務(wù)開(kāi)發(fā)/測(cè)試時(shí)候能用到吧。

并行補(bǔ)數(shù):這在計(jì)算資源充足的情況下還是很好用的,但要切記:對(duì)于前后日期間有依賴的任務(wù)不能使用此功能,比如影片的累計(jì)票房計(jì)算。

個(gè)性化功能

比如我們之前的調(diào)度工具,即做了調(diào)度的事情,也做了 ETL 的事情。因?yàn)槲覀冞€實(shí)現(xiàn)了這幾個(gè)功能:數(shù)據(jù)源連接、SQL 編輯器、字段映射等等。

0x04 調(diào)度的并發(fā)穩(wěn)定性要求

對(duì)于少量的任務(wù),只需要滿足功能性需求,然后簡(jiǎn)單易用即可,但當(dāng)任務(wù)數(shù)量多到一定程度,就不得不考慮高并發(fā)和穩(wěn)定性這些需求了。

調(diào)度系統(tǒng)不同于計(jì)算引擎,不需要考慮算力問(wèn)題,只需要按時(shí)啟動(dòng)任務(wù),并監(jiān)控任務(wù)的執(zhí)行情況即可,但當(dāng)瞬時(shí)在線任務(wù)過(guò)多時(shí)候,在線任務(wù)的維護(hù)以及后續(xù)新啟動(dòng)任務(wù)的處理,是設(shè)計(jì)的重點(diǎn),我們需要優(yōu)化程序盡可能的提高瞬時(shí)在線任務(wù)的個(gè)數(shù),同時(shí)當(dāng)后續(xù)有新啟動(dòng)任務(wù)的時(shí)候考慮放入等待隊(duì)列中,以此保證調(diào)度的穩(wěn)定性。

穩(wěn)定性的另一處保障機(jī)制,就是 master 和 worker 的 HA 設(shè)計(jì)了,當(dāng)調(diào)度節(jié)點(diǎn)真的掛掉的時(shí)候可以啟動(dòng)新的節(jié)點(diǎn)來(lái)自動(dòng)恢復(fù)任務(wù)。

最后,如果想進(jìn)一步了解調(diào)度系統(tǒng)的設(shè)計(jì),包括架構(gòu)和功能實(shí)現(xiàn)的話,可以關(guān)注下 DolpinScheduler ,網(wǎng)上資料很多,熟悉 Java 的朋友也可以下載源碼看看,相比于 Flink/Spark 等大數(shù)據(jù)組件,海豚調(diào)度的代碼還是相對(duì)簡(jiǎn)單些的。

 

對(duì) DolpinScheduler 感興趣的,可以點(diǎn)擊閱讀原文直達(dá)中文社區(qū),文檔寫(xiě)的還是很全面的。

 

責(zé)任編輯:武曉燕 來(lái)源: 數(shù)倉(cāng)與大數(shù)據(jù)
相關(guān)推薦

2021-11-30 08:11:19

數(shù)據(jù)倉(cāng)庫(kù)經(jīng)驗(yàn)

2020-01-03 09:40:13

大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)分層

2022-02-18 09:02:04

數(shù)據(jù)倉(cāng)庫(kù)治理

2018-03-20 09:36:57

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)存儲(chǔ)知識(shí)

2010-07-20 09:26:17

SQL Server

2019-06-06 14:08:37

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)分析數(shù)據(jù)報(bào)表

2021-09-01 10:03:44

數(shù)據(jù)倉(cāng)庫(kù)云數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)庫(kù)

2013-03-20 16:23:53

數(shù)據(jù)清洗

2018-07-24 09:28:18

存儲(chǔ)數(shù)據(jù)倉(cāng)庫(kù)

2019-05-24 11:51:18

BI數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)分析

2022-11-29 17:16:57

2022-07-28 13:47:30

云計(jì)算數(shù)據(jù)倉(cāng)庫(kù)

2009-01-18 15:14:00

數(shù)據(jù)倉(cāng)庫(kù)開(kāi)發(fā)OLTP

2013-10-29 13:28:13

數(shù)據(jù)

2012-07-23 14:38:16

Exalytics

2023-07-02 14:11:28

數(shù)據(jù)倉(cāng)庫(kù)大數(shù)據(jù)

2017-08-17 15:52:38

企業(yè)數(shù)據(jù)倉(cāng)庫(kù)

2017-06-27 10:08:29

數(shù)據(jù)倉(cāng)庫(kù)模型

2024-09-05 16:08:52

2009-01-18 15:48:31

數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)存儲(chǔ)OLTP
點(diǎn)贊
收藏

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