一种数据仓库表自生长方法、终端及介质与流程

文档序号:20186807发布日期:2020-03-27 19:11阅读:125来源:国知局
一种数据仓库表自生长方法、终端及介质与流程
本发明涉及数据库
技术领域
,具体涉及一种数据仓库表自生长方法、终端及介质。
背景技术
:现有数据仓库表的建设需要程序员在增加统计指标或维度时,需手动维护数据表结构的更新,在更新数据时需要编写sql语句,根据数据是否已存在确定要使用update语句还是insert语句。手动更新维护数据表结构,不仅复杂、耗时,还容易出错,增加了开发和维护的成本,可移植性、通用性也较差。技术实现要素:针对现有技术中的缺陷,本发明提供一种数据仓库表自生长方法,实现数据仓库表的表结构自动更新和数据自动更新,极大简化数据仓库的建设维护过程。第一方面,本发明实施例提供的一种数据仓库表自生长方法,包括:获取需要保存到数据仓库的第一目标数据集,所述第一目标数据集包括目标数据、目标表名和主键;查询所述数据仓库中是否存在与目标表名相同数据表;若不存在,则根据第一目标数据集的数据自动构造建表语句,在数据仓库里生成与目标表名相同的新建数据表;将第一目标数据集中的每一行数据保存到新建数据表;若存在,则将第一目标数据集保存到已有的与目标表名相同的数据表中。可选地,根据第一目标数据集的数据自动构造建表语句具体包括:根据目标数据集的所有字段名称和字段数据类型自动构造建表语句。可选地,所述方法还包括:获取需要保存到数据仓库的第二目标数据;查询所述第二目标数据集中与第一目标数据集中是否有不同的字段名称;若是,则根据第二目标数据集中的数据类型自动在新建数据表中创建所述不同的字段名称;将第二目标数据集中的每一行数据保存到新建数据表;若不是,则将第二目标数据集中的每一行数据保存到新建数据表。可选地,所述将第一目标数据集中的每一行数据保存到新建数据表的具体方法包括:查询所述新建数据表中是否有相同的主键的存储记录信息;若没有,则将第一目标数据集中每一行数据采用insert语句插入新的主键后对应存储到新建数据表中;若有,则采用update语句将每一行数据对应保存到新建数据表中。可选地,所述将第二目标数据集中的每一行数据保存到新建数据表的具体方法包括:查询新建数据表中是否有相同的主键的存储记录信息;若没有,则将第二目标数据集中每一行数据采用insert语句插入新的主键后对应存储到新建数据表中;若有,则采用update语句将每一行数据对应保存到新建数据表中。第二方面,本发明实施例提供的的数据仓库表自生长终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行以下程序指令:获取需要保存到数据仓库的第一目标数据集,所述第一目标数据集包括目标数据、目标表名和主键;查询所述数据仓库中是否存在与目标表名相同数据表;若不存在,则根据第一目标数据集的数据自动构造建表语句,在数据仓库里生成与目标表名相同的新建数据表;将第一目标数据集中的每一行数据保存到新建数据表;若存在,则将第一目标数据集保存到已有的与目标表名相同的数据表中。可选地,所述处理器被配置用于调用所述程序指令,执行以下程序指令:根据目标数据集的所有字段名称和字段数据类型自动构造建表语句。可选地,所述处理器被配置用于调用所述程序指令,执行以下程序指令:获取需要保存到数据仓库的第二目标数据集;查询所述第二目标数据集中与第一目标数据集中是否有不同的字段名称;若是,则根据第二目标数据集中的数据类型自动在新建数据表中创建所述不同的字段名称;将第二目标数据集中的每一行数据保存到新建数据表;若不是,则将第二目标数据集中的每一行数据保存到新建数据表。可选地,所述处理器被配置用于调用所述程序指令,执行以下程序指令:查询所述新建数据表中是否有相同的主键的存储记录信息;若没有,则将第一目标数据集中每一行数据采用insert语句插入新的主键后对应存储到新建数据表中;若有,则采用update语句将每一行数据对应保存到新建数据表中。第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述实施例描述的方法。本发明的有益效果:本发明提供的一种数据仓库表自动生长方法,在接收到要保存到数据仓库的目标数据集后,查询数据仓库中是否存在与目标表名相同的数据表,如果不存在,则按照该目标数据集的所有字段名称和字段类型自动构建与目标表名相同的新建数据表,然后将目标数据表中的数据保存到新建数据表中,如果存在相同表名的数据表,则直接将目标数据集对应保存到已有的数据表中。该方法实现数据仓库表结构的自动更新和数据的自动更新,极大简化数据仓库的建设与维护,大大降低了人工工作量。本发明提供的一种数据仓库表自动生长终端,在接收到要保存到数据仓库的目标数据集后,查询数据仓库中是否存在与目标表名相同的数据表,如果不存在,则按照该目标数据集的所有字段名称和字段类型自动构建与目标表名相同的新建数据表,然后将目标数据表中的数据保存到新建数据表中,如果存在相同表名的数据表,则直接将目标数据集对应保存到已有的数据表中。该方法实现数据仓库表结构的自动更新和数据的自动更新,极大简化数据仓库的建设与维护,大大降低了人工工作量。附图说明为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1示出了本发明第一实施例所提供的一种数据仓库表自生长方法的流程图;图2示出了本发明第二实施例所提供的一种数据仓库表自生长方法的流程图;图3示出了本发明第三实施例所提供的一种一种数据仓库表自生长终端的原理框图。具体实施方式下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只是作为示例,而不能以此来限制本发明的保护范围。需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。实施例1如图1所示,示出了本发明第一实施例所提供的一种数据仓库表自生长方法的流程图,该方法包括:s101:获取需要保存到数据仓库的第一目标数据集,所述第一目标数据集包括目标数据、目标表名和主键。s102:查询所述数据仓库中是否存在与目标表名相同数据表。s103:若不存在,则根据第一目标数据集的数据自动构造建表语句,在数据仓库里生成与目标表名相同的新建数据表。具体地,根据第一目标数据集的数据自动构造建表语句的具体方法是根据目标数据集的所有字段名称和字段数据类型自动构造建表语句。s104:将第一目标数据集中的每一行数据保存到新建数据表。具体地,将第一目标数据集中的每一行数据保存到新建数据表的具体方法包括:查询所述新建数据表中是否有相同的主键的存储记录信息,若没有,则将第一目标数据集中每一行数据采用insert语句插入新的主键后对应存储到新建数据表中;若有,则采用update语句将每一行数据对应保存到新建数据表中s105:若存在,则将第一目标数据集保存到已有的与目标表名相同的数据表中。本实施例的数据仓库表自动生长方法,在接收到要保存到数据仓库的目标数据集后,查询数据仓库中是否存在与目标表名相同的数据表,如果不存在,则按照该目标数据集的所有字段名称和字段类型自动构建与目标表名相同的新建数据表,然后将目标数据表中的数据保存到新建数据表中,如果存在相同表名的数据表,则直接将目标数据集对应保存到已有的数据表中。该方法实现数据仓库表结构的自动更新和数据的自动更新,极大简化数据仓库的建设与维护,大大降低了人工工作量。实施例2如图2所示,示出了本发明第二实施例提供了一种数据仓库自动生长方法的流程图,该方法与第一实施例不同之处在于,该方法还包括:s201:获取需要保存到数据仓库的第二目标数据集。步骤s201位于步骤s104或步骤s105之后。s202:查询所述第二目标数据集中与第一目标数据集中是否有不同的字段名称。s203:若是,则根据第二目标数据集中的数据类型自动在新建数据表中创建所述不同的字段名称,再执行s204。若不是,直接跳转执行s204。s204:将第二目标数据集中的每一行数据保存到新建数据表。具体地,将第二目标数据集中的每一行数据保存到新建数据表的具体方法包括:查询新建数据表中是否有相同的主键的存储记录信息;若没有,则将第二目标数据集中每一行数据采用insert语句插入新的主键后对应存储到新建数据表中;若有,则采用update语句将每一行数据对应保存到新建数据表中。本实施例的数据仓库表自动生长方法,在接收到要保存到数据仓库的第一目标数据集后,查询数据仓库中是否存在与第一目标表名相同的数据表,如果不存在,则按照该第一目标数据集的所有字段名称和字段类型自动构建与目标表名相同的新建数据表,然后将第一目标数据表中的数据保存到新建数据表中,如果存在相同表名的数据表,则直接将第一目标数据集对应保存到已有的数据表中。又接收到要保存到数据仓库的第二目标数据集,查询第二目标数据集中与第一目标数据集中是否有不同的字段名称;若是,则根据第二目标数据集中的数据类型自动在新建数据表中创建所述不同的字段名称,将第二目标数据集中的每一行数据保存到新建数据表;若不是,则将第二目标数据集中的每一行数据保存到新建数据表。该方法实现了数据仓库表结构的自动更新和数据的自动更新,极大简化数据仓库的建设与维护,大大降低了人工工作量。以下采用具体的例子对上述实施例2进行详细说明:现有数据集dataset1需要保存至数据仓库,表名为:dim_customer,主键为id,如表1所示。idnamegender1张三男2李四女表1dim_customer在首次保存时,查询是否有相同表名数据表已经存在数据仓库里,若不存在,则自动根据dataset1的所有字段名称及字段数据类型,自动构造建表语句,在数据仓库里生成表dim_customer,然后把数据集dataset1里的每一行数据保存到表dim_customer中,若存在表dim_customer,则将数据集dataset1里的每一行数据保存到表dim_customer中。在进行数据保存时,查询表dim_customer中是否有主键id的存储记录信息;若没有主键id,则将数据集dataset1里的每一行数据采用insert语句插入新的主键后对应存储到表dim_customer中;若有主键id,则采用update语句将每一行数据对应保存表dim_customer中。后来系统接收要将数据集dataset2要保存至与上述同样的表,只是维度及指标与数据集dataset1有点不一样,如表2所示。id登录次数总买单数总买单金额11011002575813100表2dim_customer查询数据集dataset2和数据集dataset1中是否有不同的字段名称,对比出"登录次数,总买单数,总买单金额"三个字段名称是表dim_customer不存在的字段名称,便根据这三个字段在数据集dataset2里的数据类型自动在表dim_customer上创建"登录次数,总买单数,总买单金额"字段名称,然后开始执行数据的保存操作。查询表dim_customer中是否有主键id的存储记录信息;若没有主键id,则将数据集dataset1里的每一行数据采用insert语句插入新的主键后对应存储到表dim_customer中;若有主键id,则采用update语句将每一行数据对应保存表dim_customer中,生成的数据表如表3所示。表3dim_customer实施例3如图3所示,示出了本发明还第三实施例提供一种数据仓库表自生长终端的原理框图,该终端包括处理器301、输入设备302、输出设备303和存储器304,所述处理器301、输入设备302、输出设备303和存储器304相互连接,所述存储器304用于存储计算机程序,所述计算机程序包括程序指令,所述处理器301被配置用于调用所述程序指令,执行上述第一实施例或第二实施例描述的方法。应当理解,在本发明实施例中,所称处理器301可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。输入设备302可以包括数据接口、网络硬盘等可获取数据信息设备,输出设备303可以包括显示器(lcd等)、扬声器等。该存储器304可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器304的一部分还可以包括非易失性随机存取存储器。例如,存储器304还可以存储设备类型的信息。具体实现中,本发明实施例中所描述的处理器301、输入设备302、输出设备303可执行本发明实施例提供的方法实施例所描述的实现方式,也可执行本发明实施例所描述的终端实施例的实现方式,在此不再赘述。在本发明还提供一种计算机可读存储介质的实施例,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执上述实施例描述的方法。所述计算机可读存储介质可以是前述实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1