任务调度是一个通用的计算机概念,可以简单地理解为计算机基于一定时间频率,自动执行一项进程任务。任务调度是操作系统的重要组成部分,Windows系统中的定时任务和Linux的Crontab都是常用的系统级调度器,被广泛应用于各种定时执行程序的场景。在传统商业智能BI领域,系统的调度器也经常被作为ETL作业的调度器。作业任务会通过T+1或者更高的时间频率进行调度执行。

随着商业智能BI技术的发展,BI工具的调度功能也有了长足的发展。特别是伴随着大数据和实时数据的市场需求,处理能力更强、多线程作业,准实时调度等场景的应用越来越普遍。

具体到商业智能BI工具的调度功能,目前,主要可以概括为两类:

  1. 数据抽取的任务调度
  2. 通知、消息的任务调度

一、数据抽取的任务调度

商业智能工具的一大应用场景就是打破数据孤岛,将分布在不同系统中的异构数据进行整合,并抽取到数据仓库,形成分析模型,为可视化分析提供数据支撑。对于大数据量的历史数据分析,抽取基本采用的就是定时调度机制。从数据源到数据仓库,可以配置增量更新或者全量更新。

全量更新一般采用的机制是先Truncate Table,再进行Insert操作。增量更新则是基于主键列或者时间戳,只更新满足条件的数据。无论哪种方式,都是通过设置不同时间频率的定时调度任务来执行的。

任务的频率也是和前述两种更新方式密切相关的。对于实时性要求不高的数据,可以通过设置T+1来进行全量更新。对于频率相对较高的数据,可以设置以小时、分钟甚至秒级的频率来进行调度增量更新。

具体的调度频率要根据数据量、服务器配置,同时考虑对数据源系统的压力来综合考虑。

以Wyn为例,在数据接入方式上同时支持直连模型和抽取模型。对于抽取模型,可以设置调度运行计划。自动重载计划会在设定的时间自动刷新模型中的数据。

用户可以根据不同的业务需求制定不同的执行计划,以不同频率重载表中的缓存数据。若计划执行失败,会向填写的邮箱发送一封邮件通知。若成功,则没有提示。

创建自动定时的运行计划,设定后运行计划会周期性的自动刷新数据。

商业智能BI工具在任务计划设置上,也会考虑到其复用性。提供通过模板创建运行计划功能。运行计划可以手动或自动执行。运行计划的调度执行是数据抽取成功的重要技术保障。

二、通知、消息的任务调度

在商业智能的任务调度场景中,不仅要将数据抽取到数仓集中存储。对于报表、仪表板等分析结果,也需要支持定时推送功能。并不是每个报表数据的查看者都方面直接登录系统查看数据。例如,出差路上,或者遗忘时,通过定时推送功能,可以主动地将分析结果呈现给数据的使用者。在企业实践中,邮件推送是最常用的方式之一。

以Wyn为例,在任务计划模板中,可以使用邮件推送功能。发送对象支持邮件和邮件组。在运行报表运行计划时,不仅仅支持将报表作为邮件附件或链接的形式发送至目标邮箱,也支持将报表作为邮件正文,这样会更加方便用户查看。

将报表作为邮件正文显示的关键在于,在设置运行计划时,将导出格式设置为"HTML"或"Image"。而后,发送方式选择邮件通知时,"发送类型"中才可以选择"在邮件正文中显示报表"。

综上所述,任务调度作为商业智能工具的普遍需求,已经被广泛应用,为数据抽取提供了有效的支撑。随着软件开发技术的发展和市场需求的变化,数据实时性更高的分析场景将越来越多。但是,大数据量历史数据分析的场景也会一直存在。因此,可以预见的是,在未来一段时间内,基于任务调度的抽取模型和基于流式的、实时推送模型、直连数据源的直连模型将并存,并共同为企业的数据分析提供重要的技术支撑。

详解BI系统中的任务调度的更多相关文章

  1. 详解Linux系统中的文件名和文件种类以及文件权限

    Linux文件种类与副文件名 一直强调一个概念,那就是:任何装置在Linux底下都是文件, 不仅如此,连资料沟通的介面也有专属的文件在负责-所以,你会瞭解到,Linux的文件种类真的很多- 除了前面提 ...

  2. 详解Linux系统中10个最危险的命令

    概述 大多数的朋友都是主要用的windows系统,基本用鼠标就可以完成所有的操作,但是在Linux系统中很多都是键盘+命令操作电脑的,Linux命令行使用很有趣,但有时候也很危险,尤其是在你不确定你自 ...

  3. [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等

    详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...

  4. 详解WebService开发中四个常见问题(2)

    详解WebService开发中四个常见问题(2)   WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...

  5. 详解WebService开发中四个常见问题(1)

    详解WebService开发中四个常见问题(1)   WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...

  6. 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)

    一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)     概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...

  7. 详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别

    详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别 http://blog.sina.com.cn/s/blog_686999de0100jgda.html   实例: ...

  8. 详解 Go 语言中的 time.Duration 类型

    swardsman详解 Go 语言中的 time.Duration 类型swardsman · 2018-03-17 23:10:54 · 5448 次点击 · 预计阅读时间 5 分钟 · 31分钟之 ...

  9. 详解jquery插件中(function ( $, window, document, undefined )的作用。

    1.(function(window,undefined){})(window); Q:(function(window,undefined){})(window);中为什么要将window和unde ...

随机推荐

  1. 60天shell脚本计划-12/12-渐入佳境

    --作者:飞翔的小胖猪 --创建时间:2021年3月23日 --修改时间:2021年3月27日 说明 每日上传更新一个shell脚本,周期为60天.如有需求的读者可根据自己实际情况选用合适的脚本,也可 ...

  2. 教程6--配置ssh

    配置ssh 如果需要使用到远程仓库,那么就需要两个步骤: (1)配置创建SSH key(用于识别用户,免得每次输入账号密码) 在命令窗口输入ssh-keygen -t rsa -c "你的邮 ...

  3. (第一章第二部分)TensorFlow框架之图与TensorBoard

    系列博客链接: (一)TensorFlow框架介绍:https://www.cnblogs.com/kongweisi/p/11038395.html 本文概述: 说明图的基本使用 应用tf.Grap ...

  4. 动手学TCP——CS144实验感想

    在Stanford CS144的课程实验Lab0~Lab4中,我们动手实现了一个自己的TCP协议,并且能够真的与互联网通信!此外,感谢Stanford开源本实验并提供了大量的优质测试用例,使得我们仅仅 ...

  5. SpringBoot入门二:与Mybatis整合

    一.编程步骤 1.引入依赖 springboot相关依赖(略).mybatis-spring-boot-starter.mysql.druid.lombook <dependency> & ...

  6. tp5 git 常见命令

    git clone git add . # 跟踪所有改动过的文件 git commit -m "commit message" # 提交所有更新过的文件 git checkout ...

  7. 软件工程homework-001

          一. 回顾你过去将近3年的学习经历 1.当初你报考的时候,是真正喜欢计算机这个专业吗? 答:不喜欢,高中时候就已经对计算机比较抵触了,家里小时候比较富裕,九几年就在日本买了第一批家用台式机 ...

  8. 宇宙最強的IDE - Visual Studio 25岁生日快乐

    每位开发者从入门开始或多或少都会接触过 Visual Studio , 现今的 Visual Studio 除了支持传统的 C++ , C# , Visual Basic.NET ,F# 的编程语言外 ...

  9. CF1515H口胡

    居然一下就做出来了...不知道是不是对的/fad 考虑操作的本质,首先将所有元素插入线段树中. 来依次考虑每一种操作: 区间与 注意到这个操作类似将某些节点的右儿子合并到左儿子上,而一个节点最多被合并 ...

  10. LintCode 练习题

    /** * 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输 ...