CN112612797B - 多源同表数据加载方法、装置、设备及介质 - Google Patents
多源同表数据加载方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112612797B CN112612797B CN202011620757.2A CN202011620757A CN112612797B CN 112612797 B CN112612797 B CN 112612797B CN 202011620757 A CN202011620757 A CN 202011620757A CN 112612797 B CN112612797 B CN 112612797B
- Authority
- CN
- China
- Prior art keywords
- data
- source
- target
- loading
- name
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种多源同表数据加载方法、装置、设备及介质。该方法包括:获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表。由此,无需每个表都开发一个任务,解决了数据仓库表数量多、任务数量多及任务配置繁琐的问题,提高了数据仓库的数据加载效率,降低了数据仓库的繁琐程度。
Description
技术领域
本发明涉及数据仓库数据加载领域,特别涉及一种多源同表数据加载方法、装置、设备及介质。
背景技术
当前,随着电商平台业务线不断增加,由于拼经销业务线是根据供应商来创建数据库,一个供应商对应一个数据库,每个数据库里的表数量及表结构完全一样。以拼经销为例,假定有100家供应商入驻,对应就有100个源数据库,每个源数据库里包含200张源数据表,按照正常的数据加载方案,数据仓库中会有2万张表,每个表对应一个数据加载任务,就对应有2万个任务。但随着供应商数量的增加,数据仓库中表的数量及任务数量呈指数级增加,给数据仓库数据加载带来非常大的挑战,对于数据仓库的应用及维护带来非常大的不便,当数据仓库需要增加新表或者增加新供应商的时候,数据仓库的配置就显得非常的繁琐且极易出现问题,开发的工作量也非常的大,每个表都需要独立开发一个任务。并且,任务数量增加之后,后续的调度配置非常的复杂且极容易出现遗漏及错误。降低了数据仓库的数据加载效率以及数据仓库的繁琐程度。
发明内容
有鉴于此,本发明的目的在于提供一种多源同表数据加载方法、装置、设备及介质,能够提高数据仓库的数据加载效率,降低数据仓库的繁琐程度。其具体方案如下:
第一方面,本申请公开了一种多源同表数据加载方法,包括:
获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;
根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;
运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表。
可选的,所述数据源库配置表包含server ID、源主机名、源数据库名、源用户名、源密码、端口号、目标主机名、目标数据库名、目标用户名和目标用户密码;
所述数据源表配置表包含server ID、目标表名、源数据表名、增量字段、增量值、增量标识、查询字段和过滤条件。
可选的,所述根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码,包括:
根据所述目标表名查询所述数据源表配置表中对应的增量标识,以确定数据加载方式;
根据所述数据源表配置表中的server ID,从所述数据源库配置表中获取对应的源数据库名;
若所述数据加载方式为增量加载,则基于所述目标表名对应的增量值、过滤条件、源数据库名和源数据表名生成数据查询代码;
若所述数据加载方式为全量加载,则基于所述目标表名对应的过滤条件、源数据库名和源数据表名生成数据查询代码,并清空所述目标数据表。
可选的,所述运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表,包括:
若所述数据加载方式为增量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表;
根据所述数据查询代码中的增量值,获取所述源数据表从最大记录更新时间到当前时间之间更新的数据内容;
将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表。
可选的,所述运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表,包括:
若所述数据加载方式为全量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表;
获取所述源数据表中的全部数据内容;
将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表。
可选的,所述将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表,包括:
将获取的多个源数据表的数据内容存放至中间表,并对所述数据内容添加对应的源数据库标识;
利用所述中间表,将所述数据内容和对应的源数据库标识加载至所述目标数据表。
可选的,所述将所述数据内容加载至所述目标数据表之后,还包括:
通过所述中间表获取所述源数据表的最新更新时间,并将所述最新更新时间作为增量值记录至所述数据源表配置表;
清空所述中间表。
第二方面,本申请公开了一种多源同表数据加载装置,包括:
目标表名获取模块,用于获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;
查询代码生成模块,用于根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;
数据加载模块,用于运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的多源同表数据加载方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的多源同表数据加载方法。
本申请中,通过获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;然后,根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;最后,运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表。本申请在获取目标表名后,通过查询数据源库配置表和数据源表配置表,可以确定出不同源数据库中与目标表名类型相同的所有源数据表,然后通过全量加载方式或增量加载方式,获取到相应的数据内容存入数据仓库中的目标数据表;可见,不同源数据库中同一类型源数据表的数据,存放在数据仓库的一个目标数据表内,由此,数据仓库中数据表的数量不会受到源数据库数量的影响;并且,每次数据加载通过自动查询数据源库配置表和数据源表配置表,自动拼接生成数据查询代码,由此,数据加载使用统一的任务模板,无需每个表都开发一个任务,任务执行时长缩减到一个表的任务加载时长;解决了数据仓库表数量多、任务数量多,任务配置繁琐,以及任务加载耗时的问题,提高了数据仓库的数据加载效率,降低了数据仓库的繁琐程度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种多源同表数据加载方法流程图;
图2为本申请提供的一种数据源库配置表结构举例示意图;
图3为本申请提供的一种数据源表配置表结构举例示意图;
图4为本申请提供的一种具体的多源同表数据加载方法流程图;
图5为本申请提供的一种多源同表数据加载装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
现有技术中,源数据库中的每一个源数据表对应数据仓库中的一个表,数据仓库中表的数量及任务数量不断增加后,给数据仓库数据加载带来非常大的挑战,同时不便于数据仓库的应用及维护,增加了数据仓库配置的繁琐程度和开发的工作量,降低了数据仓库的数据加载效率。为了克服上述技术问题,本申请提出一种多源同表数据加载方法,能够提高数据仓库的数据加载效率,降低数据仓库的繁琐程度。
本申请实施例公开了一种多源同表数据加载方法,参见图1所示,该方法可以包括以下步骤:
步骤S11:获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名。
本实施例中,首先获取目标表名,可以理解的是,上述目标表名为数据仓库中需要加载数据的目标数据表的表名。
步骤S12:根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载。
本实施例中,在获取到上述目标表名后,根据上述目标表名查询预先创建的数据源库配置表和数据源表配置表,通过与上述目标表名对应的目标字段判断数据加载方式,并根据数据源库配置表和数据源表配置表中的参数字段拼接生成数据查询代码,其中,上述数据加载方式包括全量加载和增量加载,增量加载可以理解为根据一个时间节点获取最近一段时间内新增的数据,而全量加载不考虑时间因素。
本实施例中,所述数据源库配置表包含server ID、源主机名、源数据库名、源用户名、源密码、端口号、目标主机名、目标数据库名、目标用户名和目标用户密码;所述数据源表配置表包含server ID、目标表名、源数据表名、增量字段、增量值、增量标识、查询字段和过滤条件。举例说明,例如图2所示的数据源库配置表,其中,server ID为源数据库与源数据表之间的关联字段,源数据库名为源数据库的库名,例如,每个供应商都对应的一个源数据库,以及相应的源主机名、源数据库名、源用户名和源密码,目标数据库名为数据仓库中数据库的名称,本实施例中,数据仓库中含有一个目标数据库;其中,源主机名、源用户名、源密码、端口号、目标主机名、目标数据库名、目标用户名和目标用户密码可以作为服务器连接信息,动态传入连接服务器。另外,需要说明的是,多个供应商采用相同的数据分类存储系统,因此不同源数据库含有相同数量的源数据表,并且数据分类的标准相同。
例如图3所示的数据源表配置表,增量标识字段表征是否增量,即是否为增量加载方式,可以通过0/1标识表征;增量值为具体的一个时间字段;过滤条件为可以自定义的数据过滤条件,也可以不设置;图3中配置有三个目标表名,但最终会写入目标数据库中表名为crmeb_product的目标数据表内,此处可以理解为数据加载的中间过程。并且,当数据仓库需要增删表是通过数据源库配置表和数据源表配置表进行配置即可,极大简化了增删表的配置过程。
本实施例中,所述根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码,可以包括:根据所述目标表名查询所述数据源表配置表中对应的增量标识,以确定数据加载方式;根据所述数据源表配置表中的server ID,从所述数据源库配置表中获取对应的源数据库名;若所述数据加载方式为增量加载,则基于所述目标表名对应的增量值、过滤条件、源数据库名和源数据表名生成数据查询代码;若所述数据加载方式为全量加载,则基于所述目标表名对应的过滤条件、源数据库名和源数据表名生成数据查询代码,并清空所述目标数据表。
可以理解的是,在获取到目标表名之后,根据目标表名查询数据源表配置表,通过数据源表配置表中对应的增量标识字段确定数据加载方式,根据数据源表配置表中的server ID以及数据源库配置表中的server ID,从数据源库配置表中获取对应的源数据库名,即确定出目标数据表待加载数据的数据库来源和数据表来源;若确定出的数据加载方式为增量加载,则基于目标表名对应的增量值、过滤条件、源数据库名和源数据表名生成数据查询代码,即将增量值和过滤条件字段拼接作为整体的过滤条件,由此实现增量加载;若确定出的数据加载方式为全量加载,则基于目标表名对应的过滤条件、源数据库名和源数据表名生成数据查询代码,并清空上述目标数据表。其中,上述增量值为每次数据加载任务完成后记录的源数据库的更新时间。由此一来,通过数据源库配置表和数据源表配置表中参数进行代码拼接
步骤S13:运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表。
本实施例中,通过运行上述数据查询代码,根据源数据库名和源数据表名,从对应的源数据库的对应源数据表中根据过滤条件获取目标类型的数据内容,若数据查询代码中含有增量值,则根据增量值的时间点以及过滤条件,获取该时间点到当前时间点之间的目标数据内容。若数据查询代码中没有增量值,则不考虑时间因素,直接根据过滤条件从对应的源数据库中获取加载数据内容。多次数据加载后,最终可以达到数据仓库表的数量跟一个源数据库表的数量保持一致,调度配置任务的数量跟数据仓库表数量保持一致。
由上可见,本实施例中,在获取目标表名后,通过查询数据源库配置表和数据源表配置表,可以确定出不同源数据库中与目标表名类型相同的所有源数据表,然后通过全量加载方式或增量加载方式,获取到相应的数据内容存入数据仓库中的目标数据表;可见,不同源数据库中同一类型源数据表的数据,存放在数据仓库的一个目标数据表内,由此,数据仓库中数据表的数量不会受到源数据库数量的影响;并且,每次数据加载通过自动查询数据源库配置表和数据源表配置表,自动拼接生成数据查询代码,由此,数据加载使用统一的任务模板,无需每个表都开发一个任务,任务执行时长缩减到一个表的任务加载时长;解决了数据仓库表数量多、任务数量多,任务配置繁琐,以及任务加载耗时的问题,,提高了数据仓库的数据加载效率,降低了数据仓库的繁琐程度。
本申请实施例公开了一种具体的多源同表数据加载方法,参见图4所示,该方法可以包括以下步骤:
步骤S21:获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名。
步骤S22:根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载。
步骤S23:若所述数据加载方式为增量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表。
步骤S24:根据所述数据查询代码中的增量值,获取所述源数据表从最大记录更新时间到当前时间之间更新的数据内容。
本实施例中,数据查询代码运行时,根据数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与目标数据表的类型相同的源数据表,然后根据增量值字段记录的最大记录更新时间,获取最大记录更新时间到当前时间之间更新的数据内容。
步骤S25:将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表。
可以理解的是,上述数据内容的获取可以通过中间表进行,即将获取的内容实时存放至中间表,在上述数据查询代码全部运行完成之后,即与目标数据表的类型相同的多个源数据表的数据内容均获取完成后,将中间表中的所有数据内容再导入上述目标数据表。
本实施例中,若数据加载方式为全量加载,则根据数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与目标数据表的类型相同的源数据表;然后获取源数据表中的全部数据内容,最后将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表。
本实施例中,所述将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表,可以包括:将获取的多个源数据表的数据内容存放至中间表,并对所述数据内容添加对应的源数据库标识;利用所述中间表,将所述数据内容和对应的源数据库标识加载至所述目标数据表。可以理解的是,中间表跟目标数据表都会自带一个源数据库标识,如图3中database_name字段,该字段用于区分数据来源;并且,中间表获取数据后根据database_name和product_id字段对目标数据表进行更新及插入操作。
步骤S26:通过所述中间表获取所述源数据表的最新更新时间,并将所述最新更新时间作为增量值记录至所述数据源表配置表;清空所述中间表。
本实施例中,源数据表的数据内容获取过程中,可以同时获取源数据表的最新更新时间,然后将上述最新更新时间记录至数据源表配置表的增量值字段,以便将该最新更新时间作为下次进行增量加载的起始时间,即上述最大记录更新时间。然后清空上述中间表,为下次数据加载提前整理好环境。
其中,关于上述步骤S21和步骤S22的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
由上可见,通过将获取的多个源数据表的数据内容存放至中间表,并利用中间表将本次获取的所有数据内容加载至目标数据表,无需每个表都开发一个任务,任务执行时长缩减到一个表的任务加载时长,当数据仓库需要进行数据加载时只需要发送目标表名即可自动进行数据加载。
相应的,本申请实施例还公开了一种多源同表数据加载装置,参见图5所示,该装置包括:
目标表名获取模块11,用于获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;
查询代码生成模块12,用于根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;
数据加载模块13,用于运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表。
其中,所述数据源库配置表包含server ID、源主机名、源数据库名、源用户名、源密码、端口号、目标主机名、目标数据库名、目标用户名和目标用户密码;所述数据源表配置表包含server ID、目标表名、源数据表名、增量字段、增量值、增量标识、查询字段和过滤条件。
在一些具体实施例中,所述查询代码生成模块12具体可以包括:
加载方式确定单元,用于根据所述目标表名查询所述数据源表配置表中对应的增量标识,以确定数据加载方式;
参数获取单元,用于根据所述数据源表配置表中的server ID,从所述数据源库配置表中获取对应的源数据库名;
增量加载查询代码生成单元,用于若所述数据加载方式为增量加载,则基于所述目标表名对应的增量值、过滤条件、源数据库名和源数据表名生成数据查询代码;
全量加载查询代码生成单元,用于单元,用于若所述数据加载方式为全量加载,则基于所述目标表名对应的过滤条件、源数据库名和源数据表名生成数据查询代码,并清空所述目标数据表。
由上可见,本实施例中,在获取目标表名后,通过查询数据源库配置表和数据源表配置表,可以确定出不同源数据库中与目标表名类型相同的所有源数据表,然后通过全量加载方式或增量加载方式,获取到相应的数据内容存入数据仓库中的目标数据表;可见,不同源数据库中同一类型源数据表的数据,存放在数据仓库的一个目标数据表内,由此,数据仓库中数据表的数量不会受到源数据库数量的影响;并且,每次数据加载通过自动查询数据源库配置表和数据源表配置表,自动拼接生成数据查询代码,由此,数据加载使用统一的任务模板,无需每个表都开发一个任务,任务执行时长缩减到一个表的任务加载时长;解决了数据仓库表数量多、任务数量多,任务配置繁琐,以及任务加载耗时的问题,,提高了数据仓库的数据加载效率,降低了数据仓库的繁琐程度。
在一些具体实施例中,所述数据加载模块13具体可以包括:
增量加载单元,用于若所述数据加载方式为增量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表;根据所述数据查询代码中的增量值,获取所述源数据表从最大记录更新时间到当前时间之间更新的数据内容;将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表;
全量加载单元,用于若所述数据加载方式为全量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表;获取所述源数据表中的全部数据内容;将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表;
标识配置单元,用于将获取的多个源数据表的数据内容存放至中间表,并对所述数据内容添加对应的源数据库标识;利用所述中间表,将所述数据内容和对应的源数据库标识加载至所述目标数据表。
进一步的,本申请实施例还公开了一种电子设备,参见图6所示,图中的内容不能被认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的多源同表数据加载方法中的相关步骤。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括目标表名在内的数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的多源同表数据加载方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的多源同表数据加载方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种多源同表数据加载方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种多源同表数据加载方法,其特征在于,包括:
获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;
根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;
运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表;
所述数据源库配置表包含server ID、源主机名、源数据库名、源用户名、源密码、端口号、目标主机名、目标数据库名、目标用户名和目标用户密码;
所述数据源表配置表包含server ID、目标表名、源数据表名、增量字段、增量值、增量标识、查询字段和过滤条件;
所述根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码,包括:
根据所述目标表名查询所述数据源表配置表中对应的增量标识,以确定数据加载方式;
根据所述数据源表配置表中的server ID,从所述数据源库配置表中获取对应的源数据库名;
若所述数据加载方式为增量加载,则基于所述目标表名对应的增量值、过滤条件、源数据库名和源数据表名生成数据查询代码;
若所述数据加载方式为全量加载,则基于所述目标表名对应的过滤条件、源数据库名和源数据表名生成数据查询代码,并清空所述目标数据表。
2.根据权利要求1所述的多源同表数据加载方法,其特征在于,所述运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表,包括:
若所述数据加载方式为增量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表;
根据所述数据查询代码中的增量值,获取所述源数据表从最大记录更新时间到当前时间之间更新的数据内容;
将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表。
3.根据权利要求1所述的多源同表数据加载方法,其特征在于,所述运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表,包括:
若所述数据加载方式为全量加载,则根据所述数据查询代码中的源数据库名和源数据表名,确定出相应的源数据库中与所述目标数据表的类型相同的源数据表;
获取所述源数据表中的全部数据内容;
将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表。
4.根据权利要求2或3所述的多源同表数据加载方法,其特征在于,所述将获取的多个源数据表的数据内容存放至中间表,并利用所述中间表将所述数据内容加载至所述目标数据表,包括:
将获取的多个源数据表的数据内容存放至中间表,并对所述数据内容添加对应的源数据库标识;
利用所述中间表,将所述数据内容和对应的源数据库标识加载至所述目标数据表。
5.根据权利要求2或3所述的多源同表数据加载方法,其特征在于,所述将所述数据内容加载至所述目标数据表之后,还包括:
通过所述中间表获取所述源数据表的最新更新时间,并将所述最新更新时间作为增量值记录至所述数据源表配置表;
清空所述中间表。
6.一种多源同表数据加载装置,其特征在于,包括:
目标表名获取模块,用于获取目标表名;所述目标表名为数据仓库中待加载数据的目标数据表的表名;
查询代码生成模块,用于根据所述目标表名查询预先创建的数据源库配置表和数据源表配置表,以确定数据加载方式,并生成数据查询代码;其中,所述数据加载方式包括全量加载和增量加载;
数据加载模块,用于运行所述数据查询代码并根据所述数据加载方式,从不同的源数据库中获取与所述目标数据表的类型相同的多个源数据表的数据内容,并将所述数据内容加载至所述目标数据表;
其中,所述数据源库配置表包含server ID、源主机名、源数据库名、源用户名、源密码、端口号、目标主机名、目标数据库名、目标用户名和目标用户密码;所述数据源表配置表包含server ID、目标表名、源数据表名、增量字段、增量值、增量标识、查询字段和过滤条件;
所述查询代码生成模块具体包括:
加载方式确定单元,用于根据所述目标表名查询所述数据源表配置表中对应的增量标识,以确定数据加载方式;
参数获取单元,用于根据所述数据源表配置表中的server ID,从所述数据源库配置表中获取对应的源数据库名;
增量加载查询代码生成单元,用于若所述数据加载方式为增量加载,则基于所述目标表名对应的增量值、过滤条件、源数据库名和源数据表名生成数据查询代码;
全量加载查询代码生成单元,用于若所述数据加载方式为全量加载,则基于所述目标表名对应的过滤条件、源数据库名和源数据表名生成数据查询代码,并清空所述目标数据表。
7.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的多源同表数据加载方法。
8.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至5任一项所述的多源同表数据加载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011620757.2A CN112612797B (zh) | 2020-12-30 | 2020-12-30 | 多源同表数据加载方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011620757.2A CN112612797B (zh) | 2020-12-30 | 2020-12-30 | 多源同表数据加载方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612797A CN112612797A (zh) | 2021-04-06 |
CN112612797B true CN112612797B (zh) | 2022-08-23 |
Family
ID=75249536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011620757.2A Active CN112612797B (zh) | 2020-12-30 | 2020-12-30 | 多源同表数据加载方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612797B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140214753A1 (en) * | 2012-12-28 | 2014-07-31 | Joseph Guerra | Systems and methods for multi-source data-warehousing |
CN107463661B (zh) * | 2017-07-31 | 2021-04-27 | 绿湾网络科技有限公司 | 数据的导入方法及装置 |
CN110309174A (zh) * | 2018-03-02 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 一种数据查询方法、装置和服务器 |
CN109669983B (zh) * | 2018-12-27 | 2020-11-10 | 杭州火树科技有限公司 | 可视化多数据源etl工具 |
CN110209728B (zh) * | 2019-04-22 | 2023-10-20 | 凯通科技股份有限公司 | 一种分布式异构数据库同步方法、电子设备及存储介质 |
CN110347747A (zh) * | 2019-06-14 | 2019-10-18 | 平安科技(深圳)有限公司 | 数据库间数据同步方法、系统、计算机设备及存储介质 |
-
2020
- 2020-12-30 CN CN202011620757.2A patent/CN112612797B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112612797A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11487707B2 (en) | Efficient file path indexing for a content repository | |
US8577848B2 (en) | Converting two-tier resource mapping to one-tier resource mapping | |
CN104679500A (zh) | 实体类自动生成实现方法及装置 | |
CN110888736A (zh) | 一种基于容器云平台的应用管理方法、系统及相关组件 | |
CN115421764A (zh) | 一种待升级模块识别方法、装置、设备及存储介质 | |
CN112035207A (zh) | 基于数据库的页面菜单动态加载方法及装置 | |
CN112131230B (zh) | 应用SaaS化实现方法、装置、设备及存储介质 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN112612797B (zh) | 多源同表数据加载方法、装置、设备及介质 | |
CN105447040A (zh) | 二进制文件管理、更新方法、装置以及系统 | |
CN112052222A (zh) | 异构对象存储集群访问方法、装置、设备及存储介质 | |
CN110597827A (zh) | 一种接口控制文件数据的存储方法及系统 | |
CN107463618B (zh) | 一种索引创建方法和装置 | |
CN114297202A (zh) | 一种服务器实体信息交互方法、装置、设备以及存储介质 | |
JP7381290B2 (ja) | 計算機システム及びデータの管理方法 | |
CN110333883B (zh) | 一种更新持久化数据的方法及装置 | |
KR20170125665A (ko) | M2M/IoT 플랫폼에서의 시맨틱 정보 관리 방법 | |
CN113656010B (zh) | 一种微服务自动创建代码仓库的方法、系统、设备和介质 | |
CN116226222B (zh) | 基于时序数据库的数据段标记处理方法及装置 | |
CN112748931B (zh) | 编译文件管理方法、调用方法、装置及电子设备 | |
CN114840217A (zh) | 一种编译方法、装置、设备及可读存储介质 | |
CN115310415B (zh) | 一种数据导出方法、装置、设备及存储介质 | |
CN112488649B (zh) | 基于流程引擎的流程关闭方法和装置 | |
CN116090423A (zh) | 一种产品档案生成方法、装置、设备及存储介质 | |
CN112600918B (zh) | 一种基于bs架构的工控边缘大数据高效处理方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |