成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數(shù)據(jù)倉庫詳細介紹之調度

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

[[431516]]

本文轉載自微信公眾號「數(shù)倉與大數(shù)據(jù)」,作者otw30。轉載本文請聯(lián)系數(shù)倉與大數(shù)據(jù)公眾號。

0x00 前言

在之前的文章,我們規(guī)劃了數(shù)倉架構,制定了數(shù)倉規(guī)范,然后在架構和規(guī)范的指導下設計了存儲模型、構建了 ETL 系統(tǒng)。

數(shù)倉模型解決了數(shù)據(jù)存儲問題,ETL 解決了數(shù)據(jù)同步集成計算問題,而調度解決的是自動化問題。

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

最后調度還有一個附加的用途,對于新接手的維護項目,我們想要快速了解其數(shù)據(jù)流轉,線上運行的調度任務就是最好的切入點了。

0x01 我接觸過的調度場景

場景一、數(shù)據(jù)開發(fā)

這是一個非常熱門的招聘崗位。

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

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

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

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

場景二、對賬系統(tǒng)

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

場景三、DMP 人群包自動化生成

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

場景四、Yarn 任務調度

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

0x02 常見的調度實現(xiàn)方案

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

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

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

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

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

配置好的調度,其調用日志以及調度計劃,會在一張 Oracle 元數(shù)據(jù)表中記錄起來。事實上,Oracle 服務自身也有一個自帶的調度程序用來維護數(shù)據(jù)庫自身。

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

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

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

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

分布式定時任務調度系統(tǒng)技術選型

方案三、選用調度工具

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

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

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

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

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

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

0x03 調度的功能需求介紹

基礎功能

定時調用:根據(jù)每個任務配置的執(zhí)行時間點啟動任務,可以是一次性的也可以是周期性的。

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

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

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

擴展功能

滿足了以上四點基礎功能后,基本就能滿足日常的調度需求了。

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

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

權限管理:每個人都分配獨立賬號,任務創(chuàng)建時候可以分配只讀或可執(zhí)行權限給指定的角色。

自動錯誤重試:這里的重試,是針對某些網絡、服務宕機或者計算資源不足等問題造成的錯誤,可以通過自動重試處理。

任務執(zhí)行情況日志記錄:每一步任務都會記錄運行日志,比如開始時間、結束時間以及ETL程序打印的日志,方便事后檢查。

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

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

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

個性化功能

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

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

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

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

穩(wěn)定性的另一處保障機制,就是 master 和 worker 的 HA 設計了,當調度節(jié)點真的掛掉的時候可以啟動新的節(jié)點來自動恢復任務。

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

 

對 DolpinScheduler 感興趣的,可以點擊閱讀原文直達中文社區(qū),文檔寫的還是很全面的。

 

責任編輯:武曉燕 來源: 數(shù)倉與大數(shù)據(jù)
相關推薦

2021-11-30 08:11:19

數(shù)據(jù)倉庫經驗

2020-01-03 09:40:13

大數(shù)據(jù)數(shù)據(jù)倉庫分層

2022-02-18 09:02:04

數(shù)據(jù)倉庫治理

2018-03-20 09:36:57

數(shù)據(jù)倉庫數(shù)據(jù)存儲知識

2010-07-20 09:26:17

SQL Server

2019-06-06 14:08:37

數(shù)據(jù)倉庫數(shù)據(jù)分析數(shù)據(jù)報表

2021-09-01 10:03:44

數(shù)據(jù)倉庫云數(shù)據(jù)倉庫數(shù)據(jù)庫

2018-07-24 09:28:18

存儲數(shù)據(jù)倉庫

2013-03-20 16:23:53

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

2022-11-29 17:16:57

2019-05-24 11:51:18

BI數(shù)據(jù)倉庫數(shù)據(jù)分析

2022-07-28 13:47:30

云計算數(shù)據(jù)倉庫

2009-01-18 15:14:00

數(shù)據(jù)倉庫開發(fā)OLTP

2012-07-23 14:38:16

Exalytics

2023-07-02 14:11:28

數(shù)據(jù)倉庫大數(shù)據(jù)

2013-10-29 13:28:13

數(shù)據(jù)

2017-08-17 15:52:38

企業(yè)數(shù)據(jù)倉庫

2017-06-27 10:08:29

數(shù)據(jù)倉庫模型

2024-09-05 16:08:52

2009-01-18 15:48:31

數(shù)據(jù)倉庫數(shù)據(jù)存儲OLTP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久91精品| 久久久久久久久久久丰满 | 亚洲精品视频一区 | 在线免费亚洲视频 | 亚洲情视频| 99精品一区 | 亚洲精品日韩一区二区电影 | 免费a网 | 亚洲伊人a | 日韩一区二区三区在线 | 中文字幕视频网 | 黄色大片免费网站 | 伊人网站 | 99综合 | 国产aⅴ爽av久久久久久久 | 国产亚洲一级 | 亚洲第一av| 国产精品99久久久久久宅男 | 国产精品久久久久久久久久 | 国产精品综合视频 | 一区二区三区亚洲 | 国产区视频在线观看 | 91欧美激情一区二区三区成人 | 欧美日韩精品一区二区三区蜜桃 | 欧美一级淫片免费视频黄 | 欧美一区二区三区在线视频 | 久久av一区 | 欧美成人一级视频 | 乱码av午夜噜噜噜噜动漫 | 成人美女免费网站视频 | 日本不卡一区二区三区 | 久久久久久综合 | 天天爱天天操 | 97免费在线观看视频 | 久久久精品综合 | 亚洲xxxxx | 精品伊人久久 | 国产精品久久777777 | 日韩中文字幕一区二区 | 亚洲人成人一区二区在线观看 | 成人不卡 |