CN108376171B - 大数据快速导入的方法、装置、终端设备及存储介质 - Google Patents
大数据快速导入的方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN108376171B CN108376171B CN201810161582.XA CN201810161582A CN108376171B CN 108376171 B CN108376171 B CN 108376171B CN 201810161582 A CN201810161582 A CN 201810161582A CN 108376171 B CN108376171 B CN 108376171B
- Authority
- CN
- China
- Prior art keywords
- data
- batch data
- batch
- state
- processed
- 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/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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大数据快速导入的方法、装置、终端设备及存储介质。该大数据快速导入的方法包括:获取大数据管理平台发送的至少一个原始批量数据,每一原始批量数据对应一状态参数;将每一原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中;触发数据监控指令,扫描状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据;对待处理批量数据进行去重处理,获取有效批量数据,将有效批量数据存储到关系型数据库中的目标表中。该方法可以提高批量数据导入到关系型数据库的效率。
Description
技术领域
本发明涉及大数据处理领域,尤其涉及一种大数据快速导入的方法、装置、终端设备及存储介质。
背景技术
在互联网和金融行业,大数据管理平台处理的数据的数据量较大,其数据占用磁盘空间会达到500G甚至T级别。为了便于对数据进行分析处理,需将大数据管理平台中数据量较大的数据(以下简称批量数据)导入到关系型数据库(如MySQL,Oracle或Postgres等)中。在当前大数据管理平台中,通常采用Sqoop工具将批量数据导入到关系型数据库。其中,Sqoop工具是一个用来将Hadoop(即分布式系统基础架构)和关系型数据库中的数据相互转移的工具,即可以将关系型数据库中的数据导入到Hadoop的HDFS(Hadoop DistributedFile System,分布式文件系统)中,也可以将HDFS中的数据导入到关系型数据库中。当前批量数据导入到关系型数据库的过程中,经常会出现数据导入效率低的问题。
发明内容
本发明实施例提供一种大数据快速导入的方法、装置、终端设备及存储介质,以解决当前批量数据导入到关系型数据库的过程经常会出现数据导入效率低的问题。
第一方面,本发明实施例提供一种大数据快速导入的方法,包括:
获取大数据管理平台发送的至少一个原始批量数据,每一原始批量数据对应一状态参数;
将每一所述原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中;
触发数据监控指令,扫描所述状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据;
对所述待处理批量数据进行去重处理,获取有效批量数据,将所述有效批量数据存储到关系型数据库中的目标表中。
第二方面,本发明实施例提供一种大数据快速导入的装置,包括:
原始批量数据获取模块,用于获取大数据管理平台发送的至少一个原始批量数据,每一原始批量数据对应一状态参数;
第一存储模块,用于将每一所述原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中;
待处理批量数据获取模块,用于触发数据监控指令,扫描所述状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据;
第二存储模块,用于对所述待处理批量数据进行去重处理,获取有效批量数据,将所述有效批量数据存储到关系型数据库中的目标表中。
第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述大数据快速导入的方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述大数据快速导入的方法的步骤。
本发明实施例提供的大数据快速导入的方法、装置、终端设备及存储介质,大数据管理平台将获取到的每一原始批量数据和对应的状态参数导入到在Oracle数据库管理系统预先创建临时表和状态表时,采用映射规约函数将原始批量数据拆分成N个子批量数据,进行导出处理,提高数据导出效率。Oracle数据库管理系统触发数据监控指令,扫描状态表中的状态参数,获取状态参数为待处理状态对应的待处理批量数据,在将待处理批量数据进行去重处理,以便节省处理时间,提高处理效率。然后,采用归并排序算法将有效批量数据和目标表中的数据进行匹配,对匹配不成功的数据插入到目标表中,仅需要做一次全表扫描就可以完成将目标表中不存在的有效批量数据全部插入到目标表中,提高了数据插入执行的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中大数据快速导入的方法的一流程图。
图2是图1中步骤S20的一具体流程图。
图3是图2中步骤S22的一具体流程图。
图4是图1中步骤S30的一具体流程图。
图5是本发明实施例2中大数据快速导入的装置的一原理框图。
图6是本发明实施例4中提供的终端设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出本实施例中大数据快速导入的方法的流程图。该大数据快速导入的方法应用数据库管理系统中,该数据库管理系统与大数据管理平台相连,用于将大数据管理平台的数据量较大的大型数据(即批量数据)快速导入到关系型数据库(如MySQL,Oracle或Postgres等传统的关系型数据),以提高批量数据导入的效率。本实施例中,以Oracle数据库管理系统为例进行说明,用于将大数据管理平台中的批量数据快速导入到Oracle数据库中。如图1所示,该大数据快速导入的方法包括如下步骤:
S10:获取大数据管理平台发送的至少一个原始批量数据,每一原始批量数据对应一状态参数。
原始批量数据是指大数据管理平台预先存储但未上传给关系型数据库的批量数据。其中,批量数据是指数据量较大的数据。具体地,该原始批量数据具体可以是不同的业务系统(如大金融资产业务系统或大医疗健康业务系统等)发送给大数据管理平台的业务数据。该业务数据包括但不限于本实施例提及的大金融资产业务系统提供的开户信息数据和大医疗健康业务系统的用户注册信息数据。
由于大数据管理平台存储着大量的来自不同业务系统发送的业务数据,业务系统在发送业务数据时,都是批量发送的,数据量较大,因此,可以每一业务系统批量发送的业务数据定义为原始批量数据。大数据管理平台存储不同业务数据发送的原始批量数据,并将该原始批量数据作为一个整体导入到关系型数据库。
每一原始批量数据都有一个对应的状态参数。状态参数是指描述每一原始批量数据对应的处理状态的参数,该处理状态包括待处理状态、处理中状态、处理成功状态和处理失败状态四种状态参数。本实施例中,为了方便辨识不同的处理状态,使用状态参数表示对应的处理状态,具体为:0对应待处理状态,1对应处理中状态,2对应处理成功状态,3对应处理失败状态。具体地,大数据管理平台存储的每一原始批量数据对应的状态参数为待处理,即对应0这一状态参数。
由于四种处理状态中,只有待处理状态对应的原始批量数据是未经处理的,需上传到Oracle数据库管理系统进行处理,因此,大数据管理平台仅将存储的状态参数为0和对应的原始批量数据采用Sqoop工具发送给Oracle数据库管理系统。只将处于待处理状态的原始批量数据发送给Oracle数据库管理系统,方便有效辨识待处理状态的原始批量数据,有效减少Oracle数据库管理系统的数据处理量,提高数据处理效率。相应地,状态参数不为0的状态参数和对应的原始批量数据不会发送给Oracle数据库管理系统,以避免对原始批量数据进行重复处理,节省处理时间,以提高处理效率。
S20:将每一原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中。
临时表是指Oracle数据库管理系统临时创建的,用来临时存储大数据管理平台发送的原始批量数据的数据表。状态表是指用于记录存储在Oracle临时表中的原始批量数据对应的处理状态的表格。
Oracle数据库管理系统在获取到大数据管理平台发送的状态参数和对应的原始批量数据后,将原始批量数据存储到预先创建的临时表中,对应的状态参数存储到预先创建的状态表中。其中,一个原始批量数据对应一个状态表。可以理解地,Oracle数据库管理系统在获取到原始批量数据时,其对应的处理状态为待处理状态,设置状态表中的状态参数为0;在开始对原始批量数据进行处理时,其对应的处理状态为处理中状态,使得状态表中的状态参数更改为1;并可依据其处理成功与否,分别确定其对应的属于处理成功状态还是处理失败状态,以确定状态表中的状态参数为2或3。本实施例中的处理是指将原始批量数据导入到关系型数据库的处理过程。
进一步地,当状态表中的状态参数为2时,即原始批量数据导出从临时表中导入到关系型数据库的处理过程成功时,临时表会将对应的原始批量数据释放,以节省临时表的存储空间。临时表起到了临时存储的作用。
S30:触发数据监控指令,扫描状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据。
数据监控指令是指触发进行数据监控操作的指令。待处理批量数据是指状态参数为待处理状态对应的原始批量数据。
当Oracle数据库管理系统将获取到的原始批量数据和对应的状态参数存储到预先创建的临时表中和状态表后,在特定触发事件发生时,Oracle数据库管理系统会触发数据监控指令,启动数据监控程序,扫描状态表中存储的所有状态参数,当状态参数为0时,获取该状态参数对应的待处理批量数据。通过数据监控程序,只获取状态参数为0对应的待处理批量数据,方便Oracle数据库管理系统有针对性地对待处理批量数据执行步骤S40,减少了批量数据的处理数量,以提高处理效率。本实施例中的特定触发事件是指在预先设置的触发时间内,触发数据监控指令执行数据监控操作的事件,当系统当前时间为该触发时间时,则形成这一特定触发事件。
S40:对待处理批量数据进行去重处理,获取有效批量数据,将有效批量数据存储到关系型数据库中的目标表中。
有效批量数据是指对待处理批量数据进行去重处理后得到的批量数据。本实施例中,获取到的待处理批量数据后,Oracle数据库管理系统会基于指定列对获取的待处理批量数据进行去重处理。该指定列是指预先指定的包含数据存储时间的数据列。在开始对待处理批量数据进行去重处理时,需修改该待处理批量数据对应的状态表中的状态参数为1,表示该待处理批量数据处于处理中状态,以避免重复对该待处理批量数据进行处理,节省处理时间,提高处理效率。
当状态表中的状态参数改为1时,Oracle数据库管理系统会将修改后的状态参数返回给大数据管理平台对应的原始批量数据对应的状态参数,以避免大数据管理平台重复将这相同的原始批量数据发送给Oracle数据库管理系统,从而导致重复处理。
在对待处理批量数据进行去重处理过程中,若待处理批量数据存在至少两个相同的数据时,则基于数据对应的存储时间只保留最新时间对应的数据,将该最新时间之前存储的数据进行清除处理,以节省数据的存储空间。其中,最新时间是指与系统当前时间最接近的时间。将进行去重处理后得到的有效批量数据存储到对应的关系型数据库中,从而提高批量数据导入到关系型数据的效率。
如有效批量数据是保险业务系统发送的某个保险产品对应的投保人的个人信息数据,投保人的个人信息中包括但不限于投保人ID、投保人姓名、预留手机号和邮箱地址,若一个投保人ID对应了至少两个预留手机号或者邮箱地址时,则基于该投保人的个人信息的存储时间,删除最新时间之前的该投保人的个人信息,只保留最新时间对应的个人信息。将最新时间对应的个人信息作为有效批量数据存储到对应的关系型数据库中,方便业务人员获取对应的投保人的个人信息数据,提高了投保人的个人信息数据的准确性。
目标表是指关系型数据库中预先建立的数据表,该目标表是用于存储有效批量数据的数据表。Oracle数据库管理系统对待处理批量数据进行去重处理,将获取的有效批量数据存储到关系型数据库中的目标表中,便于不同的业务系统在需要获取目标表中的数据时,直接调用目标表。
步骤S10-S40,大数据管理平台将获取到的每一原始批量数据和对应的状态参数分别存储在Oracle数据库管理系统预先创建的临时表和状态表中,Oracle数据库管理系统触发数据监控指令,扫描状态表中的状态参数,获取状态参数为待处理状态对应的待处理批量数据,对待处理批量数据进行去重处理后将获取的有效批量数据存储到关系型数据库创建的目标表中。通过该方法将原始批量数据存储在临时表中,对临时表中的原始批量数据进行处理后,将有效批量数据存储到关系型数据库的目标表中,克服了从大数据平台将原始批量数据导入到关系型数据库的目标表中时,由于数据类型不同导致数据导入的成功率不高的问题,从而也提高了原始批量数据导入到关系型数据库的目标表中的效率。
在一具体实施方式中,如图2所示,步骤S20,将每一原始批量数据存储在预先创建的临时表中,具体包括如下步骤:
S21:采用映射归约函数将每一原始批量数据拆分成N个子批量数据,N≥2。
由于大数据管理平台导入到临时表中的数据量较大,为了加快原始批量数据导入到临时表中的速度,缩短导入时间,需要使用多个映射归约(Map-Reduce)进程对原始批量数据进行分布式导出。映射归约(Map-Reduce)是一个移动式的基于键值对(key-value)形成的分布式计算框架,由Map(映射)函数和Reduce(归约)函数组成。Map(映射)函数根据用户自定义的数据量将一个原始批量数据分解成N(N≥2)子批量数据,然后将子批量数据中的键值对映射成新的键值对,一个子批量数据中包括至少一个新的键值对。每个子批量数据的大小是固定的,而map(映射)函数对应的执行操作也是相同的,因此,并行执行N个子批量数据的操作时不会出现明显的时间不均衡,并行效率最高。
如大数据管理平台将保险业务系统关于投保人的个人信息对应的原始批量数据导入到临时表中时,Map(映射)函数先根据用户自定义的条件将原始批量数据分解成N(N≥2)子批量数据。然后,将子批量数据中的键值对映射成新的键值对,原始批量数据中键值对为:投保人ID作为键(key),与投保人ID对应的投保业务、投保人姓名、预留手机号和邮箱地址作为值(value),即原始批量数据中的投保人ID与该投保人ID对应的投保业务、投保人姓名、预留手机号和邮箱地址形成了一种映射关系,组成了一个键值对(key-value)。新的键值对是指以投保业务作为键(key),与投保业务对应的投保人ID、投保人姓名、预留手机号和邮箱地址作为值(value),即投保业务与该投保业务对应的投保人ID、投保人姓名、预留手机号和邮箱地址形成了一种新的映射关系,组成了一个新的键值对(key-value)。由于一个投保人ID可能会对应多个投保业务,当新的键为投保业务时,一个子批量数据中会包含至少一个投保业务,即一个子批量数据中会出现至少一个新的键。
S22:采用M个映射归约函数对N个子批量数据进行导出处理,以将导出的子批量数据存储在临时表中,M≥N,其中N、M为正整数。
将步骤S21获取的每一子批量数据发送给对应的Reduce(归约)函数。一般地,由于Reduce(归约)函数在对数据进行汇总时,会不可避免地出现汇总失败的问题,因此Reduce(归约)函数不会少于子批量数据的数量,即M≥N,以便于采用其他子批量数据的Reduce(归约)函数对处理失败的子批量数据进行处理,提高处理效率。其中,N、M为正整数。Reduce(归约)函数在map(映射)函数获取至少一个子批量数据时,会基于新的键对每一子批量数据进行汇总处理,即将同一个新的键(key)对应的值(value)汇总到一起,形成基于新的键确定的数据表,将该数据表根据用户自定义的数据量将对应的子批量数据导入到临时表中。采用映射归约函数中的M个归约函数对N个子批量数据进行导出处理,存储到临时表中,可以提高数据导出的速度,节省时间。
本实施例中,为了保证步骤S20的实现,临时表不设置主键和唯一索引。其中,主键可以是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要用于记录表与表之间的关联,以及用于记录本表的数据修改与删除。唯一索引是对数据库表中一列或多列的值进行排序的一种结构。临时表不设置主键,可以保证原始批量数据中的一部分子批量数据先成功导入到临时表中后,不会影响还没有成功导入到临时表中的其他部分子批量数据。若临时表中设置主键,则在一部分子批量数据导入到目标中后,目标表检测到设置的主键中已经有对应的数据存在,就会使Oracle数据库管理系统触发主键不唯一的系统错误,导致整个Mapreduce进程终止,从而导致数据导出失败。临时表不设置唯一索引,可以依据不同索引对子批量数据进行逐条的扫描,导入到临时表中,保证了数据导入的全面性。
如一个子批量数据包括两个新的键,投保业务A和投保业务B,将每一子批量数据发送给对应的Reduce(归约)函数后,Reduce(归约)函数会将每一子批量数据中属于同一个键的值归约到一起,即将投保业务A对应的值归约到一起,投保业务B对应的值归约到一起,形成投保业务A和投保业务B对应的数据表。将形成的投保业务A和投保业务B对应的数据表导入到临时表中进行存储。
在一具体实施方式中,如图3所示,步骤S22,采用M个映射归约函数对N个子批量数据进行导出处理,以将导出的子批量数据存储在临时表中,具体包括如下步骤:
S221:采用N个映射归约函数分别对N个子批量数据进行导出处理,获取每一子批量数据对应的导出处理结果。
具体地,在M个映射归约函数选出N个映射归约函数对N个子批量数据进行一对一导出处理,即每一个归约函数对应一个子批量数据,使得N个子批量数据采用并行导出方式进行处理,以提高数据导出的效率。每一个映射归约函数对应的导出处理结果包括导出成功和导出失败。
S222:若导出处理结果为导出成功时,将导出的子批量数据存储在临时表中。
S223:若导出处理结果为导出失败时,则将导出处理结果为导出失败的子批量数据分配给第N+1个映射归约函数进行导出处理,直至所有导出处理结果均为导出成功时结束。
具体地,在导出过程中,当导出结果为导出失败时,映射归约函数会启动预先设置的重试机制。该重试机制是指在导出结果为导出失败时,将对应的子批量数据放在第N+1个映射归约函数中执行的机制。该大数据快速导入的方法中设置重试机制,可以保证在某一子批量数据的导出处理结果为导出失败时,服务器自动将导出失败的子批量数据放到另外一个空闲的映射归约进程中进行导出处理,提高了数据的导出成功率。
在一具体实施方式中,如图4所示,步骤S30,触发数据监控指令,扫描状态表中的状态参数,具体包括如下步骤:
S31:获取定时触发指令,定时触发指令包括进程ID和触发时间。
定时触发指令是指在oracle数据库管理系统预先设置的定时触发数据监控一个触发指令,该定时触发指令包括进程ID和触发时间。进程ID是指对原始批量数据进行导出处理的数据监控进程的标识,该进程ID可用于唯一识别对原始批量数据进行导出处理的数据监控进程。触发时间是指预先设置好的一个时间,当系统当前时间到达该预先设置好的时间时,则触发对应的定时触发指令中进程ID对应的数据监控进程。
oracle数据库管理系统预先设置一个定时触发指令,该定时触发指令在oracle数据库管理系统的系统当前时间与预设的触发时间相同时,会触发oracle数据库管理系统设置的数据监控指令,基于数据监控指令,执行步骤S32。
S32:若系统当前时间为触发时间时,触发与进程ID相对应的数据监控进程扫描状态表中的状态参数。
获取定时触发指令后,oracle数据库管理系统会判断该系统当前时间是否与预先设置的触发时间相同。若该当前时间与预先设置的触发时间相同,则触发与进程ID相对应的数据监控进程扫描状态表中的状态参数。当扫描到状态参数为0时,则对该状态表对应的原始批量数据进行导出处理,即同时对该处理状态为待处理状态的原始批量数据进行导出处理。
在一具体实施方式中,步骤S40,将有效批量数据存储到关系型数据库中的目标表中,具体包括如下步骤:将有效批量数据采用归并排序算法进行归并处理,插入到关系型数据库创建的目标表中。
归并排序算法是建立在归并操作上的一种有效的排序算法,也称为merge算法,归并排序算法是指将获取到的有效批量数据和目标表中存储的数据进行匹配查询,匹配成功时则执行更新操作,匹配不成功时则执行插入操作。本实施例中仅采用插入操作对有效批量数据进行插入,即将目标表中不存在的有效批量数据插入到目标表中。
具体地,oracle数据库管理系统获取的有效批量数据和存储在关系型数据库中的目标表进行匹配查询,将匹配不成功的有效批量数据插入到目标表中,即将有效批量数据中存在的数据,但目标表中不存在的数据插入到目标表中。使用归并排序算法将目标表中不存在的有效批量数据插入到目标表中,仅需要做一次全表扫描就可以完成将目标表中不存在的有效批量数据全部插入到目标表中,提高了数据插入的效率。
在一具体实施方式中,在步骤S40,获取有效批量数据,将有效批量数据存储到关系型数据库中的目标表中的步骤之后,该大数据快速导入的方法,还包括:
S50:将已成功插入目标表的有效批量数据的状态参数更改为处理成功状态,并将未成功插入目标表的有效批量数据的状态参数更改为处理失败状态。
具体地,有效批量数据成功插入到目标表中后,有效批量数据对应的状态表中的状态参数为2,表示处理成功状态,有效批量数据没有成功插入到目标表中时,有效批量数据对应的状态表中的状态参数为3,表示处理失败状态。Oracle数据库管理系统基于状态参数,可以辨识有效批量数据插入目标表的处理情况,方便Oracle数据库管理系统对处理失败的有效批量数据及时作出重新插入的反映。
有效批量数据没有成功插入到目标表中的原因包括,临时表太大、插入超时或者网络等原因。若有效批量数据没有成功插入到目标表的原因为临时表有效批量数据太大或者插入超时,则表示插入失败的原因是临时表中的数据量过大,不利于进行插入操作,应该将该临时表的有效批量数据进行拆分,分为多个子有效批量数据插入到目标表中;若插入失败的原因是网络原因,则刷新该临时表的插入进程,将有效批量数据重新插入到目标表中。
本发明提供的大数据快速导入的方法,在大数据管理平台将获取到的每一原始批量数据和对应的状态参数导入到Oracle数据库管理系统中的目标表中时,在Oracle数据库管理系统预先创建临时表和状态表,采用映射规约函数将原始批量数据拆分成N个子批量数据,进行导出处理,提高数据导出效率。Oracle数据库管理系统触发数据监控指令,扫描状态表中的状态参数,获取状态参数为待处理状态对应的待处理批量数据,在将待处理批量数据进行去重处理,以避免重复对该待处理批量数据进行处理,节省处理时间,提高处理效率。然后,采用归并排序算法将有效批量数据和目标表中的数据进行匹配,对匹配不成功的数据插入到目标表中,仅需要做一次全表扫描就可以完成将目标表中不存在的有效批量数据全部插入到目标表中,提高了数据插入执行的效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例2
图2示出与实施例1中大数据快速导入的方法一一对应的大数据快速导入的装置的原理框图。如图2所示,该大数据快速导入的装置包括原始批量数据获取模块10、第一存储模块20、待处理批量数据获取模块30和第二存储模块40。其中,原始批量数据获取模块10、第一存储模块20、待处理批量数据获取模块30、第二存储模块40和状态参数更改模块50的实现功能与实施例中大数据快速导入的方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。
原始批量数据获取模块10,用于获取大数据管理平台发送的至少一个原始批量数据,每一原始批量数据对应一状态参数。
第一存储模块20,用于将每一原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中。
待处理批量数据获取模块30,用于触发数据监控指令,扫描状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据。
第二存储模块40,用于对待处理批量数据进行去重处理,获取有效批量数据,将有效批量数据存储到关系型数据库中的目标表中。
优选地,临时表不设置主键和唯一索引。
第一存储模块20包括:子批量数据获取单元21和子批量数据存储单元22。
子批量数据获取单元21,用于采用映射归约函数将每一原始批量数据拆分成N个子批量数据,N≥2。
子批量数据存储单元22,用于采用M个映射归约函数对N个子批量数据进行导出处理,以将导出的子批量数据存储在临时表中,M≥N,其中N、M为正整数。
优选地,子批量数据存储单元22包括导出处理结果获取单元221、第一导出结果处理单元222和第二导出结果处理单元223。
导出处理结果获取单元221,用于采用N个映射归约函数分别对N个子批量数据进行导出处理,获取每一子批量数据对应的导出处理结果。
第一导出结果处理单元222,用于若导出处理结果为导出成功时,将导出的子批量数据存储在临时表中。
第二导出结果处理单元223,用于若导出处理结果为导出失败时,则将导出处理结果为导出失败的子批量数据分配给第N+1个映射归约函数进行导出处理,直至所有导出处理结果均为导出成功时结束。
优选地,待处理批量数据获取模块30包括定时触发指令获取单元31和数据监控进程扫描单元32。
定时触发指令获取单元31,用于获取定时触发指令,定时触发指令包括进程ID和触发时间。
数据监控进程扫描单元32,用于若系统当前时间为触发时间时,触发与进程ID相对应的数据监控进程扫描状态表中的状态参数。
优选地,第二存储模块40,用于将有效批量数据采用归并排序算法进行归并处理,插入到关系型数据库创建的目标表中。
优选地,该大数据快速导入的装置,还包括状态参数更改模块50。
状态参数更改模块50,用于将已成功插入目标表的有效批量数据的状态参数更改为已成功处理状态,并将未成功插入目标表的有效批量数据的状态参数更改为未成功处理状态。
实施例3
本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中大数据快速导入的方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中大数据快速导入的装置中各模块/单元的功能,为避免重复,这里不再赘述。
可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号和电信信号等。
实施例4
图6是本发明一实施例提供的计算机设备的示意图。如图6所示,该实施例的计算机设备60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63。处理器61执行计算机程序63时实现上述实施例1中大数据快速导入的方法的步骤,例如图1所示的步骤S10至S50。或者,处理器61执行计算机程序63时实现上述实施例2看大数据快速导入的装置的各模块/单元的功能,例如图5所示原始批量数据获取模块10、第一存储模块20、待处理批量数据获取模块30、第二存储模块40和状态参数更改模块50的功能。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种大数据快速导入的方法,其特征在于,包括:
获取大数据管理平台发送的状态参数为待处理状态的至少一个原始批量数据,每一原始批量数据对应一状态参数;
将每一所述原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中;
触发数据监控指令,扫描所述状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据;
基于包含数据存储时间的数据列,对所述待处理批量数据进行去重处理,若所述待处理批量数据中包括两个相同数据列的数据时,保留最新时间对应的数据,将最新时间之前存储的数据进行清除处理,获取有效批量数据,将所述有效批量数据采用归并排序算法进行归并处理,插入到关系型数据库创建的目标表中。
2.如权利要求1所述的大数据快速导入的方法,其特征在于,所述临时表不设置主键和唯一索引;
所述将每一所述原始批量数据存储在预先创建的临时表中,包括:
采用映射归约函数将每一所述原始批量数据拆分成N个子批量数据,N≥2;
采用M个映射归约函数对N个所述子批量数据进行导出处理,以将导出的子批量数据存储在所述临时表中,M≥N,其中N、M为正整数。
3.如权利要求2所述的大数据快速导入的方法,其特征在于,所述采用M个映射归约函数对N个所述子批量数据进行导出处理,以将导出的子批量数据存储在所述临时表中,包括:
采用N个映射归约函数分别对N个所述子批量数据进行导出处理,获取每一所述子批量数据对应的导出处理结果;
若所述导出处理结果为导出成功时,将导出的子批量数据存储在所述临时表中;
若所述导出处理结果为导出失败时,则将导出处理结果为导出失败的所述子批量数据分配给第N+1个映射归约函数进行导出处理,直至所有导出处理结果均为导出成功时结束。
4.如权利要求1所述的大数据快速导入的方法,其特征在于,所述触发数据监控指令,扫描所述状态表中的状态参数,包括:
获取定时触发指令,所述定时触发指令包括进程ID和触发时间;
若系统当前时间为所述触发时间时,触发与所述进程ID相对应的数据监控进程扫描所述状态表中的状态参数。
5.如权利要求1所述的大数据快速导入的方法,其特征在于,在所述获取有效批量数据,将所述有效批量数据存储到关系型数据库中的目标表中的步骤之后,所述大数据快速导入的方法,还包括:
将已成功插入所述目标表的有效批量数据的状态参数更改为已成功处理状态,并将未成功插入所述目标表的有效批量数据的状态参数更改为处理失败状态。
6.一种大数据快速导入的装置,其特征在于,包括:
原始批量数据获取模块,用于获取大数据管理平台发送的状态参数为待处理状态的至少一个原始批量数据,每一原始批量数据对应一状态参数;
第一存储模块,用于将每一所述原始批量数据存储在预先创建的临时表中,并将对应的状态参数存储在状态表中;
待处理批量数据获取模块,用于触发数据监控指令,扫描所述状态表中的状态参数,获取状态参数为待处理状态的待处理批量数据;
第二存储模块,用于基于包含数据存储时间的数据列,对所述待处理批量数据进行去重处理,若所述待处理批量数据中包括两个相同数据列的数据时,保留最新时间对应的数据,将最新时间之前存储的数据进行清除处理,获取有效批量数据,对所述待处理批量数据进行去重处理,获取有效批量数据,将所述有效批量数据采用归并排序算法进行归并处理,插入到关系型数据库创建的目标表中。
7.如权利要求6所述的大数据快速导入的装置,其特征在于,所述临时表不设置主键和唯一索引;
所述第一存储模块包括:
子批量数据获取单元,用于采用映射归约函数将每一所述原始批量数据拆分成N个子批量数据,N≥2;
子批量数据存储单元,用于采用M个映射归约函数对N个所述子批量数据进行导出处理,以将导出的子批量数据存储在所述临时表中,M≥N,其中N、M为正整数。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述大数据快速导入的方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述大数据快速导入的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810161582.XA CN108376171B (zh) | 2018-02-27 | 2018-02-27 | 大数据快速导入的方法、装置、终端设备及存储介质 |
PCT/CN2018/081518 WO2019165671A1 (zh) | 2018-02-27 | 2018-04-02 | 大数据快速导入的方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810161582.XA CN108376171B (zh) | 2018-02-27 | 2018-02-27 | 大数据快速导入的方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108376171A CN108376171A (zh) | 2018-08-07 |
CN108376171B true CN108376171B (zh) | 2020-04-03 |
Family
ID=63018168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810161582.XA Active CN108376171B (zh) | 2018-02-27 | 2018-02-27 | 大数据快速导入的方法、装置、终端设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108376171B (zh) |
WO (1) | WO2019165671A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297578B (zh) * | 2019-06-27 | 2021-06-25 | 北京金山安全软件有限公司 | 批量处理海量数据中部分数据的方法、装置及电子设备 |
CN110781231B (zh) * | 2019-09-19 | 2023-07-21 | 平安科技(深圳)有限公司 | 基于数据库的批量导入方法、装置、设备及存储介质 |
CN113722277A (zh) * | 2020-05-25 | 2021-11-30 | 中兴通讯股份有限公司 | 一种数据导入方法、装置、服务平台及存储介质 |
US11573936B2 (en) * | 2020-08-12 | 2023-02-07 | International Business Machines Corporation | Method for loading data in a target database system |
CN112506866A (zh) * | 2020-10-10 | 2021-03-16 | 浪潮云信息技术股份公司 | 一种适用于大数据量文件的导入方法 |
CN112463769A (zh) * | 2020-12-11 | 2021-03-09 | 中国人寿保险股份有限公司 | 一种HBase大批量数据删除方法、装置、电子设备和存储介质 |
CN113222703B (zh) * | 2021-05-20 | 2023-04-07 | 青岛海信智慧生活科技股份有限公司 | 一种商品图片批量上传方法及装置 |
CN113505115A (zh) * | 2021-07-07 | 2021-10-15 | 北京金山云网络技术有限公司 | 一种数据批量导入方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000562A (zh) * | 2006-12-30 | 2007-07-18 | 中国建设银行股份有限公司 | 一种执行批处理作业的方法及装置 |
CN106649646A (zh) * | 2016-12-09 | 2017-05-10 | 北京锐安科技有限公司 | 一种数据去重的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200625B2 (en) * | 2002-10-18 | 2007-04-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | System and method to enhance availability of a relational database |
CN104424229B (zh) * | 2013-08-26 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 一种多维度拆分的计算方法及系统 |
CN106874334B (zh) * | 2016-08-12 | 2021-07-09 | 创新先进技术有限公司 | 一种数据处理方法及装置、资讯处理系统 |
CN106649455B (zh) * | 2016-09-24 | 2021-01-12 | 孙燕群 | 一种大数据开发的标准化系统归类、命令集系统 |
-
2018
- 2018-02-27 CN CN201810161582.XA patent/CN108376171B/zh active Active
- 2018-04-02 WO PCT/CN2018/081518 patent/WO2019165671A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101000562A (zh) * | 2006-12-30 | 2007-07-18 | 中国建设银行股份有限公司 | 一种执行批处理作业的方法及装置 |
CN106649646A (zh) * | 2016-12-09 | 2017-05-10 | 北京锐安科技有限公司 | 一种数据去重的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108376171A (zh) | 2018-08-07 |
WO2019165671A1 (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376171B (zh) | 大数据快速导入的方法、装置、终端设备及存储介质 | |
CN109873904B (zh) | 消息推送的用户消息状态上报处理方法、装置及存储介质 | |
CN110309125B (zh) | 数据校验方法、电子装置及存储介质 | |
US9983941B2 (en) | Method and apparatus for recovering data | |
EP2924587A1 (en) | Data processing method and device | |
CN110727663A (zh) | 数据清洗方法、装置、设备及介质 | |
WO2016169237A1 (zh) | 数据处理方法及装置 | |
CN107291768A (zh) | 一种索引建立的方法及装置 | |
CN108121774B (zh) | 一种数据表备份方法及终端设备 | |
CN113064885A (zh) | 一种数据清洗方法和装置 | |
WO2013187816A1 (en) | Method and a consistency checker for finding data inconsistencies in a data repository | |
US11048680B2 (en) | Hive table scanning method, device, computer apparatus and storage medium | |
CN112835885A (zh) | 一种分布式表格存储的处理方法、装置及系统 | |
CN110059077A (zh) | 一种数据核对方法、装置、设备和存储介质 | |
CN108255946B (zh) | 一种镭雕设备的编码管理方法及装置、设备及存储介质 | |
CN111881110B (zh) | 数据迁移方法及装置 | |
CN113094415B (zh) | 数据抽取方法、装置、计算机可读介质及电子设备 | |
CN110851437A (zh) | 一种存储方法、装置及设备 | |
CN116401229A (zh) | 数据库的数据校验方法、装置及设备 | |
CN112148705A (zh) | 数据迁移的方法和装置 | |
CN107203550B (zh) | 一种数据处理方法和数据库服务器 | |
CN113495831B (zh) | 基于关键字生成测试用例的方法、系统、设备及介质 | |
CN113282616A (zh) | 一种增量的时序数据冲突检测方法、装置和存储介质 | |
CN111258821A (zh) | 一种基于云计算的备份数据快速提取方法 | |
CN112463444A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |