1.基于Airflow的数据计算调度方法,其特征在于,包括以下步骤:步骤一:开始任务,生成树,任务实例并导出原始数据;程序通过参数,导入相应日期的数据分别计算出厂站终端抄表率明细、用户终端抄表率明细、厂站终端抄表率和低压级超终端抄表率;生成一个实例包括:数据导入日冻结、计算计量点电量和计算分析对象电量,具体包括:运行电能表,将数据导入日冻结中的数据进行计量点电量计算,当数据导入完成,任务被标记为success,当多个计算需要用到同一个数据源时,开始执行分析对象电量,当分析对象电量执行完毕后开始计算数据;步骤二:生成树,任务实例接着进行scheduler安排定时服务同时,Dag生成定义任务和依赖与scheduler扫描定时服务同时输入至所有任务存储在数据库中判断是否满足定时条件,当满足定时条件时解析模型;步骤三:当导出原始数据成功时向下进行数据计算1同时将数据存储到HDFS且HDFS获取数据,当导出原始数据失败时定时任务失败同时任务日志记录到源数据库中;步骤四:当数据计算1成功时既向下进行数据计算2、数据计算3、数据计算4和数据计算5,又将数据计算1的计算结果保存到HDFS,及mpp;步骤五:HDFS获取结果数据与数据计算2、数据计算3、数据计算4和数据计算5同时并行任务,同时将存储过程入库并数据存储至HDFS及Mpp。
2.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,完整架构包含以下组件:(1)作业定义,包含在源代码控制中;(2)一个丰富的命令行工具或者命令行接口用来测试、运行、回填、描述和清理你的Airflow的组成部件;(3)一个web应用程序,用来浏览Airflow的定义、依赖项、进度、元数据和日志,Web服务器打包在Airflow里面并且是基于Python框架Flask构建;(4)一个元数据仓库,通常是一个MySQL或者Postgres数据库,Airflow可以用它来记录任务作业状态和其他持久化的信息;(5)一组工作节点,以分布式的方式运行作业的任务实例;(6)调度程序,触发准备运行的任务实例;(7)RBAC权限管理,高强度的对用户权限进行了划分,可以细致到页面上的每个页面、每个按钮和每个任务。
3.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,Airflow推动处理的工序:(1)数据仓库;(2)增长分析;(3)试验;(4)定向邮件;(5)会话;(6)搜索;(7)数据基础架构维护。
4.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,Airflow可提供1对1,1对多,多对1的依赖关系,并可通过trigger_rule来设置上下游节点的运行规则。
5.如权利要求4所述的基于Airflow的数据计算调度方法,其特征在于,trigger_rule对应的参数如下:(1)All_success:上级依赖全部执行成功,执行下级;(2)All_failed:上级依赖全部执行失败,执行下级;(3)One_success:一个上级依赖执行成功,执行下级;(4)One_failed:一个上级依赖执行失败,执行下级;(5)All_done:上级依赖全部执行完毕,无论success或failed,执行下级;(6)None_failed:所有的上级依赖,没有failed及upstream_failed状态,执行下级;(7)none_skipped:上级处于skipped状态,执行下级;相互依赖的任务将会根据其上下游关系,按照配置的trigger_rule从上游向下游有序执行。
6.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,在步骤五中的并行任务为:场景一All_success;场景二All_done;场景三All_failed。
7.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,调度程序基于依赖关系,定时执行一整套的流程任务,Airflow在每个实例会通过向程序提供相同的参数,控制各个程序依赖于同一个数据源和同一批数据,并且维持上下级的数据依赖关系。
8.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,Airflow自带各种与Hive、Presto、MySQL、HDFS、Postgres和S3这些常用系统交互的方法。
9.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,Airflow对Bash脚本,python程序,spark程序,存储过程,Http请求,Hive进行依赖的编写和定时的调度。
10.如权利要求1所述的基于Airflow的数据计算调度方法,其特征在于,步骤三和步骤四之间还进行以下步骤:a通过kafka采集各省数据;b通过调度程序从kafka中导出数据并存储到HDFS;c计算程序通过调度程序配置的参数找到HDFS的参数或者结果进行计算;d通过调度程序将HDFS上的结果数据存储至mpp数据库;e通过调度程序执行存储过程将数据统计到相应的库表;f前端展示。