CN117290415A - 数据加载方法、装置、计算机设备和计算机可读存储介质 - Google Patents

数据加载方法、装置、计算机设备和计算机可读存储介质 Download PDF

Info

Publication number
CN117290415A
CN117290415A CN202311027107.0A CN202311027107A CN117290415A CN 117290415 A CN117290415 A CN 117290415A CN 202311027107 A CN202311027107 A CN 202311027107A CN 117290415 A CN117290415 A CN 117290415A
Authority
CN
China
Prior art keywords
data
target
database
sql statement
loading
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
Application number
CN202311027107.0A
Other languages
English (en)
Inventor
柳开弘
黄郑正
徐小斌
廖子宇
郭永钱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Bank Co Ltd
CIB Fintech Services Shanghai Co Ltd
Original Assignee
Industrial Bank Co Ltd
CIB Fintech Services Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial Bank Co Ltd, CIB Fintech Services Shanghai Co Ltd filed Critical Industrial Bank Co Ltd
Priority to CN202311027107.0A priority Critical patent/CN117290415A/zh
Publication of CN117290415A publication Critical patent/CN117290415A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据加载方法、装置、计算机设备、存储介质和计算机程序产品。当业务***接收到数据提取请求时,确定与数据提取请求匹配的目标SQL语句,并对目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行目标SQL语句,当目标SQL语句执行成功时,获取中转数据库执行目标SQL语句后返回的目标数据,从而将目标数据加载到目标数据库中。以实现从EDIP提取数据并加载,由于本实施例是从装载了EDIP的数据库表文件对应数据的中转数据库中,通过SQL查询语句进行目标数据的提取,从而无需再对数据进行编码加工,因此,极大地提高了数据提取及加载的效率。

Description

数据加载方法、装置、计算机设备和计算机可读存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据加载方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着数据处理技术的发展,各种数据处理、数据存储技术层出不穷。企业数据集成平台EDIP(Enterprise Data Integration Platform)也应运而生,其基于制造业信息特征,在异构分布环境(操作***、网络、数据库)下提供透明、一致的信息访问和交互手段,对其上运行的应用进行管理,为应用提供服务,并支持各特定领域应用***的集成。
传统技术中,业务***需要从EDIP中获取上游***的数据,并装载到业务***自身的业务数据库之中。但是,由于从EDIP获取到的数据信息文件通常为上游***某一时刻数据库表内容的“镜像”,导致大部分的数据不能直接使用,而需要通过编码的方式对其进行数据加工。
然而,在庞大的数据量下,通过编码的方式对数据进行加工后再装载,极大地影响了数据装载效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据装载效率的数据加载方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种数据加载方法。所述方法包括:
当接收到数据提取请求时,确定与所述数据提取请求匹配的目标SQL语句;
对所述目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行所述目标SQL语句;所述中转数据库是根据企业数据集成平台EDIP的数据库表文件,装载对应的数据得到;
当所述目标SQL语句执行成功时,获取所述中转数据库执行所述目标SQL语句后返回的目标数据;
将所述目标数据加载到目标数据库中。
在其中一个实施例中,所述方法还包括:根据预先配置的待加载数据的表名和文件缓存目录,从EDIP中获取与所述表名对应的数据文件到本地缓存目录;从所述本地缓存目录中读取各个表头文件,识别所述表头文件中的表头字段信息集合,得到以所述表名为键、所述表头字段信息集合为值的原始散列表;根据所述待加载数据的表名及所需的列名,对所述原始散列表进行筛选,得到目标散列表;根据所述目标散列表向所述中转数据库装载对应的数据。
在其中一个实施例中,根据所述目标散列表向所述中转数据库装载对应的数据,包括:根据所述目标散列表中每个表的表名,确定中转数据库中是否存在对应的表名;当中转数据库中存在对应的表名,确定所述表名对应的表中的字段是否能覆盖所述目标散列表中表名对应的字段信息集合,若不能覆盖,从所述目标散列表中筛选出没有被覆盖的目标字段子集合,根据所述目标字段子集合更新所述中转数据库中与所述表名对应的表结构。
在其中一个实施例中,所述方法还包括:当所述目标SQL语句执行失败时,生成所述目标SQL语句的日志记录。
在其中一个实施例中,所述对所述目标SQL语句进行校验,包括:解析所述目标SQL语句的操作方式;当所述操作方式为查询操作或运算操作时,则校验通过;当所述操作方式为数据新增操作或数据修改操作时,确定所述目标SQL语句的操作范围,当所述操作范围与目标操作范围匹配时,则校验通过。
在其中一个实施例中,所述数据提取请求中携带有数据提取标识和参数组;所述确定与所述数据提取请求匹配的目标SQL语句,包括:根据所述数据提取标识,从预先配置的SQL语句模板中确定匹配的目标SQL语句模板;根据所述目标SQL语句模板中预先设置的参数占位信息,在对应位置填充所述参数组,生成与所述数据提取请求匹配的目标SQL语句。
第二方面,本申请还提供了一种数据加载装置。所述装置包括:
SQL语句确定模块,用于当接收到数据提取请求时,确定与所述数据提取请求匹配的目标SQL语句;
SQL语句校验模块,用于对所述目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行所述目标SQL语句;所述中转数据库是根据企业数据集成平台EDIP的数据库表文件,装载对应的数据得到;
数据获取模块,用于当所述目标SQL语句执行成功时,获取所述中转数据库执行所述目标SQL语句后返回的目标数据;
数据加载模块,用于将所述目标数据加载到目标数据库中。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上第一方面所述方法的步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面所述方法的步骤。
上述数据加载方法、装置、计算机设备、存储介质和计算机程序产品,当业务***接收到数据提取请求时,确定与数据提取请求匹配的目标SQL语句,并对目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行目标SQL语句,当目标SQL语句执行成功时,获取中转数据库执行目标SQL语句后返回的目标数据,从而将目标数据加载到目标数据库中。以实现从EDIP提取数据并加载,由于本实施例是从装载了EDIP的数据库表文件对应数据的中转数据库中,通过SQL查询语句进行目标数据的提取,从而无需再对数据进行编码加工,因此,极大地提高了数据提取及加载的效率。
附图说明
图1为一个实施例中数据加载方法的流程示意图;
图2为另一个实施例中生成中转数据库存步骤的流程示意图;
图3为一个实施例中向中转数据装置数据步骤的流程示意图;
图4为一个实施例中数据加载装置的结构框图;
图5为一个实施例中数据加载方法的应用环境图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种数据加载方法,以该方法应用于需要从EDIP中加载数据的业务***为例进行说明,具体包括以下步骤:
步骤102,当接收到数据提取请求时,确定与数据提取请求匹配的目标SQL语句。
其中,数据提取请求是业务***接收的从EDIP中提取数据的请求。目标SQL(Structured Query Language,结构化查询语文)语句则是与数据提取请求匹配的对数据库进行操作以查询相应数据的命令。
在本实施例中,当业务***接收到数据提取请求时,可以对数据提取请求进行解析,以确定与数据提取请求匹配的目标SQL语句。
具体地,数据提取请求中携带有数据提取标识和参数组。则确定与数据提取请求匹配的目标SQL语句,具体可以包括:根据数据提取标识,从预先配置的SQL语句模板中确定匹配的目标SQL语句模板;根据目标SQL语句模板中预先设置的参数占位信息,在对应位置填充参数组,生成与数据提取请求匹配的目标SQL语句。
其中,预先配置的SQL语句模板是基于不同的数据提取范围,而预先配置的与具体的数据提取范围对应的SQL查询语句。目标SQL语句模板则是与数据提取请求对应的SQL查询语句。数据提取标识则是用于唯一确定数据提取范围的标志或标记,因此,每一个数据提取标识具有对应的SQL语句模板,也即每一个数据提取标识表征了对应的数据提取范围。具体地,SQL语句模板中还允许用户填入参数占位信息,即SQL语句模板中预先设置了参数占位信息。因此,在本实施例中,业务***可以根据接收的数据提取请求中携带的数据提取标识,从预先配置的SQL语句模板中确定匹配的目标SQL语句模板,并根据目标SQL语句模板中预先设置的参数占位信息,将参数组的各元素填充至对应位置,从而生成与数据提取请求匹配的目标SQL语句。
步骤104,对目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行目标SQL语句。
其中,中转数据库是根据企业数据集成平台EDIP的数据库表文件,装载对应的数据得到的。校验具体可以是对目标SQL语句的操作范围和操作方式的合法性进行校验,当操作范围和操作方式均合法时则校验通过。而当操作范围和操作方式中的任一种不合法时则校验不通过。在本实施例中,业务***还可以对上述确定的目标SQL语句进行校验,当校验通过时,则基于预先设置的中转数据库执行目标SQL语句,即在预先设置的中转数据库中运行该目标SQL语句。
具体地,在一种场景下,对目标SQL语句进行校验,具体可以包括:解析目标SQL语句的操作方式;当操作方式为查询操作或运算操作时,则校验通过;而当操作方式为数据新增操作或数据修改操作时,则进一步确定目标SQL语句的操作范围,当操作范围与目标操作范围匹配时,则校验通过。而当操作范围与目标操作范围不匹配时,则校验不通过。其中,目标操作范围可以是允许目标SQL语句所执行的表对象的范围,例如,可以是临时表。
步骤106,当目标SQL语句执行成功时,获取中转数据库执行目标SQL语句后返回的目标数据。
其中,目标数据是中转数据库成功执行目标SQL语句后返回的数据,也是与数据提取请求对应的需要提取的数据。
在本实施例中,当目标SQL语句被中转数据库执行成功时,业务***还可以获取中转数据库执行目标SQL语句后返回的目标数据,即获取到需要提取的数据。
步骤108,将目标数据加载到目标数据库中。
其中,目标数据库可以是集成到业务***中的数据库,或者也可以是为业务***提供数据库服务的云数据平台等。具体地,业务***可以将上述步骤获取的目标数据加载到目标数据库中,从而实现从EDIP提取数据并加载。
上述数据加载方法中,当业务***接收到数据提取请求时,确定与数据提取请求匹配的目标SQL语句,并对目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行目标SQL语句,当目标SQL语句执行成功时,获取中转数据库执行目标SQL语句后返回的目标数据,从而将目标数据加载到目标数据库中。以实现从EDIP提取数据并加载,由于本实施例是从装载了EDIP的数据库表文件对应数据的中转数据库中,通过SQL查询语句进行目标数据的提取,从而无需再对数据进行编码加工,因此,极大地提高了数据提取及加载的效率。且通过SQL查询语句,能够智能化地根据实际需要装载的字段获取数据,从而能够减少多余数据的录入,提高装载性能。
在一个实施例中,上述方法还可以包括:当目标SQL语句执行失败时,生成目标SQL语句的日志记录。具体地,当目标SQL语句被中转数据库执行失败时,业务***还可以生成该目标SQL语句的日志记录,即将此次执行失败的SQL语句记录到日志文件中。从而便于对执行失败的语句进行修正后重新执行,且能够提高后续SQL语句的执行成功率。
在一个实施例中,如图2所示,上述方法还可以包括:
步骤202,根据预先配置的待加载数据的表名和本地缓存目录,周期性地从EDIP中获取与表名对应的数据文件到本地缓存目录。
其中,数据文件包括表头文件和表数据文件。在本实施例中,业务***可以预先配置需要加载的表头文件和表数据文件的表名和对应的本地缓存目录,进而可以从EDIP中下载与表名对应的最新日期的数据文件(包括表头文件和表数据文件)到本地缓存目录。
在一种场景下,在从EDIP中读取与表名对应的数据文件到本地缓存中时,可以根据预先配置的读取数据的一次性最大读取行数。例如,若预先配置的一次性最大读取行数为N,则每次从表数据文件中最多读取N行数据到内存,并根据后续步骤将对应的数据装载到中转数据库后,再执行下一次的数据读取。从而避免了大数据量文件读取时对业务***的性能影响。
进一步地,还可以将数据读取操作涉及到的表头文件和表数据文件标记为已读取状态,从而避免重复读取。
步骤204,从本地缓存目录中读取各个表头文件,识别表头文件中的表头字段信息集合,并得到以表名为键、表头字段信息集合为值的原始散列表。
具体地,业务***可以读取本地缓存目录的各个表头文件,表头文件中,包含了该表头所对应的表名以及其描述数据表各个字段的信息,字段信息包含了字段名、字段长度、字段类型。将这些信息读取出来作为表头字段信息集合,集合的一个元素则为一个字段信息。接着,生成以表名为键、表头字段信息集合为值的原始散列表。
步骤206,根据待加载数据的表名及所需的列名,对原始散列表进行筛选,得到目标散列表。
其中,目标散列表为最终需要装载的数据所对应的散列表。具体地,业务***还可以根据预先配置的待加载表名及所需的列名,对原始散列表进行筛选,以得到筛选的目标散列表。
步骤208,根据目标散列表向中转数据库装载对应的数据。
在本实施例中,业务***根据目标散列表向中转数据库装载对应的数据,从而实现将EDIP中的数据装载到中转数据库。而当业务***需要使用的时候,可以通过执行SQL语句对中转数据库中的数据进行提取,从而避免了大数据量加载时对业务***的性能影响。由业务***主动对中转数据库发出SQL加工语句获取结果业务数据,也避免了SQL注入对业务***的安全影响。
在一种场景下,图二所示的流程可以先于图一的流程,但并不是必然,本实施例中并不对此进行限定。
具体地,在向中转数据库装载对应的数据时,可以根据目标散列表中每个元素的字段信息及其值,构造出数据***SQL语句列表,然后将数据***SQL语句列表发送至中转数据库,实现数据的***,若中转数据库返回错误,则将此次执行的数据***SQL语句记录到日志之中,然后继续运行。若无错误则继续运行。
在一个实施例中,如图3所示,在步骤212中,根据目标散列表向中转数据库装载对应的数据,具体还可以包括:
步骤302,根据目标散列表中每个表的表名,确定中转数据库中是否存在对应的表名。
具体地,根据目标散列表中每个表的表名,在中转数据库中查询是否存在相同的表名,例如,可以通过构造表结构检查的SQL语句进行查询,当查询后,确定中转数据库中不存在相同的表名时,则执行步骤304,当确定中转数据库中存在相同的表名时,则执行步骤306。
步骤304,根据表名在中转数据库中创建对应的表。
具体地,当中转数据库中不存在对应的表名,则根据表名在中转数据库中创建对应的表。例如,可以通过构造建表SQL语句,并基于建表SQL语句在中转数据库中创建对应的表。
在一种场景下,为了能在一个表中存放多时间维度的数据,构造的建表SQL语句还可以加上代表数据导出时间的列,从而对多时间维度的数据进行标记。
步骤306,确定表名对应的表中的字段是否能覆盖目标散列表中表名对应的字段信息集合。
具体地,当中转数据库中存在对应的表名时,则进一步确定表名对应的表中的字段是否能覆盖目标散列表中表名对应的字段信息集合。若不能覆盖,则执行步骤308,若能覆盖,则执行步骤310。
步骤308,从目标散列表中筛选出没有被覆盖的目标字段子集合,根据目标字段子集合更新中转数据库中与表名对应的表结构。
具体地,若不能覆盖,则从目标散列表中筛选出没有被覆盖的目标字段子集合,即从目标散列表中表名对应的字段信息集合筛选出比中转数据库中对应的表中字段缺少的目标字段所组成的子集合,并根据目标字段子集合更新中转数据库中与表名对应的表结构。例如,可以构造增加表字段的SQL语句,并通过该增加表字段的SQL语句在中转数据库的对应表中增加相应的目标字段子集合,从而实现更新中转数据库中与表名对应的表结构。
步骤310,结束流程。
具体地,若能覆盖,则结束流程。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据加载方法的数据加载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据加载装置实施例中的具体限定可以参见上文中对于数据加载方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种数据加载装置,包括:SQL语句确定模块402、SQL语句校验模块404、数据获取模块406和数据加载模块408,其中:
SQL语句确定模块402,用于当接收到数据提取请求时,确定与所述数据提取请求匹配的目标SQL语句;
SQL语句校验模块404,用于对所述目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行所述目标SQL语句;所述中转数据库是根据企业数据集成平台EDIP的数据库表文件,装载对应的数据得到;
数据获取模块406,用于当所述目标SQL语句执行成功时,获取所述中转数据库执行所述目标SQL语句后返回的目标数据;
数据加载模块408,用于将所述目标数据加载到目标数据库中。
在一个实施例中,所述装置还包括中转数据库生成模块,用于:根据预先配置的待加载数据的表名和本地缓存目录,周期性地从企业数据集成平台EDIP中获取与所述表名对应的数据文件到本地缓存目录;其中,数据文件包括表头文件和表数据文件;业务***可以读取本地缓存目录的各个表头文件,表头文件中,包含了该表头所对应的表名以及其描述数据表各个字段的信息,字段信息包含了字段名、字段长度、字段类型。将这些信息读取出来成为表头字段集合,集合的一个元素则为一个字段信息。接着,生成以表名为键、表头字段信息集合为值的原始散列表;根据所述待加载数据的表名及所需的列名,对所述原始散列表进行筛选,得到目标散列表;根据所述目标散列表装载对应的数据,生成中转数据库。
在一个实施例中,所述中转数据库生成模块还用于:根据所述目标散列表中每个表的表名,确定中转数据库中是否存在对应的表名;当中转数据库中不存在对应的表名,则根据所述表名在中转数据库中创建对应的表;当中转数据库中存在对应的表名,确定所述表名对应的表中的字段是否能覆盖所述目标散列表中表名对应的字段信息集合,若不能覆盖,从所述目标散列表中筛选出没有被覆盖的目标字段子集合,根据所述目标字段子集合更新所述中转数据库中与所述表名对应的表结构。
在一个实施例中,所述装置还包括日志记录模块,用于当所述目标SQL语句执行失败时,生成所述目标SQL语句的日志记录。
在一个实施例中,所述SQL语句校验模块用于:解析所述目标SQL语句的操作方式;当所述操作方式为查询操作或运算操作时,则校验通过;当所述操作方式为数据新增操作或数据修改操作时,确定所述目标SQL语句的操作范围,当所述操作范围与目标操作范围匹配时,则校验通过。
在一个实施例中,所述数据提取请求中携带有数据提取标识和参数组;所述SQL语句确定模块用于:根据所述数据提取标识,从预先配置的SQL语句模板中确定匹配的目标SQL语句模板;根据所述目标SQL语句模板中预先设置的参数占位信息,在对应位置填充所述参数组,生成与所述数据提取请求匹配的目标SQL语句。
在一个实施例中,如图5所示,结合上述数据加载方法和数据加载装置进一步说明本申请的数据加载原理,具体地,其可以应用于如图5所示的应用环境中。其中,
企业数据平台(EDIP,也即企业数据集成平台)是基于企业信息特征,在异构分布环境下为企业提供透明、一致的信息访问和交互手段,对其上运行的应用进行管理,为应用提供服务,并支持各特定领域应用***的集成。业务***则是企业达成定位所需要的业务环节、各合作伙伴扮演的角色以及利益相关者合作与交易的方式和内容。
而业务***经常需要从EDIP中获取上游***的数据,并装载到业务***自身的业务数据库之中。但是,由于传统技术中,从EDIP获取到的数据信息文件通常为上游***某一时刻数据库表内容的“镜像”,导致大部分的数据不能直接使用,而需要通过编码的方式对其进行数据加工,导致数据加载效率低。
基于此,本申请通过在业务***与EDIP之间设置中转数据库模块(也即中转数据库),先将EDIP中的数据信息文件装载到中转数据库中,当业务***需要使用的时候,通过执行SQL语句对中间数据库中的数据进行提取。数据装载作业程序及中转数据库,均可部署在非业务***的计算机之中,从而避免了大数据量加载时对业务***的性能影响。由业务***主动对中转数据库发出SQL加工语句获取结果业务数据,也避免了SQL注入对业务***的安全影响。
具体地,如图5所示,由表文件解析模块、表数据装载模块、中转数据库模块共同完成将来自EDIP的数据信息文件装载中转数据库的过程,由数据提取模块、脚本执行模块、中转数据库模块共同完成由业务***发起的数据提取的过程。
其中,表文件解析模块,负责接收来自企业数据平台(EDIP)的上游***的数据库表头文件(flg)及数据库表数据文件(dat),将其解析并存入到散列表中。表数据装载模块,负责将散列表中的数据,构造出SQL(数据库操作语言)语句,然后发送给中转数据库模块实现数据的***。中转数据库模块,由MySQL(一个关系型数据库管理***)构成,实现对数据的存储。数据提取模块,接收来自业务***的提数请求,根据用户的配置,将提数请求中的字段匹配数据提取的SQL(数据库操作语言)语句,交给脚本执行模块。脚本执行模块,接收来自数据提取模块的数据提取的SQL,将其发送到中转数据库模块得到结果并返回。
对于表文件解析模块和表数据装载模块和中转数据库模块,可以作为单独的程序独立于业务***部署运行,以隔离装载作业对业务***带来的影响。对于数据提取模块和脚本执行模块,则可以作为插件SDK(Software Development Kit,软件开发工具包)的模式,与业务***集成在一起,通过接口为业务***提供服务。
上述数据加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储从EDIP中获取的数据以及SQL语句数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据加载方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现如上所述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据加载方法,其特征在于,所述方法包括:
当接收到数据提取请求时,确定与所述数据提取请求匹配的目标SQL语句;
对所述目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行所述目标SQL语句;所述中转数据库是根据企业数据集成平台EDIP的数据库表文件,装载对应的数据得到;
当所述目标SQL语句执行成功时,获取所述中转数据库执行所述目标SQL语句后返回的目标数据;
将所述目标数据加载到目标数据库中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预先配置的待加载数据的表名和文件缓存目录,从EDIP中获取与所述表名对应的数据文件到本地缓存目录;
从所述本地缓存目录中读取各个表头文件,识别所述表头文件中的表头字段信息集合,得到以所述表名为键、所述表头字段信息集合为值的原始散列表;
根据所述待加载数据的表名及所需的列名,对所述原始散列表进行筛选,得到目标散列表;
根据所述目标散列表向所述中转数据库装载对应的数据。
3.根据权利要求2所述的方法,其特征在于,根据所述目标散列表向所述中转数据库装载对应的数据,包括:
根据所述目标散列表中每个表的表名,确定中转数据库中是否存在对应的表名;
当中转数据库中不存在对应的表名,则根据所述表名在中转数据库中创建对应的表;
当中转数据库中存在对应的表名,确定所述表名对应的表中的字段是否能覆盖所述目标散列表中表名对应的字段信息集合,若不能覆盖,从所述目标散列表中筛选出没有被覆盖的目标字段子集合,根据所述目标字段子集合更新所述中转数据库中与所述表名对应的表结构。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标SQL语句执行失败时,生成所述目标SQL语句的日志记录。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述目标SQL语句进行校验,包括:
解析所述目标SQL语句的操作方式;
当所述操作方式为查询操作或运算操作时,则校验通过;
当所述操作方式为数据新增操作或数据修改操作时,确定所述目标SQL语句的操作范围,当所述操作范围与目标操作范围匹配时,则校验通过。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述数据提取请求中携带有数据提取标识和参数组;所述确定与所述数据提取请求匹配的目标SQL语句,包括:
根据所述数据提取标识,从预先配置的SQL语句模板中确定匹配的目标SQL语句模板;
根据所述目标SQL语句模板中预先设置的参数占位信息,在对应位置填充所述参数组,生成与所述数据提取请求匹配的目标SQL语句。
7.一种数据加载装置,其特征在于,所述装置包括:
SQL语句确定模块,用于当接收到数据提取请求时,确定与所述数据提取请求匹配的目标SQL语句;
SQL语句校验模块,用于对所述目标SQL语句进行校验,当校验通过时,基于预先设置的中转数据库执行所述目标SQL语句;所述中转数据库是根据企业数据集成平台EDIP的数据库表文件,装载对应的数据得到;
数据获取模块,用于当所述目标SQL语句执行成功时,获取所述中转数据库执行所述目标SQL语句后返回的目标数据;
数据加载模块,用于将所述目标数据加载到目标数据库中。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202311027107.0A 2023-08-15 2023-08-15 数据加载方法、装置、计算机设备和计算机可读存储介质 Pending CN117290415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311027107.0A CN117290415A (zh) 2023-08-15 2023-08-15 数据加载方法、装置、计算机设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311027107.0A CN117290415A (zh) 2023-08-15 2023-08-15 数据加载方法、装置、计算机设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117290415A true CN117290415A (zh) 2023-12-26

Family

ID=89239849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311027107.0A Pending CN117290415A (zh) 2023-08-15 2023-08-15 数据加载方法、装置、计算机设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117290415A (zh)

Similar Documents

Publication Publication Date Title
CN112256558B (zh) 一种测试用例的生成方法、装置、计算机设备及存储介质
CN110275861A (zh) 数据存储方法及装置、存储介质、电子装置
CN107391292B (zh) 针对保持区块体数据实现勘误的区块链验证方法及***
CN106445815A (zh) 一种自动化测试方法及装置
CN107463596B (zh) 针对设置链外勘误表的区块链并行查询方法及***
CN107451002B (zh) 针对修改区块体数据的区块链的主动验证方法及***
CN108984757A (zh) 一种数据导入方法及设备
CN116561003A (zh) 测试数据生成方法、装置、计算机设备和存储介质
CN111124883A (zh) 一种基于树形表格的测试用例库引入方法、***及设备
CN107133163A (zh) 一种验证描述类api的方法与设备
CN117290415A (zh) 数据加载方法、装置、计算机设备和计算机可读存储介质
CN116048981A (zh) 一种后端接口测试用例设计方法、装置、介质及设备
CN115544132A (zh) 数据导入方法、***及电子设备
US11074294B2 (en) System and method for Directed Acyclic Graph (DAG) encoding into hash linked blocks
CN113568682B (zh) 规则数据校验方法、装置、计算机设备和存储介质
CN111324434B (zh) 计算任务的配置方法、装置及执行***
CN114238367A (zh) 资产安全信息管理方法、装置及计算机设备
CN117093471A (zh) 数据库存储过程的测试方法、装置、设备和存储介质
CN117278625A (zh) 报文转换方法、装置、计算机设备和存储介质
CN116881164A (zh) 金融信息***中测试数据的校验修正方法、装置和设备
CN117453661A (zh) 资源配置方法、装置、计算机设备、存储介质
CN115687074A (zh) 业务***测试方法、装置、计算机设备和存储介质
CN117743306A (zh) 数据迁移方法、装置、计算机设备和存储介质
CN118170775A (zh) 数据处理方法、***、计算机设备、存储介质和产品
CN115827478A (zh) 代码检视方法、装置、计算机设备和存储介质

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