一种数据表生成方法及设备与流程

文档序号:12119476阅读:196来源:国知局
本申请涉及通信
技术领域
:,特别涉及一种数据表生成方法。本申请同时还涉及一种数据表生成设备。
背景技术
::数据仓库(DataWarehouse,又称为DW或DWH)是为企业所有级别的决策制定过程提供所有类型数据支持的战略集合。数据仓库是一个提供用户用于决策支持的当前和历史数据的环境,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问的各种技术和模块的总称,其最终的目的是为了让用户更快更方便查询所需要的信息,以及提供决策支持。基础层(又称为ODS层)是数仓建设过程中将从业务系统库抽取过来的数据建立的一层贴源的数据层,从而方便后续数据整合。在目前的数据仓库建设过程中,ODS层与表相关的建设是基础层建设的重要组成部分,需要将通过同步中心引入的增量数据合并为一份全量数据,从而为后续的保留历史、数据整合、数据分析、数据应用等功能提供支持。目前,建立基础层相关的表需要在生产建表语句之后编写脚本以及配置调度信息,之后才能将脚本以及任务发布并执行。发明人在实现本申请的过程中发现,现有的任务脚本种类以及数量繁多,技术人员在采用脚本时非常容易遗漏或出错;而且现有的数据表生成都是非常基础且需要人工完成的工作,不仅消耗开发资源大,而且人工开发效率比较低下。由此可见,如何结合现有的数据仓库建设过程自动生成与ODS层所关联的表,从而减少人力消耗以及提高数据仓库建设效率,成为本领域技术人员亟待解决的技术问题。技术实现要素:本申请提供了一种数据表生成方法,用以针对现有的数据库高效准确地建立基础层的数据表,从而减少人力消耗以及提高数据仓库建设效率。该方法包括:根据增量表的结构元数据信息以及预设的任务模板生成当前的数据表任务;根据所述任务模板对所述数据表任务的调度信息进行配置;根据所述数据表任务以及所述调度信息执行建表语句以及初始化脚本,以生成数据表。相应地,本申请还提出了一种数据表生成设备,包括:生成模块,用于根据增量表的结构元数据信息以及预设的任务模板生成当前的数据表任务;配置模块,用于根据所述任务模板对所述数据表任务的调度信息进行配置;执行模块,用于根据所述数据表任务以及所述调度信息执行建表语句以及初始化脚本,以生成数据表。通过应用本申请的技术方案,首先根据增量表的结构元数据信息以及预设的任务模板生成当前的数据表任务,在根据任务模板对数据表任务的调度信息进行配置之后,即可根据数据表任务以及调度信息执行建表语句以及初始化脚本,从而能够快速准确地的完成数据表的生成工作,从而减少人力消 耗以及提高数据仓库建设效率。附图说明图1为本申请提出的一种数据表生成方法的流程示意图;图2为本申请具体实施例提出的一种数据表生成方法的流程示意图;图3为本申请提出的一种数据表生成设备的结构示意图。具体实施方式为便于对本申请的技术方案进行清除的阐述,在介绍本申请的技术方案之前,首先针对目前数据仓库中的一些内容进行介绍:(1)表表是数据仓库最重要的组成部分。一个表记录由key,度量,属性数据组成(例如员工表由员工号(key),员工姓名,年龄等等员工属性数据组成)。在本申请的技术方案中,数据仓库的建设存在以下两种类型的表:增量表:为了提高性能,对于大数据量表根据记录变更时间戳字段(一般是gmt_modify)采用增量同步,增量表每个快照保留一份增量数据,表命名方式为tablename_{yyyymmdd}_delta或tablename_delta(分区字段dt=yyyymmdd);全量表:每个快照均会保留一份全量表,该全量表可以是从生产库全量同步过来,也可以是将从生产库同步过来的增量数据跟全量表的昨日快照数据进行fullouterjoin后,保留一份最新全量,全量表的结构跟增量表一致,表命名方式为tablename_{yyyymmdd}或tablename(分区字段dt=yyyymmdd)。(2)视图视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。需要说明的是,视图并不在数据库中以存储的数据值集形式存在。(3)元数据元数据为描述数据的数据,本质为对数据及信息资源的描述性信息,包括业务表结构信息、数据仓库表结构信息等。其中在数据仓库建设中较为重要的有调度元数据、SQL执行日志元数据、表结构元数据、同步中心元数据、定时任务元数据等。(4)Merge任务Merge任务为数据仓库建设中所不可或缺的方式,其作用在于将增量表的数据跟全量表的昨日快照数据进行合并,生成一份最新的全量快照表数据。(5)同步中心同步中心为将生产数据同步到数据仓库或将数据仓库数据回流给生产系统的装置或设备。基于上述内容以及本申请的
背景技术
:,在数据仓库建设或重构过程中,按照数据模型建设架构需要建立基础层,有些从生产库同步过来的增量数据表需要在数据仓库的ODS层合并一份全量表,以保留一份最新全量快照数据,而这个过程涉及生成全量表建表语句、merge任务脚本、调度依赖、数据初始化、发布等操作。而本申请的技术方案则旨在通过merge任务实现批量生成基础层数据表(全量表),从而在保障工作质量的前提下,降低数据仓库建设的复杂度、提升开发效率。如图1所示,为本申请提出的一种数据表生成方法的流程示意图,包括以下步骤:S101,根据增量表的结构元数据信息以及预设的任务模板生成当前的数据表任务。如
背景技术
:所述,现有数据库中基础层的全量表建设需求多且配置繁琐,因此在本申请在优选的实施例中针对类型为基础层全量表的数据表进行生成处理。为了后续能够快速地进行数据表的生产操作,技术人员可以在该步骤 之前进行统一数据表生成的初始化操作,即根据所述结构元数据信息生成与所述数据表对应的建表语句以及所述数据初始化脚本。在具体的应用场景中,增量数据表命名方式为:ods_{源系统表名}_delta;而全量数据表的命名方式为:ods_{源系统表名}。由于现有的基础层全量表大部分通过全量表merge任务来实现,因此在本申请的一个优选实施例中,技术人员可以将任务模板具体设置为merge任务模板,并在该步骤中根据增量表结构元数据信息和批量merge任务模板成merge任务代码,随后将merge任务代码作为所述数据表任务上传至预设的代码库。在具体的应用场景中,批量生成基础层全量表merge任务模板格式如下表1所示:表1此外,由于数据仓库ODS层全量表的建立方法和装置是一个高度集成的方案,其中有涉及元数据、在云端代码库、调度依赖、数据merge任务、数 据初始化、发布上线等一系列过程。因此为了进一步地提高自动化水平以及处理效率,可以在根据增量表的结构元数据信息以及预设的任务模板生成当前的数据表任务之前针对增量表的结构元数据信息进行预处理。具体地,在本申请的一个优选实施例中,在该步骤之前将增量表同步至数据仓库,并获取增量表的结构元数据信息,以此建立能够提供数据仓库的表结构信息的元数据服务,便于后续的处理。如图2所示,为本申请具体实施例所提出的数据表生成方法的流程示意图,该图中除了包含上文所介绍的同步中心模块、元数据模块之外,还涉及到以下模块:中间层:数据仓库建设中利用同步过来的基础层数据进行整合沉淀的一个数据层,目的在于方便后续应用使用业务数据;在云端:数据仓库开发的集成开发环境,通过在云端可以进行数据同步配置、模型设计、ETL开发、单元测试、任务发布、运维等操作。调度:将数据仓库任务根据配置进行自动调起执行的系统。基于上述模块,该具体实施例在前期执行以下步骤:步骤1:由同步中心同步增量数据至数据仓库;步骤2.1:元数据模块根据增量表结构信息生成全量表建表语句,并将其发送至在云端模块;步骤2.2:元数据模块根据模板和增量表结构生成Merge任务。在上述步骤中,增量数据表的命名格式为:ods_{源系统表名}_delta;全量数据表的命名格式为:ods_{源系统表名}。各个模块以此对表进行建立以及查询。在同步中心同步的过程中,同步任务的命名格式为:imp_{ODPS的表名};合并任务的命名格式为:mrg_{ODPS的表名}。由于元数据模块能够提供数据仓库的表结构信息,而在云端代码库模块能够根据增量表结构元数据信息和批量merge任务模板,生成merge任务代 码并通过在云端代码库服务提交代码库保存,因此在根据批量生成基础层全量表merge任务模板维护好信息后,即可将通过Excel文件上传至专用于数据表生成的系统,并通过调用元数据模块并根据增量表的结构信息生成基础层全量表的建表语句和数据初始化脚本、调用在云端代码库模块生成Merge任务。S102,根据所述任务模板对所述数据表任务的调度信息进行配置。通过S101以及S102的处理即完成了针对数据表生成的前期准备,该步骤主要用于针对具体生成所需要的节点、脚本等内容进行配置。为了实现针对数据表生成的调度配置服务,在本申请优选的实施例中,本步骤根据所述merge任务模板生成与所述数据表任务对应的前置依赖节点、任务输出名、调度任务基线、调度任务owner。在图2的具体实施例中,在通过步骤2.2接收了Merge任务之后,在云端模块在步骤2.3中根据模板配置调度信息为Merge任务配置相关信息,并调用调度配置服务生成调度依赖和merge任务输出名称。以表1所示的内容为例,该具体实施例中根据批量merge任务模板,调用调度配置服务生成merge任务的前置依赖节点、任务输出名、调度任务基线、调度任务owner。S103,根据所述数据表任务以及所述调度信息执行建表语句以及初始化脚本,以生成数据表。在通过S101生成了数据表任务以及通过S102配置完毕调度信息之后,调度模块在步骤3中指示系统将建表语句、初始化脚本、merge任务打包并发布到线上。随后在云端模块通过步骤4.1指示系统执行建表语句,在系统执行建表语句和初始化脚本之后,在云端模块通过步骤4.2进行初始化数据处理。通过以上流程,实现了数据表的快速生成以及创建,替代了传统的手工 准备建表语句、手工编写基础层全量表merge任务、手工配置调度依赖、手工编写数据初始化脚本、手工打包、手工发布、手工执行建表语句和初始化脚本的等需要人工完成的工作,实现了数据表的自动生成,提高了数据仓库的工作效率。为达到以上技术目的,本申请还提出了一种数据表生成设备,如图2所示,包括:生成模块210,用于根据增量表的结构元数据信息以及预设的任务模板生成当前的数据表任务;配置模块220,用于根据所述任务模板对所述数据表任务的调度信息进行配置;执行模块230,用于根据所述数据表任务以及所述调度信息执行建表语句以及初始化脚本,以生成数据表。在具体的应用场景中,所述数据表具体为基础层全量表,还包括:初始化模块,用于根据所述结构元数据信息生成与所述数据表对应的建表语句以及所述数据初始化脚本。在具体的应用场景中,还包括:同步模块,用于将所述增量表同步至数据仓库,并获取所述增量表的所述结构元数据信息。在具体的应用场景中,所述生成模块具体用于:根据增量表结构元数据信息和批量merge任务模板成merge任务代码,并将所述merge任务代码作为所述数据表任务上传至预设的代码库。在具体的应用场景中,所述配置模块具体用于:根据所述merge任务模板生成与所述数据表任务对应的前置依赖节点、任务输出名、调度任务基线、调度任务owner。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1