詳解BI系統中的任務排程

葡萄城技術團隊發表於2022-03-31

任務排程是一個通用的計算機概念,可以簡單地理解為計算機基於一定時間頻率,自動執行一項程式任務。任務排程是作業系統的重要組成部分,Windows系統中的定時任務和Linux的Crontab都是常用的系統級排程器,被廣泛應用於各種定時執行程式的場景。在傳統商業智慧BI領域,系統的排程器也經常被作為ETL作業的排程器。作業任務會通過T+1或者更高的時間頻率進行排程執行。

隨著商業智慧BI技術的發展,BI工具的排程功能也有了長足的發展。特別是伴隨著大資料和實時資料的市場需求,處理能力更強、多執行緒作業,準實時排程等場景的應用越來越普遍。

具體到商業智慧BI工具的排程功能,目前,主要可以概括為兩類:

  1. 資料抽取的任務排程
  2. 通知、訊息的任務排程

一、資料抽取的任務排程

商業智慧工具的一大應用場景就是打破資料孤島,將分佈在不同系統中的異構資料進行整合,並抽取到資料倉儲,形成分析模型,為視覺化分析提供資料支撐。對於大資料量的歷史資料分析,抽取基本採用的就是定時排程機制。從資料來源到資料倉儲,可以配置增量更新或者全量更新。

全量更新一般採用的機制是先Truncate Table,再進行Insert操作。增量更新則是基於主鍵列或者時間戳,只更新滿足條件的資料。無論哪種方式,都是通過設定不同時間頻率的定時排程任務來執行的。

任務的頻率也是和前述兩種更新方式密切相關的。對於實時性要求不高的資料,可以通過設定T+1來進行全量更新。對於頻率相對較高的資料,可以設定以小時、分鐘甚至秒級的頻率來進行排程增量更新。

具體的排程頻率要根據資料量、伺服器配置,同時考慮對資料來源系統的壓力來綜合考慮。

以Wyn為例,在資料接入方式上同時支援直連模型和抽取模型。對於抽取模型,可以設定排程執行計劃。自動過載計劃會在設定的時間自動重新整理模型中的資料。

使用者可以根據不同的業務需求制定不同的執行計劃,以不同頻率過載表中的快取資料。若計劃執行失敗,會向填寫的郵箱傳送一封郵件通知。若成功,則沒有提示。

建立自動定時的執行計劃,設定後執行計劃會週期性的自動重新整理資料。

商業智慧BI工具在任務計劃設定上,也會考慮到其複用性。提供通過模板建立執行計劃功能。執行計劃可以手動或自動執行。執行計劃的排程執行是資料抽取成功的重要技術保障。

二、通知、訊息的任務排程

在商業智慧的任務排程場景中,不僅要將資料抽取到數倉集中儲存。對於報表、儀表板等分析結果,也需要支援定時推送功能。並不是每個報表資料的檢視者都方面直接登入系統檢視資料。例如,出差路上,或者遺忘時,通過定時推送功能,可以主動地將分析結果呈現給資料的使用者。在企業實踐中,郵件推送是最常用的方式之一。

以Wyn為例,在任務計劃模板中,可以使用郵件推送功能。傳送物件支援郵件和郵件組。在執行報表執行計劃時,不僅僅支援將報表作為郵件附件或連結的形式傳送至目標郵箱,也支援將報表作為郵件正文,這樣會更加方便使用者檢視。

將報表作為郵件正文顯示的關鍵在於,在設定執行計劃時,將匯出格式設定為"HTML"或"Image"。而後,傳送方式選擇郵件通知時,"傳送型別"中才可以選擇"在郵件正文中顯示報表"。

綜上所述,任務排程作為商業智慧工具的普遍需求,已經被廣泛應用,為資料抽取提供了有效的支撐。隨著軟體開發技術的發展和市場需求的變化,資料實時性更高的分析場景將越來越多。但是,大資料量歷史資料分析的場景也會一直存在。因此,可以預見的是,在未來一段時間內,基於任務排程的抽取模型和基於流式的、實時推送模型、直連資料來源的直連模型將並存,並共同為企業的資料分析提供重要的技術支撐。

相關文章