詳解BI系統中的任務調度
任務調度是一個通用的電腦概念,可以簡單地理解為電腦基於一定時間頻率,自動執行一項進程任務。任務調度是作業系統的重要組成部分,Windows系統中的定時任務和Linux的Crontab都是常用的系統級調度器,被廣泛應用於各種定時執行程式的場景。在傳統商業智慧BI領域,系統的調度器也經常被作為ETL作業的調度器。作業任務會通過T+1或者更高的時間頻率進行調度執行。
隨著商業智慧BI技術的發展,BI工具的調度功能也有了長足的發展。特別是伴隨著大數據和實時數據的市場需求,處理能力更強、多執行緒作業,准實時調度等場景的應用越來越普遍。
具體到商業智慧BI工具的調度功能,目前,主要可以概括為兩類:
- 數據抽取的任務調度
- 通知、消息的任務調度
一、數據抽取的任務調度
商業智慧工具的一大應用場景就是打破數據孤島,將分布在不同系統中的異構數據進行整合,並抽取到數據倉庫,形成分析模型,為可視化分析提供數據支撐。對於大數據量的歷史數據分析,抽取基本採用的就是定時調度機制。從數據源到數據倉庫,可以配置增量更新或者全量更新。
全量更新一般採用的機制是先Truncate Table,再進行Insert操作。增量更新則是基於主鍵列或者時間戳,只更新滿足條件的數據。無論哪種方式,都是通過設置不同時間頻率的定時調度任務來執行的。
任務的頻率也是和前述兩種更新方式密切相關的。對於實時性要求不高的數據,可以通過設置T+1來進行全量更新。對於頻率相對較高的數據,可以設置以小時、分鐘甚至秒級的頻率來進行調度增量更新。
具體的調度頻率要根據數據量、伺服器配置,同時考慮對數據源系統的壓力來綜合考慮。
以Wyn為例,在數據接入方式上同時支援直連模型和抽取模型。對於抽取模型,可以設置調度運行計劃。自動重載計劃會在設定的時間自動刷新模型中的數據。
用戶可以根據不同的業務需求制定不同的執行計劃,以不同頻率重載表中的快取數據。若計劃執行失敗,會向填寫的郵箱發送一封郵件通知。若成功,則沒有提示。
創建自動定時的運行計劃,設定後運行計劃會周期性的自動刷新數據。
商業智慧BI工具在任務計劃設置上,也會考慮到其復用性。提供通過模板創建運行計劃功能。運行計劃可以手動或自動執行。運行計劃的調度執行是數據抽取成功的重要技術保障。
二、通知、消息的任務調度
在商業智慧的任務調度場景中,不僅要將數據抽取到數倉集中存儲。對於報表、儀錶板等分析結果,也需要支援定時推送功能。並不是每個報表數據的查看者都方面直接登錄系統查看數據。例如,出差路上,或者遺忘時,通過定時推送功能,可以主動地將分析結果呈現給數據的使用者。在企業實踐中,郵件推送是最常用的方式之一。
以Wyn為例,在任務計劃模板中,可以使用郵件推送功能。發送對象支援郵件和郵件組。在運行報表運行計劃時,不僅僅支援將報表作為郵件附件或鏈接的形式發送至目標郵箱,也支援將報表作為郵件正文,這樣會更加方便用戶查看。
將報表作為郵件正文顯示的關鍵在於,在設置運行計劃時,將導出格式設置為”HTML”或”Image”。而後,發送方式選擇郵件通知時,”發送類型”中才可以選擇”在郵件正文中顯示報表”。
綜上所述,任務調度作為商業智慧工具的普遍需求,已經被廣泛應用,為數據抽取提供了有效的支撐。隨著軟體開發技術的發展和市場需求的變化,數據實時性更高的分析場景將越來越多。但是,大數據量歷史數據分析的場景也會一直存在。因此,可以預見的是,在未來一段時間內,基於任務調度的抽取模型和基於流式的、實時推送模型、直連數據源的直連模型將並存,並共同為企業的數據分析提供重要的技術支撐。