CN118152405A - 数据表生成的方法、装置、设备、存储介质及产品 - Google Patents
数据表生成的方法、装置、设备、存储介质及产品 Download PDFInfo
- Publication number
- CN118152405A CN118152405A CN202410376339.5A CN202410376339A CN118152405A CN 118152405 A CN118152405 A CN 118152405A CN 202410376339 A CN202410376339 A CN 202410376339A CN 118152405 A CN118152405 A CN 118152405A
- Authority
- CN
- China
- Prior art keywords
- data
- source database
- information
- metadata
- metadata information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000013500 data storage Methods 0.000 claims abstract description 78
- 239000000523 sample Substances 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 16
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 abstract description 13
- 230000000875 corresponding effect Effects 0.000 description 94
- 238000010276 construction Methods 0.000 description 21
- 230000001360 synchronised effect Effects 0.000 description 18
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000010453 quartz Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据表生成的方法、装置、设备、存储介质及产品,涉及数据处理技术领域。该方法包括:获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型;查询所述源数据库类型对应的源数据库中的元数据信息;将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句;根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件;通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据表生成的方法、装置、设备、存储介质及产品。
背景技术
随着技术的发展,企业的信息化程度越来越高,许多企业也会搭建自己的信息化系统。部分情况下,企业内部建设的多个不同业务系统形成了数据孤岛,需要将核心数据集中存储以此来支撑企业级决策分析,此时要将各个业务系统数据库的核心数据同步到数据仓库的操作数据存储层(Operational Data Store,ODS),ODS层为数据贴源层,与各个业务数据库数据结构相同,数据保持原貌而不做任何加工处理。
目前的大数据开发管理方案,需要开发人员大量编写代码,开发工作量随着ODS表数量的增加成倍增长,开发时间也会相应增加,搭建数据库的ODS层的效率较低。
发明内容
本申请提供一种数据表生成的方法、装置、设备、存储介质及产品,能够提高搭建数据库的ODS层的效率。
第一方面,本申请提供一种数据表生成的方法,所述方法包括:
获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型;
查询所述源数据库类型对应的源数据库中的元数据信息;
将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句;
根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件;
通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
本申请上述的方法,通过获取包括源数据库类型的待生成操作数据存储层表的配置信息,然后查询所述源数据库类型对应的源数据库中的元数据信息,根据得到的元数据信息生成建表语句以及相应的数据同步配置文件,并根据建表语句,在操作数据存储层建立数据表,根据同步配置文件向建立的数据表同步源数据库中的数据。这样,可以自动生成ODS层的建表语句、数据同步工具运行所需的配置文件,从而完成ODS层的数据库搭建。
在一些可能的实现方式中,所述配置信息包括与源数据库连接的连接方式;所述通过所述源数据库类型,查询对应的源数据库中的元数据信息,包括:
基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接;
通过所述源数据库,查找元数据信息。
本申请的上述方式,通过基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接,在连接到源数据库之后,再进行元数据信息的查找。通过建立与源数据库的连接,更准确的获取到元数据信息。
在一些可能的实现方式中,所述将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句,包括:
将所述元数据信息与数据定义语言的固定信息进行拼接,得到数据定义语言语句,所述固定信息为所述数据定义语言中包括的字段信息;
通过预设映射规则,将目标元数据信息的字段类型映射为预设数据库工具的字段类型,并与所述数据定义语言语句拼接;
将拼接后的所述数据定义语言语句作为建表语句。
本申请的上述方式,通过将所述元数据信息与数据定义语言的固定信息进行拼接,之后再将目标元数据信息的字段类型映射为预设数据库工具的字段类型之后,再拼接得到完整的建表语句。能够在字段类型不匹配的情况下,得到建表语句。
在一些可能的实现方式中,所述根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件,包括:
根据数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板;
按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。
本申请的上述方式,通过数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板,然后将元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。可以利用数据交换格式模板快速得到数据同步配置文件。
在一些可能的实现方式中,所述按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件,包括:
检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配;
在检测到所述预设元数据组合关系的所述元数据信息的字段类型,与所述数据交换格式模板对应的字段类型不匹配的情况下,将所述元数据信息中的不匹配数据转换为与所述数据交换格式模板匹配的字段类型;
去除所述元数据信息中的预设字符,并对数据交换格式模板中的空值进行填充,得到数据同步配置文件。
本申请的上述方式,通过检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配,如果不匹配,则进行字段类型的转换,并去除所述元数据信息中的预设字符,对数据交换格式模板中的空值进行填充,得到数据同步配置文件。保证数据同步配置文件符合规范。
在一些可能的实现方式中,所述通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据,包括:
根据所述建表语句,生成对应的操作数据存储层表;
分别生成所述源数据库以及所述操作数据存储层表的探查语句;
根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据;
在数据同步的过程中,执行所述源数据库的探查语句,得到源数据库探查文件;
执行所述数据存储表的探查语句,得到数据存储表探查文件;
在所述源数据库探查文件与所述数据存储表的探查文件不一致的情况下,输出差异部分信息。
本申请的上述方式,通过分别生成所述源数据库以及所述操作数据存储层表的探查语句,在数据同步的过程中,分别执行两种探查语句。从而进行同步结果的测试验证,保证结果的可靠性。
在一些可能的实现方式中,在所述通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据之后,所述方法还包括:
获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序;
获取预设数量的执行令牌;
按照所述数据同步任务列表,执行数据同步任务,每个执行中的数据同步任务与一个执行令牌对应。
本申请的上述方式,通过获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序,并按照多个令牌进行数据同步任务的并行执行。能够多线程的执行数据同步任务,提高效率。
在一些可能的实现方式中,所述执行数据同步任务,包括:
在开始数据同步任务的情况下,在日志表中记录任务基本信息以及任务开始时间;
在数据同步任务执行完成的情况下,在日志表中的对应位置记录任务完成时间以及任务完成状态。
本申请的上述方式,通过在执行数据同步任务执行时,进行日志表的记录。便于用户了解同步任务整体运行情况并及时处理错误任务。
第二方面,本申请提供一种数据表生成的装置,所述装置包括:
获取模块,用于获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型;
查询模块,用于查询所述源数据库类型对应的源数据库中的元数据信息;
拼接模块,用于将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句;
组合模块,用于根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件;
同步模块,用于通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
第三方面,本申请实施例提供一种数据表生成的设备,所述设备包括:处理器,以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现如上文描述的数据表生成的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如上文描述的数据表生成的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如上文描述的数据表生成的方法。
本申请数据表生成的方法、装置、设备、存储介质及产品,通过获取包括源数据库类型的待生成操作数据存储层表的配置信息,然后查询所述源数据库类型对应的源数据库中的元数据信息,根据得到的元数据信息生成建表语句以及相应的数据同步配置文件,并根据建表语句,在操作数据存储层建立数据表,根据同步配置文件向建立的数据表同步源数据库中的数据。这样,可以自动生成ODS层的建表语句、数据同步工具运行所需的配置文件,从而完成ODS层的数据库搭建。
附图说明
从下面结合附图对本申请的具体实施方式的描述中可以更好地理解本申请,其中:
通过阅读以下参照附图对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显,其中,相同或相似的附图标记表示相同或相似的特征。
图1是本申请一个实施例提供的数据表生成的方法的流程示意图;
图2是本申请一个实施例提供的另一数据表生成的方法的流程示意图;
图3是本申请一个实施例提供的另一数据表生成的方法的流程示意图;
图4是本申请一个实施例提供的数据表生成的装置的结构示意图;
图5是本申请实施例提供的数据表生成的设备的硬件结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本申请的全面理解。但是,对于本领域技术人员来说很明显的是,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请的更好的理解。本申请决不限于下面所提出的任何具体配置和算法,而是在不脱离本申请的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本申请造成不必要的模糊。
需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
需要说明的是,在本申请实施例中,可能提及某些软件、组件、模型等业界已有方案,应当将它们认为是示范性的,其目的仅仅是为了说明本申请技术方案实施中的可行性,但并不意味着申请人已经或者必然用到了该方案。
提取-转换-加载(Extract-Transform-Load,ETL):指的是一个数据处理的过程,就是从数据源抽取出所需的数据,经过数据提取(extract)、转换(transform),最终按照预先定义好的数据仓库模型,将数据加载(load)到数据仓库中去。ETL大部分应用在大数据领域,但对小数据也可以经过这个过程的处理。
操作型数据存储(Operational Data Store,ODS):是最接近数据源数据的存储层。在数据仓库中,通常将数据源的数据表经过轻度加工后,装入ODS层。
元数据(Metadata):元数据是为了描述数据的相关信息而存在的数据。元数据不仅仅表示数据的类型、名称、值等信息,它可以理解为是一组用来描述数据的数据组,该数据组中的一切数据、信息,都反映了某个数据的某方面特征。
结构化查询语言(Structured Query Language,SQL):是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
JS对象标记(JavaScript Object Notation,JSON):一种轻量级的数据交换格式。是比较常用的数据类型是对象。
蜂箱(Hive):是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。其本质是将SQL转化成MapReduce程序。
Hadoop分布式文件系统(Hadoop Distributed File System,HDFS):是Hadoop提供的分布式文件系统,HDFS的文件分布在集群机器上,同时提供副本进行容错及可靠性保证。
随着技术的发展,企业的信息化程度越来越高,许多企业也会搭建自己的信息化系统。部分情况下,企业内部建设的多个不同业务系统形成了数据孤岛,需要将核心数据集中存储以此来支撑企业级决策分析,此时要将各个业务系统数据库的核心数据同步到数据仓库的操作数据存储层(Operational Data Store,ODS),ODS层为数据贴源层,与各个业务数据库数据结构相同,数据保持原貌而不做任何加工处理。
目前的大数据开发管理方案,需要开发人员大量编写代码,举例来说,以使用DataX这一数据同步引擎的情况来说,需要开发人员先登录Mysql数据库,查询数据表的元数据信息,然后开发ODS建表语句与DataX运行所需的Json配置文件。之后再登录Hive执行ODS建表语句,调用DataX执行Json配置文件,为ODS表添加分区,将Json抽取到的数据文件映射为ODS表分区。开发工作量随着ODS表数量的增加成倍增长,开发时间也会相应增加,搭建数据库的ODS层的效率较低。
发明人针对上述问题研究发现,现有的开发工具要开发人员大量编写代码,每张ODS表的开发都需要按照繁琐的步骤进行开发,而如果通过程序根据需求自动生成相关的建表语句和配置文件,进而建表和同步数据,则能够明显的提高搭建数据库的ODS层的效率。
在本申请数据表生成的方法的一个实施例中,可以参照图1,在本实施例中,方法可以由上述的数据表生成的装置执行,方法包括以下步骤S101至S105。
步骤S101:获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型。
在具体实现中,用户根据需要进行的操作,会设置相应的配置文件。通过读取这个配置文件,并解析其中的信息,来获取源数据库类型的配置信息。
步骤S102:查询所述源数据库类型对应的源数据库中的元数据信息。
在具体实现中,可以根据配置文件中的源数据库类型信息,软件会建立到源数据库的连接。这可能涉及到使用不同的数据库连接库或驱动程序来实现与不同类型的数据库的通信。连接到源数据库后,软件可以执行相应的查询语句或调用数据库提供的API来获取元数据信息。元数据信息有可能包括数据库中的表、视图、索引、存储过程、触发器、列定义、数据类型等内容。
步骤S103:将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句。
在具体实现中,预设有默认的建表语句类型,首先可以解析预设的建表语句,这些语句包含了数据库表的结构定义、字段类型、约束条件等固定信息。通过解析这些语句,可以提取出需要与元数据信息进行拼接的部分。然后相应的从元数据信息中获取需要拼接的内容,将解析得到的预设建表语句中的固定信息与获取到的元数据信息进行拼接。例如将表名、字段名、字段类型等信息逐一对应,从而形成完整的建表语句。
步骤S104:根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件。
在具体实现中,针对不同的源数据库类型,预先定义有元数据之间的组合关系。在确定了源数据库类型,根据预设的元数据组合关系,将获取到的元数据信息进行匹配和组合,进而生成对应的数据同步配置文件。这个配置文件可以包含数据同步的相关设置,比如源表与目标表的映射关系、字段映射规则、数据筛选条件、同步频率等内容。
步骤S105:通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
在具体实现中,会执行之前生成的建表语句,通过数据库连接将建表语句发送到目标储存位置中,以在目标储存位置建立相应的数据表结构。然后,读取之前生成的数据同步配置文件,根据此同步配置文件进行数据同步操作。例如,根据数据同步配置文件中定义的规则进行数据转换和处理,比如数据类型转换、数据清洗、数据筛选等操作,以确保源数据能够正确地同步到目标数据库中。经过数据转换和处理后,可以将处理好的数据插入到目标数据库的相应数据表中。举例来说,通过执行INSERT语句或调用相应的API,软件将源数据库中的数据同步到目标数据库中的数据表中。
本申请上述的方法,通过获取包括源数据库类型的待生成操作数据存储层表的配置信息,然后查询所述源数据库类型对应的源数据库中的元数据信息,根据得到的元数据信息生成建表语句以及相应的数据同步配置文件,并根据建表语句,在操作数据存储层建立数据表,根据同步配置文件向建立的数据表同步源数据库中的数据。这样,可以自动生成ODS层的建表语句、数据同步工具运行所需的配置文件,从而完成ODS层的数据库搭建。
在一些实施方式中,所述配置信息包括与源数据库连接的连接方式;所述通过所述源数据库类型,查询对应的源数据库中的元数据信息,包括:
基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接。
在具体实现中,首先加载与源数据库类型对应的数据库驱动程序。数据库驱动程序通常由数据库厂商提供,用于与特定类型的数据库进行通信和交互。通过加载的数据库驱动程序,软件可以使用预先设定的连接参数,尝试建立与源数据库的连接。
通过所述源数据库,查找元数据信息。
在具体实现中,在连接到源数据库之后,可以查询源数据的系统表或系统视图,其用于存储数据库的元数据信息,如表结构、列信息、约束等。举例来说,通过执行相应的SQL查询语句,软件可以从系统表或系统视图中检索源数据库中的元数据信息。比如查询诸如information_schema.tables、information_schema.columns等系统表来获取表和列的信息。
本申请的上述方式,通过基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接,在连接到源数据库之后,再进行元数据信息的查找。通过建立与源数据库的连接,更准确的获取到元数据信息。
在一些实施方式中,所述将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句,包括:
将所述元数据信息与数据定义语言的固定信息进行拼接,得到数据定义语言语句,所述固定信息为所述数据定义语言中包括的字段信息。
固定信息可以是数据定义语言(Data Definition Language,DDL)中固定的部分,如CREATE TABLE语句中的关键字、表名等。这些信息是DDL语句的基本结构,不随元数据变化而改变。
在具体实现中,在获取到元数据信息和固定信息后,可以将它们进行拼接组合,生成完整的数据定义语言语句。例如,可以将表名、列名、数据类型等元数据信息与CREATETABLE的固定信息拼接在一起,形成CREATE TABLE语句。
通过预设映射规则,将目标元数据信息的字段类型映射为预设数据库工具的字段类型,并与所述数据定义语言语句拼接。
在具体实现中,根据预先定义好的映射规则,将源数据库中的字段类型映射为目标数据库工具所支持的字段类型。将经过映射转换后的目标元数据信息与数据定义语言语句进行拼接。
将拼接后的所述数据定义语言语句作为建表语句。
在具体实现中,在上述拼接都完成之后,生成完整的数据定义语言语句。
本申请的上述方式,通过将所述元数据信息与数据定义语言的固定信息进行拼接,之后再将目标元数据信息的字段类型映射为预设数据库工具的字段类型之后,再拼接得到完整的建表语句。能够在字段类型不匹配的情况下,得到建表语句。
在一些实施方式中,参考图2,所述根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件,包括下列步骤S201至S202。
步骤S201:根据数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板。
在具体实现中,预先定义有不同数据库类型与数据交换格式模板之间的对应关系。这些对应关系可以以配置文件、映射表或代码的形式存在,包括各个数据库类型需要使用的数据交换格式模板。根据定义的对应关系,软件根据源数据库类型确定所需使用的数据交换格式模板。例如,如果源数据库类型是MySQL,则需要选取与MySQL对应的数据交换格式模板。
步骤S202:按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。
在具体实现中,根据预设的元数据组合关系,将提取的元数据信息填充到对应的数据交换格式模板中。例如将表名、字段名、数据类型等信息插入到模板的相应位置,确保生成的配置文件符合预期格式和结构。通过填充数据交换格式模板,生成完整的数据同步配置文件,来描述数据同步的规则、映射关系、转换逻辑等内容。
本申请的上述方式,通过数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板,然后将元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。可以利用数据交换格式模板快速得到数据同步配置文件。
在一些实施方式中,所述按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件,包括:
检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配。
在具体实现中,将收集到的元数据信息与数据交换格式模板中的要求进行匹配。对匹配的结果进行检测和分析,确认元数据信息与数据交换格式模板是否完全匹配。
在检测到所述预设元数据组合关系的所述元数据信息的字段类型,与所述数据交换格式模板对应的字段类型不匹配的情况下,将所述元数据信息中的不匹配数据转换为与所述数据交换格式模板匹配的字段类型。
在具体实现中,在出现了不匹配的情况下,可以通过比较字段的数据类型、长度、精度等方面的差异,来识别哪些元数据信息中的字段类型与数据交换格式模板中的要求不匹配。根据预设的转换规则或策略,将不匹配的字段类型转换为与数据交换格式模板匹配的字段类型。例如进行数据类型的转换、长度的调整等。
去除所述元数据信息中的预设字符,并对数据交换格式模板中的空值进行填充,得到数据同步配置文件。
在具体实现中,识别元数据信息中的预设字符,例如空格、占位符等,去除其中的预设字符。具体来说可以去除字段值中的空格、特殊符号,或者替换为合适的数值、字符串。然后,根据数据交换格式模板中的定义,对元数据信息中需要填充空值的位置进行处理,确保这些位置被正确地填充为预设的数值、默认值或其他合适的内容。最终生成数据同步配置文件。
本申请的上述方式,通过检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配,如果不匹配,则进行字段类型的转换,并去除所述元数据信息中的预设字符,对数据交换格式模板中的空值进行填充,得到数据同步配置文件。保证数据同步配置文件符合规范。
在一些实施方式中,所述通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据,包括:
根据所述建表语句,生成对应的操作数据存储层表。
在具体实现中,解析建表语句,使用数据库管理系统提供的相关接口或工具,动态地创建对应的数据存储表。例如,根据建表语句中定义的约束条件(如主键、外键、唯一约束等),将表结构信息应用到数据库中,创建对应的数据表。
分别生成所述源数据库以及所述操作数据存储层表的探查语句。
在具体实现中,根据源数据库表的结构信息,生成对应的探查语句,用于查询源数据库表的数据情况。根据操作数据存储层表的结构信息,生成相应的探查语句,用于查询操作数据存储层表的数据情况。
根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
在具体实现中,根据数据同步配置文件,执行SQL查询语句,读取源数据库中符合条件的数据记录。执行数据同步操作,将源数据库中的数据同步到操作数据存储层中的目标数据表中。
在数据同步的过程中,执行所述源数据库的探查语句,得到源数据库探查文件。
执行所述数据存储表的探查语句,得到数据存储表探查文件。
在具体实现中,根据指定的源数据库探查语句,通过数据库连接执行对源数据库的探查操作。这些探查语句可以获取数据库结构、表中数据分布情况、数据类型等信息。同样的,根据数据存储表探查语句,通过数据存储表的连接执行对数据存储表的探查操作。这些探查语句可以用于获取数据存储表的结构、数据类型等信息。
在所述源数据库探查文件与所述数据存储表的探查文件不一致的情况下,输出差异部分信息。
在具体实现中,识别源数据库探查文件与所述数据存储表的探查文件中不一致的元素。将识别出的差异部分信息进行整理和格式化,并输出。
本申请的上述方式,通过分别生成所述源数据库以及所述操作数据存储层表的探查语句,在数据同步的过程中,分别执行两种探查语句。从而进行同步结果的测试验证,保证结果的可靠性。
在一些实施方式中,参考图3,在所述通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据之后,所述方法还包括步骤S301至S303:。
步骤S301:获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序。
在具体实现中,从任务管理系统或配置文件中获取数据同步任务列表,包括每个任务的名称、描述、源数据表、目标数据表、以及任务的优先级等信息。根据每个任务的优先级对任务列表进行排序,将排好序的数据同步任务列表保存在内存中或者生成新的任务列表文件,以便后续进行数据同步操作时使用。
步骤S302:获取预设数量的执行令牌。
在具体实现中,预先对执行令牌进行定义,通常可以是一个计数器或标记,表示当前可用的执行令牌数量。生成指定数量的执行令牌,并将其标记为可用状态。
步骤S303:按照所述数据同步任务列表,执行数据同步任务,每个执行中的数据同步任务与一个执行令牌对应。
在具体实现中,当某个任务需要执行时,首先尝试获取一个执行令牌。如果当前可用的执行令牌数量大于零,则允许任务继续执行;否则需要等待直到有可用的执行令牌。任务获取到执行令牌后,开始执行相应的数据同步操作。数据同步任务执行完成后,释放所占用的执行令牌,使其重新变为可用状态。
本申请的上述方式,通过获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序,并按照多个令牌进行数据同步任务的并行执行。能够多线程的执行数据同步任务,提高效率。
在一些实施方式中,所述执行数据同步任务,包括:
在开始数据同步任务的情况下,在日志表中记录任务基本信息以及任务开始时间。
在具体实现中,在开始执行数据同步任务之前,获取任务的基本信息,包括任务的唯一标识符、任务类型、源数据信息、目标数据信息等。在开始执行数据同步任务的时候,软件会获取当前的时间作为任务的开始时间。之后将任务基本信息以及任务开始时间记录到日志表中的对应位置。
在数据同步任务执行完成的情况下,在日志表中的对应位置记录任务完成时间以及任务完成状态。
在具体实现中,当数据同步任务执行完成时,获得任务执行完成的相关信息,包括任务的唯一标识符、完成时间以及完成状态(成功或失败)。将任务完成时间以及任务完成状态记录到日志表中的对应位置。
本申请的上述方式,通过在执行数据同步任务执行时,进行日志表的记录。便于用户了解同步任务整体运行情况并及时处理错误任务。
作为本申请的另一实现方式,使用Mysql来存储配置信息,具体包含两张数据表:“源数据库配置表”和“ODS配置表”。其中,“源数据库配置表”存储来源数据库的连接方式等信息,如表1所示。
表1
而“ODS配置表”存储数据源表与ODS表等信息,如表2所示。
表2
由于ODS表数量巨大,通常可能有几百上千张,为了维护配置信息。可以使用Excel模板,将Excel模板中的ODS配置信息导入Mysql库,具体来说,模板分为用户填写与自动填充两部分内容,其中用户填写内容包括:数据源、数据源表名、数据筛选条件、执行任务优先级,其他列配置信息由模板自动填充,填充的ODS表名将遵循数据仓库的命名格式。根据上述的配置信息,模板为每张ODS表生成一条维护“ODS配置表”的SQL语句。
Excel模板中预先设计了VBA(Visual Basic for Applications)程序功能,VBA程序连接Mysql库并执行生成的SQL语句,将Excel模板数据维护到Mysql库的“ODS配置表”中。
在需要进行数据同步时,连接到Mysql配置库,读取“ODS配置表”和“源数据库配置表”,获取多条待生成ODS代码的配置信息列表。之后循环读取每一条配置信息,执行后续所有步骤依次生成代码,直至生成所有代码。具体实现过程中,还可以验证配置信息是否准确,包括:单个字段的合法值判定、多个字段的逻辑一致性判定、逻辑外键的数据一致性判定等等。验证通过时,执行后续步骤,验证失败时,输出错误日志。
进一步的,在获取到数据源数据库类型以及连接信息后,选择数据源类型对应的Java语言连接数据库(Java DataBase Connectivity,JDBC)驱动,以Mysql数据源举例,根据驱动建立Mysql数据库连接。在Mysql数据库中,查询需要同步的Mysql表的元数据信息,可以包括:表名称、表说明、字段名称、字段类型、字段长度、字段说明、字段顺序等。
然后,开始拼接Hive的DDL语句的固定信息,包括:指定Hive表类型(内部表、外部表)、分区字段及类型、数据文件字段分隔符、压缩格式等信息。根据ODS表名,拼接ODS表数据文件存储的HDFS路径到DDL语句。沿用Mysql表的表名称、表说明、字段名称、字段说明、字段顺序等信息,拼接到DDL语句中。按照异构数据库字段类型的映射规则,将Mysql字段类型映射转换为Hive的字段类型,拼接到DDL语句中。完成上述DDL语句的拼接后,得到ODS表的Hive建表语句。
同时,以DataX为例,根据数据源的数据库类型,选取DataX对应的Json模板,比如,数据源为Mysql数据库,Json模板选择MysqlReader和HdfsWriter。然后拼接Json的HdfsWriter的column配置信息,其中字段数量、字段名称与字段顺序与Mysql完全相同,字段类型与Mysql字段类型不相同,需要将Mysql字段类型装换为DataX可识别的字段类型。
并拼接Json的MysqlReader配置信息,采用QuerySQLMode的配置模式,根据Mysql表元数据信息生成一条SQL查询语句来声明需要同步的数据。在SQL语句中,查询的字段数量、字段名称与字段顺序与Mysql完全相同,并按照规则对数据进行轻度清洗加工,具体包括去除文本类字段中的回车、换行、特定字符,对数值类字段进行空值填充等。还可以拼接Json中其他的配置信息,例如HDFS文件路径,Mysql数据源的连接信息等。完成上述Json拼接后,得到DataX运行所需的Json配置文件。
本领域技术人员可以理解的是,上述实现方式不限于DataX,其他类似的ETL软件都能够相应执行与上面类似的流程。
最后,连接Hive数据库,执行ODS建表语句,生成一张ODS表。分别生成Mysql与ODS数据表的探查语句,具体可以包括:查询表数据量、查询表的TOP N数据字段内容、对表的数值类型的字段分别进行sum。之后调用DataX读取Json配置文件,执行数据同步任务,将Mysql数据库的一张表同步到ODS表中。并执行Mysql的数据探查脚本,输出Mysql数据探查文件。在上述步骤执行完成后,执行ODS数据表的数据探查脚本,输出ODS数据探查文件。上面得到的数据探查文件进行一致性比对,若内容完全一致,则测试验证通过,若不完全一致,则输出差异内容。
在具体执行同步时,获取需要同步的ODS任务列表,根据的优先级对列表进行排序。然后使用mkfifo创建有名管道文件,用于不相关进程之间的通信,mkfifo是一个建立实名管道文件的命令,在Linux系统上,任何两个不相关的进程都可以通过这个管道文件进行通信,如果管道中没有数据,那么取管道数据的操作就会堵塞,直到管道内进入数据。在管道中插入N行数据(也就是准备了N个执行令牌,并行度为N),管道文件的数据有读取即删除的特点。主循环读取任务列表。比如,读取管道文件的1行数据,执行1个同步任务,并将同步任务放入后台执行,主循环继续处理下一个任务;当管道文件中的N行数据全部被读出后,主循环堵塞等待。执行完1个同步任务后,在管道文件中插入1行数据,此时主循环能够继续处理下一个任务。循环往复,直至执行完成所有任务。
上述步骤可以采用Shell脚本开发,具体有多种方式:可以将其配置到Linux自带的Crontab中;可以将其配置Azkaban、DolphinScheduler等工具上;也可以集成到Web应用系统中,使用Quartz等框架来实现。
为了方便管理,可以记录同步任务的执行日志,具体可以使用两种日志格式,一种是提供结构化日志,将每一张ODS表的任务运行情况记录在Mysql库的日志表中;另一种是任务运行的详细日志记录的日志文件中,当任务运行出现错误时,用于定位错误原因。
具体的记录步骤为,当开始执行一个ODS任务时,将任务类型、任务名称、任务状态、任务执行开始时间插入日志表中。当执行完一个ODS任务时,更新任务执行完成时间,判断任务是否成功并更新任务执行状态。还可以解析DataX执行时输出的详细日志信息,解析出每一个ODS任务的任务读出数据量、任务平均流量、记录写入速度、读出记录总数、读写失败总数等等信息,并更新到日志表中。
当所有ODS任务执行完成后,以日志表为基础数据,在Mysql中生成任务统计数据表,具体可以包括以下指标:任务总数、成功任务数、失败任务数、任务执行总时长、任务执行平均时长、同步数据条数、同步数据量等等,指标对应维度包括:时间维度(当天、当月、当年)、来源业务系统维度等等。之后以日志表为基础数据,在Mysql中生成任务错误清单,除基础信息外,根据任务日志的存储规范,拼接出每一个出错任务对应的日志文件路径。
上述产生的任务统计数据表和任务错误清单均以Mysql表的形式进行存储,使用该表生成任务统计报告,并以邮件附件的形式发送给运维人员。如果需要集成到其他应用系统中,查询Mysql表即可。
基于上述实施例提供的数据表生成的方法,相应地,本申请还提供了数据表生成的装置的具体实现方式。请参见以下实施例。
首先参见图4,本申请实施例提供的数据表生成的装置400,包括以下模块:
获取模块401,用于获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型。
查询模块402,用于查询所述源数据库类型对应的源数据库中的元数据信息。
拼接模块403,用于将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句。
组合模块404,用于根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件。
同步模块405,用于通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
本申请上述的方法,通过获取包括源数据库类型的待生成操作数据存储层表的配置信息,然后查询所述源数据库类型对应的源数据库中的元数据信息,根据得到的元数据信息生成建表语句以及相应的数据同步配置文件,并根据建表语句,在操作数据存储层建立数据表,根据同步配置文件向建立的数据表同步源数据库中的数据。这样,可以自动生成ODS层的建表语句、数据同步工具运行所需的配置文件,从而完成ODS层的数据库搭建。
作为本申请的一种实现方式,数据表生成的装置400,还包括:
连接模块,用于基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接。
查找模块,用于通过所述源数据库,查找元数据信息。
本申请的上述方式,通过基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接,在连接到源数据库之后,再进行元数据信息的查找。通过建立与源数据库的连接,更准确的获取到元数据信息。
作为本申请的一种实现方式,数据表生成的装置400,还包括:
拼接模块,用于将所述元数据信息与数据定义语言的固定信息进行拼接,得到数据定义语言语句,所述固定信息为所述数据定义语言中包括的字段信息。
映射模块,用于通过预设映射规则,将目标元数据信息的字段类型映射为预设数据库工具的字段类型,并与所述数据定义语言语句拼接。
确定模块,用于将拼接后的所述数据定义语言语句作为建表语句。
本申请的上述方式,通过将所述元数据信息与数据定义语言的固定信息进行拼接,之后再将目标元数据信息的字段类型映射为预设数据库工具的字段类型之后,再拼接得到完整的建表语句。能够在字段类型不匹配的情况下,得到建表语句。
作为本申请的一种实现方式,数据表生成的装置400,还包括:
确定模块,用于根据数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板。
填充模块,用于按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。
本申请的上述方式,通过数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板,然后将元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。可以利用数据交换格式模板快速得到数据同步配置文件。
作为本申请的一种实现方式,数据表生成的装置400,还包括:
检测模块,用于检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配。
转换模块,用于在检测到所述预设元数据组合关系的所述元数据信息的字段类型,与所述数据交换格式模板对应的字段类型不匹配的情况下,将所述元数据信息中的不匹配数据转换为与所述数据交换格式模板匹配的字段类型。
填充模块,用于去除所述元数据信息中的预设字符,并对数据交换格式模板中的空值进行填充,得到数据同步配置文件。
本申请的上述方式,通过检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配,如果不匹配,则进行字段类型的转换,并去除所述元数据信息中的预设字符,对数据交换格式模板中的空值进行填充,得到数据同步配置文件。保证数据同步配置文件符合规范。
作为本申请的一种实现方式,数据表生成的装置400,还包括:
生成模块,用于根据所述建表语句,生成对应的操作数据存储层表。
生成模块,还用于分别生成所述源数据库以及所述操作数据存储层表的探查语句。
同步模块,用于根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
执行模块,用于在数据同步的过程中,执行所述源数据库的探查语句,得到源数据库探查文件。
执行模块,还用于执行所述数据存储表的探查语句,得到数据存储表探查文件。
输出模块,用于在所述源数据库探查文件与所述数据存储表的探查文件不一致的情况下,输出差异部分信息。
本申请的上述方式,通过分别生成所述源数据库以及所述操作数据存储层表的探查语句,在数据同步的过程中,分别执行两种探查语句。从而进行同步结果的测试验证,保证结果的可靠性。
作为本申请的一种实现方式,数据表生成的装置400,还包括:
排序模块,用于获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序。
获取模块,用于获取预设数量的执行令牌。
执行模块,用于按照所述数据同步任务列表,执行数据同步任务,每个执行中的数据同步任务与一个执行令牌对应。
本申请的上述方式,通过获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序,并按照多个令牌进行数据同步任务的并行执行。能够多线程的执行数据同步任务,提高效率。
本申请实施例提供的数据表生成的装置中的各个模块可以实现上述数据表生成的方法中的各个步骤,并达到相应效果,为简洁描述,在此不再赘述。
图5示出了本申请实施例提供的数据表生成的硬件的结构示意图。
在数据表生成的设备可以包括处理器501以及存储有计算机程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器502可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关容灾设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的任意一个实施例的数据表生成的方法所描述的操作。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以实现上述实施例中的任意一种数据表生成的方法。
在一个示例中,数据表生成的设备还可包括通信接口503和总线510。其中,如图5所示,处理器501、存储器502、通信接口503通过总线510连接并完成相互间的通信。
通信接口503,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线510包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线510可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的数据表生成的方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据表生成的方法。
但是,需要明确,本申请并不局限于上文所描述并在图中示出的特定配置和处理。并且,为了简明起见,这里省略对已知方法技术的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
本申请可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本申请的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本申请的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本申请的范围之中。
本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;不定冠词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。
Claims (12)
1.一种数据表生成的方法,其特征在于,所述方法包括:
获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型;
查询所述源数据库类型对应的源数据库中的元数据信息;
将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句;
根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件;
通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
2.根据权利要求1所述的数据表生成的方法,其特征在于,所述配置信息包括与源数据库连接的连接方式;所述通过所述源数据库类型,查询对应的源数据库中的元数据信息,包括:
基于所述源数据库的连接方式对应的数据库驱动,建立与所述源数据库类型对应的源数据库的连接;
通过所述源数据库,查找元数据信息。
3.根据权利要求1所述的数据表生成的方法,其特征在于,所述将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句,包括:
将所述元数据信息与数据定义语言的固定信息进行拼接,得到数据定义语言语句,所述固定信息为所述数据定义语言中包括的字段信息;
通过预设映射规则,将目标元数据信息的字段类型映射为预设数据库工具的字段类型,并与所述数据定义语言语句拼接;
将拼接后的所述数据定义语言语句作为建表语句。
4.根据权利要求1所述的数据表生成的方法,其特征在于,所述根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件,包括:
根据数据库类型和数据交换格式模板的对应关系,确定与所述源数据库类型对应的数据交换格式模板;
按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件。
5.根据权利要求4所述的数据表生成的方法,其特征在于,所述按照所述预设元数据组合关系将所述元数据信息填充至所述数据交换格式模板,得到数据同步配置文件,包括:
检测所述预设元数据组合关系的所述元数据信息与所述数据交换格式模板是否匹配;
在检测到所述预设元数据组合关系的所述元数据信息的字段类型,与所述数据交换格式模板对应的字段类型不匹配的情况下,将所述元数据信息中的不匹配数据转换为与所述数据交换格式模板匹配的字段类型;
去除所述元数据信息中的预设字符,并对数据交换格式模板中的空值进行填充,得到数据同步配置文件。
6.根据权利要求1所述的数据表生成的方法,其特征在于,所述通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据,包括:
根据所述建表语句,生成对应的操作数据存储层表;
分别生成所述源数据库以及所述操作数据存储层表的探查语句;
根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据;
在数据同步的过程中,执行所述源数据库的探查语句,得到源数据库探查文件;
执行所述数据存储表的探查语句,得到数据存储表探查文件;
在所述源数据库探查文件与所述数据存储表的探查文件不一致的情况下,输出差异部分信息。
7.根据权利要求1至6中任一项所述的数据表生成的方法,其特征在于,在所述通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据之后,所述方法还包括:
获取数据同步任务列表,根据的优先级对所述列表中的数据同步任务进行排序;
获取预设数量的执行令牌;
按照所述数据同步任务列表,执行数据同步任务,每个执行中的数据同步任务与一个执行令牌对应。
8.根据权利要求7所述的数据表生成的方法,其特征在于,所述执行数据同步任务,包括:
在开始数据同步任务的情况下,在日志表中记录任务基本信息以及任务开始时间;
在数据同步任务执行完成的情况下,在日志表中的对应位置记录任务完成时间以及任务完成状态。
9.一种数据表生成的装置,其特征在于,所述装置包括:
获取模块,用于获取待生成操作数据存储层表的配置信息,所述配置信息包括源数据库类型;
查询模块,用于查询所述源数据库类型对应的源数据库中的元数据信息;
拼接模块,用于将所述元数据信息与预设建表语句对应的固定信息进行拼接,生成对应的建表语句;
组合模块,用于根据所述源数据库类型对应的预设元数据组合关系,确定所述元数据信息组合后对应的数据同步配置文件;
同步模块,用于通过执行所述建表语句,在操作数据存储层建立数据表,并根据所述数据同步配置文件向所述操作数据存储层表中同步源数据库中的数据。
10.一种数据表生成的设备,其特征在于,所述设备包括:处理器,以及存储有计算机程序指令的存储器;所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-8任意一项所述的数据表生成的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-8任意一项所述的数据表生成的方法。
12.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-8任意一项所述的数据表生成的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410376339.5A CN118152405A (zh) | 2024-03-29 | 2024-03-29 | 数据表生成的方法、装置、设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410376339.5A CN118152405A (zh) | 2024-03-29 | 2024-03-29 | 数据表生成的方法、装置、设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152405A true CN118152405A (zh) | 2024-06-07 |
Family
ID=91285214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410376339.5A Pending CN118152405A (zh) | 2024-03-29 | 2024-03-29 | 数据表生成的方法、装置、设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118152405A (zh) |
-
2024
- 2024-03-29 CN CN202410376339.5A patent/CN118152405A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
US10169337B2 (en) | Converting data into natural language form | |
US8260742B2 (en) | Data synchronization and consistency across distributed repositories | |
CN103514223B (zh) | 一种数据仓库数据同步方法和系统 | |
US11237883B2 (en) | Distillation of various application interface data structures distributed over distinctive repositories to form a data source of consolidated application interface data components | |
US20120226658A1 (en) | Data model versioning for document databases | |
US20190197130A1 (en) | Ensuring consistency in distributed incremental content publishing | |
US8200702B2 (en) | Independently variably scoped content rule application in a content management system | |
CN111339041A (zh) | 文件解析入库、文件生成方法及装置 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN113626416A (zh) | 数据校验的方法、装置、计算设备和存储介质 | |
US8965797B2 (en) | Explosions of bill-of-materials lists | |
CN112783482B (zh) | 一种可视化表单生成方法、装置、设备及存储介质 | |
CN113051259A (zh) | 一种用于门店经营的多数据源结构差异处理方法及系统 | |
CN116701355A (zh) | 数据视图处理方法、装置、计算机设备及可读存储介质 | |
CN112463857A (zh) | 基于关系数据库支持回溯数据查询的数据处理方法及系统 | |
CN118152405A (zh) | 数据表生成的方法、装置、设备、存储介质及产品 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN114791882A (zh) | 变量命名冲突解决方法和装置、电子设备、存储介质 | |
CN113934729A (zh) | 一种基于知识图谱的数据管理方法、相关设备及介质 | |
CN114443777B (zh) | 多数据聚合管理方法、装置、设备及系统 | |
US10824671B2 (en) | Organizing multiple versions of content | |
CN115576959B (zh) | 实时质检方法、装置、电子设备及存储介质 | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 | |
CN116150105B (zh) | 一种电子档案长期保存封装包的读取和解析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |