CN109783571A - 隔离环境的数据处理方法、装置、计算机设备及存储介质 - Google Patents
隔离环境的数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109783571A CN109783571A CN201811526494.1A CN201811526494A CN109783571A CN 109783571 A CN109783571 A CN 109783571A CN 201811526494 A CN201811526494 A CN 201811526494A CN 109783571 A CN109783571 A CN 109783571A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- file
- tables
- data file
- 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.)
- Granted
Links
- 238000002955 isolation Methods 0.000 title claims abstract description 41
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 238000005194 fractionation Methods 0.000 claims description 7
- 238000003780 insertion Methods 0.000 abstract description 10
- 230000037431 insertion Effects 0.000 abstract description 10
- 230000005012 migration Effects 0.000 abstract description 8
- 238000013508 migration Methods 0.000 abstract description 8
- 230000002567 autonomic effect Effects 0.000 abstract description 5
- 238000013523 data management Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了隔离环境的数据处理方法、装置、计算机设备及存储介质,涉及数据处理技术领域,实现了在服务器环境被完全隔离的状态下,上传方的数据文件的自动迁移,避免数据文件导入失败对正常的数据造成的影响。本申请的主要技术方案为:通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;在所述第一数据库下的所述数据表数据插入成功完成后,将当前使用的第二数据库切换成所述第一数据库。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种隔离环境的数据处理方法、装置、计算机设备及存储介质。
背景技术
当前,在服务器环境被完全隔离的状态下,若想要对数据文件进行处理,会导致无法通过传统数据库的连接方式读取数据文件的情况;即便在服务器并未被完全隔离且可以通过传统数据库的连接读方式读取待处理的数据文件时,若待处理的数据文件过大,读取速度会非常缓慢,且在现有技术中通过程序读取数据文件并将其解析入库,对服务器资源(比如内存)要求高,且在内存不足的情况下,容易出现应用崩溃问题。
发明内容
本发明提供一种隔离环境的数据处理方法、装置、计算机设备及存储介质,实现了在服务器环境被完全隔离的状态下,上传方的数据文件的自动迁移,避免数据文件导入失败对正常数据造成的影响。
本发明实施例提供了一种隔离环境的数据处理方法,包括:
通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
在将所有的所述数据内容成功插入所述数据表内后,将当前使用的第二数据库切换成所述第一数据库。
本发明实施例提供了一种隔离环境的数据处理装置,包括:
下载模块,用于通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
创建模块,用于在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
插入模块,用于读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
切换模块,用于在将所有的所述数据内容成功插入所述数据表内后,将当前使用的第二数据库切换成所述第一数据库。
本发明实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述隔离环境的数据处理方法的步骤。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述隔离环境的数据处理方法的步骤。
上述隔离环境的数据处理方法、装置、计算机设备及存储介质,在上传方将数据文件上传至中间服务器后,我方通过中间服务器下载该数据文件,以此解决由于服务器环境完全隔离而导致的无法通过传统数据库连接方式读取数据的问题。另外,在当前未使用的第一数据库下创建一个数据表,并将从下载的数据文件中读取的数据内容插入到该数据表中,当所有的数据内容成功插入到该数据表后,将当前使用的第二数据库切换第一数据库,实现了上传方的数据文件的自动迁移,保证了数据迁移的安全性,避免数据文件导入失败对现在正常的数据造成的影响。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中隔离环境的数据处理方法的一应用环境示意图;
图2是本发明一实施例中隔离环境的数据处理方法的一流程图;
图3是本发明一实施例中通过中间服务器下载数据文件的流程图;
图4是本发明一实施例中隔离环境的数据处理方法的另一流程图;
图5是本发明一实施例中创建数据表的流程图;
图6是本发明一实施例中数据内容插入数据表的流程图;
图7是本发明一实施例中隔离环境的数据处理装置的一原理框图;
图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的隔离环境的数据处理方法,可应用在如图1的应用环境中,其中,中间服务器通过网络与上传方和本侧服务器进行通信。其中,本侧服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种隔离环境的数据处理方法,以该方法应用在图1中的本侧服务器为例进行说明,包括如下步骤:
S101,通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
其中,中间服务器是承载上传方与本侧服务器数据传输的桥梁。上传方通过自有的SFTP(Secure File Transfer Protocol,安全文件传送协议)账号和密码连接到中间文件服务器,然后将其需要传输至本侧服务器的数据,上传至中间服务器。
如图3所示,在一实施例中,所述步骤S101:通过中间服务器下载数据文件,包括如下步骤:
S1011,根据预设下载文件路径从所述中间服务器获取需要下载数据的文件夹;
需要说明的是,本发明实施例在根据预设下载文件路径从所述中间服务器获取需要下载数据的文件夹之前,上传方需要将数据文件上传至中间服务器。具体的,上传方首先需要在中间服务器上为每个需要上传的原始数据文件创建一个文件夹(该文件夹名称为原始数据文件名),然后将记录数据超过第一预置数值的原始数据文件切分成多个数据文件,并对切分的数据文件进行压缩,最后将压缩的数据文件上传至中间服务器。例如,在上传方将上将hive库内的表数据读取出来,然后根据预置规则进行数据拆分,拆分后一张大表(目前2亿条记录)会被分为10张小表文件。然后将小表文件通过zip压缩,并将压缩的小表文件上传至中间文件,以减小文件的大小,降低文件的上传耗时。
其中,对原始数据文件的切分,具体可以根据原始数据文件中每条记录数据的唯一标识信息切分成多个所述数据文件,如根据原始数据文件中用户在公司账户体系中的唯一标识信息(一个long型数字)的尾号0~9来进行分组为10个文件;可以根据原始数据文件中用户所处的位置区域切分成多个数据文件;还可以根据原始数据文件的大小平均切分成多个数据文件,本发明实施例不做具体限定。
相应的,在上传方将数据文件成功上传至中间服务器之后,为了确保安全,我方通过sftp用户账号和密码登录中间服务器,并对上传方上传至中间服务器的数据文件进行下载。具体的,根据预设下载文件路径从所述中间服务器获取需要下载数据的文件夹。其中,所述文件夹中包含由原始数据文件切分成的多个所述数据文件,所述原始数据文件中的记录数据超过第一预置数值,所述数据文件为压缩文件。在本发明实施例中,对于本侧服务器要下载的数据文件,在中间服务器上对文件目录权限仅对我方开通的账号开放读写权限,除上传方账号外再无其他账号有读写权限。
对于本发明实施例,预设下载文件路径是上传方和本侧服务器约定的路径。例如,我方通过自有sftp用户账号和密码连接到中间服务器后,通过事先双方约定的固定文件目录如:/upload/cbd/full/获取需要下载数据的文件夹,该文件夹下面会对应的出现以表明命名的文件夹如:toa_customer,这文件夹下面就会有10个数据文件如:TOA_CUSTOMER_0.txt.gz,我方下载toa_customer文件夹中对应的数据文件gz,并在本侧服务器上进行解压。
S1012,当所述文件夹中的数据文件下载完成后,通过上传文件信息确定下载的数据文件和上传的数据文件是否一致。
对于本发明实施例中,在上传方将数据文件成功上传至中间服务器之后,上传方需要在中间服务器上写入一个上传文件信息,该上传文件信息用于记录上传方上传的数据文件的名称、上传日期及上传数据文件的总记录数。
例如,上传方在每张表上传完成后,在一个名为done的文件夹下编写一个上传文件信息,格式如:
TOA_CUSTOMER_20180722_191380908.done.completed
其中,TOA_CUSTOMER代表的是表名;20180722代表的是上传日期;191380908代表的是总表记录数,总表记录数为方便我方下载后对比两边数据是否一致。
当文件夹中的数据文件下载完成后,我方首先会下载done文件夹下对应日期的每张表的.done.completed文件,并解析出哪张表对应多少条记录并入库,以确定下载的数据文件和上传的数据文件是否一致。
S102,在第一数据库下,根据所述数据文件的字段结构创建一个数据表;
需要说明的是,本侧服务器上至少设置有两个数据库:第一数据库和第二数据库,两个数据库的名称不同,但里面的表个数及表字段完全相同。其中,一个数据库用于数据解析服务;另外一个数据库用于后台数据管理服务,后台数据管理服务使用其数据库和表进行查询数据等操作。另外,当前正在使用的数据库不能进行操作,需要操作另外一个数据库,即本发明实施例对当前未使用的第一数据库进行操作。以避免本地数据导入失败对现在正常的数据造成的影响。只有第一数据库写入数据成功后,才可将当前正在使用的第二数据库切换成第一数据库。
在本发明实施例中,对数据库的SaveMode存储模式有以下几种模式:
SaveMode.ErrorIfExists模式,该模式下如果数据库中已经存在该表,则会直接报异常,导致数据不能存入数据库.
SaveMode.Append模式,该模式下如果表已经存在,则追加在该表中;若该表不存在,则会先创建表,再插入数据;
SaveMode.Overwrite模式,该模式下其实质是先将已有的表及其数据全都删除,再重新创建该表,最后插入新的数据;
SaveMode.Ignore模式,该模式下若表不存在,则创建表,并存入数据;在表存在的情况下,直接跳过数据的存储,不会报错。
本发明实施例可根据各存储模式中的内容,进行有选择的创建表,并向表中插入对应的数据内容。
S103,读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
具体的,本发明实施例在通过一行一行的方式将数据文件中的数据读取出来后,根据规定的列分割符对读取出来的数据进行列拆分。并对拆分出来的每一个字段内容可以进行去除空格、去除字段内容中一些无用的字符、大小写转换、判断是否为空等数据处理操作,以实现对字段内容的数据清洗,数据的统一格式化,保证插入数据表中数据内容的有效性。
S104,在将所有的数据内容成功插入所述数据表后,将当前使用的第二数据库切换成所述第一数据库。
本发明实施例提供的一种隔离环境的数据处理方法,在上传方将数据文件上传至中间服务器后,我方通过中间服务器下载该数据文件,以此解决由于服务器环境完全隔离而导致的无法通过传统数据库连接方式读取数据的问题。另外,在当前未使用的第一数据库下创建一个数据表,并将从下载的数据文件中读取的数据内容插入到该数据表中,当所有的数据内容成功插入到该数据表后,将当前使用的第二数据库切换第一数据库,实现了上传方的数据文件的自动迁移,保证了数据迁移的安全性,避免数据文件导入失败对现在正常的数据造成的影响。
如图4所示,本申请实施例提供了另一种隔离环境的数据处理方法,应用于本侧服务器,主要包括以下步骤:
S201,通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
S201上述S101相同,可参照理解,在此不再赘述。
S202,获取数据库使用信息表。
其中,所述数据库使用信息表中记录有当前使用的数据库和当前未使用的数据库,以及数据库切换信息。数据库切换信息表是用于记录数据库的切换日志,其代表数据库之间上一次切换的数据库,及对应的切换时间,数据库切换信息表便后续查看切换的数据库是否正常。比如查看数据库切换的周期是否正常,切换后的数据库是否正常等,本发明实施例不做具体限定。
需要说明的是,上述数据库使用信息表存储在第三数据库中。在读取下载的数据文件之前,首先需要读取该数据表中的内容,以获知当前使用的数据库和当前未使用的数据库,便于后续在当前未使用的数据库下创建并插入的相应的数据。
S203,根据所述数据库使用信息表中当前未使用的数据库和当前使用的数据库,分别确定所述第一数据库和所述第二数据库。
在发明实施例中,本侧服务器设置有三个数据库分别为:第一数据库、第二数据库和第三数据库,第一数据库和第二数据库的名称不同,但里面的表个数及表字段完全相同。其中,一个数据库用于数据解析服务;另外一个数据库用于后台数据管理服务,后台数据管理服务使用其数据库和表进行查询数据等操作;第三数据库中则保存有数据库使用信息表。另外,当前正在使用的数据库不能进行操作,需要操作另外一个数据库,即本发明实施例对当前未使用的第一数据库进行操作。以避免本地数据导入失败对现在正常的数据造成的影响。只有第一数据库写入数据成功后,才可将当前正在使用的第二数据库切换成第一数据库。
S204,删除在所述第一数据库中的所有的表及其数据。
需要说明的是,本实施例中的第一数据库和第二数据库采用SaveMode.Overwrite重写模式进行数据存储。因此向当前未使用的第一数据表中创建数据表之前,需要先将第一数据库中已有的表及其数据全都删除,便于在后续步骤中再重新创建该表,并将数据内容插入新创建的表中。
S205,在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
如图5所示,在一实施例中,所述步骤S205:所述在第一数据库下,根据所述数据文件的字段结构创建一个数据表,包括如下步骤:
S2051,根据所述数据文件的字段结构在内存中建立一个虚拟表;
具体的,根据所述数据文件的字段结构在内存中建立一个虚拟表具体过程为:首先根据数据文件的字段结构构建一个StructField[]数组,即根据数据文件的字段名称创建数组。例如:StructField(name,dataType,nullable):代表StructType中的一个字段,其中,字段的名字通过name指定,dataType指定field的数据类型,nullable表示字段的值是否有null值;
然后,构建StructType,用于最后DataFrame元数据的描述。
StructType toaCustomerSchema=new StructType(structFields);
通过上述两步构建的RDD和Schema,来构建一个Dataset<Row>,称之为DataFrame。
Dataset<Row>tagCubeDataFrame=spark.createDataFrame(toaCustomerRDD,toaCustomerSchema);
在本发明实施例中,数据文件可以为导出的hive数据表,数据文件的字段结构在本身的hive数据表里面每列有对应的字段定义。
S2052,将所述虚拟表的表结构转换成一个创建表语句;
S2053,在所述第一数据库下执行所述创建表语句,完成创建所述数据表。
通过步骤S2051提到的DataFrame实际上已经是一个虚拟表,因为已经包含的表结构和数据,只是此时的虚拟表是在内存中。Sparksql会将虚拟的表结构转换成一个创建表的sql语句,并将此语句传给第一数据库执行从而完成表创建动作。
S206,读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
如图6所示,在一实施例中,所述步骤S206:所述读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表,包括:
S2061,读取所述数据文件,对读取出来的每一行数据按照预置分隔符进行拆分;
在本发明实施例中,数据文件中一行数据中是包含很多列的。就好比数据库的结构,只是在数据文件中每列中间是用特定的分隔符分割的,拆分后就可以得到每一列。因此本实施例需要对读取出来的每一行数据按照预置分隔符进行拆分,以得到每行数据中所包含的字段内容。读取数据文件的具体过程为:首先通过JavaSparkContext的textFile()方法传入一个文件路径,传入的文件路径是为了首先能找到需要进行读取的数据文件,然后要判断传入的数据文件是否真实存在,如果存在,则进行后续的读取操作;如果不存在,则不进行任何处理。
其中,预置分隔符是为使读取出来的数据文件中的各个内容拆分出来,具体可以用\t分割。例如,在中间服务器下载的(gz文件)并解压后的txt文件进行读取,然后对从txt文件中读取出来的每一行进行拆分,若当前文件中每列是用\t分割,这样会切分出多个列row例如现在有以下一行文件格式数:
123\t abc\t张三
用\t进行切分后就得到的3列数据分别为:
[123][abc][张三]
S2062,对拆分后得到的字段内容进行数据清洗;
对于本发明实施例,为了去除经过拆分数据中一些无用的字符或者进行数据的统一格式化,本实施例需要对拆分后得到的字段内容进行数据清洗。具体的,本实施例可对拆分出来的每一个字段内容可以进行去除空格、大小写转换、判断是否为空等数据处理操作,本发明实施例不做具体限定。
S2063,将经过所述数据清洗的所述字段内容依次插入所述数据表。
在本发明实施例中,将字段内容依次插入所述数据表的具体过程为:通过tagCubeDataFrame.write().mode(SaveMode.Overwrite).jdbc(数据库链接,表名,用户名密码等信息)将经过数据清洗的字段内容依次插入所述数据表中。其中,数据库链接为即将插入数据内容所在的数据库,数据表为通过步骤205创建的数据表,用户名密码等信息为需要对数据库修改的用户身份标识。
进一步的,在步骤S2063,读取所述数据文件,并将所述数据内容插入所述数据表之前,所述方法还包括:
首先,判断所述数据文件中的记录数据是否超过第二预置数值;若所述数据文件中的记录数据超过所述第二预置数值,则将所述数据文件的记录数据平均分配到多个分区中进行处理,每个所述分区可以独立处理所述数据文件的记录数据;若所述数据文件中的记录数据未超过第二预置数值,则无须对数据文件进行分区,可直接对数据文件进行处理。其中,第二预置数值可以根据实际需求进行设置,具体可以为100、300、500等,本发明实施例不做具体限定。
在本发明实施例中,分区目的是将大的数据文件分区后形成小数据文件,以便多个线程可以并行处理每个分区里面的小数据文件。例如:一个大数据文件中包含1000条数据,若分为10个区,那么每个区的100条,则可以用10个线程去并行处理10个区的数据。
与之相对应的,所述读取所述数据文件,并将所述数据内容插入所述数据表包括:
根据CPU当前可使用核数并行读取各分区中所述数据文件的记录数据,并将所述数据内容插入所述数据表。具体的,本发明实施例可以通过java服务端通过方法的方式获取当前服务器可用的核数:
例如,前面提到的现在有10个分区,然后现在有cpu可用核数5个,那么一个线程一个核,每个线程可以处理2个分区,即5个cpu核并行读取10个分区中的数据文件,并将各cpu核读取的字段内容插入所述数据表。需要说明的是,如果本侧服务器要求读取插入数据处理过程不能占用全部cpu核,则可以在上述获取到的localCores值上减去不可用的cpu数量,得到实际可用的cpu核数,但最终cpu核数不可小于1。
对于本发明实施例,将数据文件的记录数据平均分配到多个分区中进行处理,使得每个分区可以独立处理所述数据文件的记录数据,即根据CPU当前可使用核数并行读取各分区中数据文件的记录数据,并将所述数据内容插入所述数据表,以此解决了由于数据文件过大而导致的读取速度慢的问题;以及读取文件解析入库对服务器资源内存要求高,且容易出现内存不足应用崩溃的问题。
S207,在所述第一数据库下的所述数据表数据插入成功完成后,将当前使用的第二数据库切换成所述第一数据库。
对于本发明实施例,当所有的数据内容成功插入到该数据表后,将当前使用的第二数据库切换第一数据库,实现了上传方的数据文件的自动迁移,保证了数据迁移的安全性,避免数据文件导入失败对现在正常的数据造成的影响。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种隔离环境的数据处理装置,该隔离环境的数据处理装置与上述实施例中隔离环境的数据处理方法一一对应。如图7所示,该隔离环境的数据处理装置包括:下载模块10、创建模块20、插入模块30和切换模块40。各功能模块详细说明如下:
下载模块10,用于通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
创建模块20,用于在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
插入模块30,用于读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
切换模块40,用于在将所有的所述数据内容成功插入所述数据表后,将当前使用的第二数据库切换成所述第一数据库。
进一步的,所述下载模块10包括:
获取单元11,用于根据预设下载文件路径从所述中间服务器获取需要下载数据的文件夹;所述文件夹中包含由原始数据文件切分成的多个所述数据文件,所述原始数据文件中的记录数据超过第一预置数值;所述数据文件为压缩文件;
确定单元12,用于当所述文件夹中的数据文件下载完成后,通过上传文件信息确定下载的数据文件和上传的数据文件是否一致,所述上传文件信息是所述上传方写入所述中间服务器的。
进一步的,所述创建模块20包括:
建立单元21,用于根据所述数据文件的字段结构在内存中建立一个虚拟表;
转换单元22,用于将所述虚拟表的表结构转换成一个创建表语句;
执行单元23,用于在所述第一数据库下执行所述创建表语句,完成创建所述数据表。
进一步的,所述隔离环境的数据处理装置还包括:
删除模块50,用于删除在所述第一数据库中的所有的表及其数据。
进一步的,所述隔离环境的数据处理装置还包括:
获取模块60,用于获取数据库使用信息表,所述数据库使用信息表记录有当前使用的数据库和当前未使用的数据库,数据库切换信息;
确定模块70,用于根据所述数据库使用信息表中当前未使用的数据库和当前使用的数据库,分别确定所述第一数据库和所述第二数据库。
进一步的,所述插入模块30包括:
拆分单元31,用于读取所述数据文件,对读取出来的每一行数据按照预置分隔符进行拆分;
清洗单元32,用于对拆分后得到的字段内容进行数据清洗;
插入单元33,用于将经过所述数据清洗的所述字段内容依次插入所述数据表。
进一步的,所述隔离环境的数据处理装置还包括:
判断模块80,用于判断所述数据文件中的记录数据是否超过第二预置数值;
分配模块90,用于若所述数据文件中的记录数据超过所述第二预置数值,则将所述数据文件的记录数据平均分配到多个分区中进行处理,每个所述分区可以独立处理所述数据文件的记录数据;
所述插入模块30,还用于根据CPU当前可使用核数并行读取各分区中所述数据文件的记录数据,并将所述数据内容插入所述数据表。
关于隔离环境的数据处理装置的具体限定可以参见上文中对于隔离环境的数据处理方法的限定,在此不再赘述。上述隔离环境的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于数据解析服务以及后台数据管理服务。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种隔离环境的数据处理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下隔离环境的数据处理方法的步骤:
通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
在将所有的数据内容成功插入所述数据表后,将当前使用的第二数据库切换成所述第一数据库。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下隔离环境的数据处理方法的步骤:
通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
在将所有的数据内容成功插入所述数据表后,将当前使用的第二数据库切换成所述第一数据库。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种隔离环境的数据处理方法,其特征在于,所述方法包括:
通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
在将所有的所述数据内容成功插入所述数据表后,将当前使用的第二数据库切换成所述第一数据库。
2.根据权利要求1所述的隔离环境的数据处理方法,其特征在于,所述通过中间服务器下载数据文件:包括:
根据预设下载文件路径从所述中间服务器获取需要下载数据的文件夹;所述文件夹中包含由原始数据文件切分成的多个所述数据文件,所述原始数据文件中的记录数据超过第一预置数值;所述数据文件为压缩文件;
当所述文件夹中的数据文件下载完成后,通过上传文件信息确定下载的数据文件和上传的数据文件是否一致,所述上传文件信息是所述上传方写入所述中间服务器的。
3.根据权利要求1或2所述的隔离环境的数据处理方法,其特征在于,所述在第一数据库下,根据所述数据文件的字段结构创建一个数据表,包括
根据所述数据文件的字段结构在内存中建立一个虚拟表;
将所述虚拟表的表结构转换成一个创建表语句;
在所述第一数据库下执行所述创建表语句,完成创建所述数据表。
4.根据权利要求3所述的隔离环境的数据处理方法,其特征在于,所述在第一数据库下,根据所述数据文件的字段结构创建一个数据表之前,所述方法还包括:
删除在所述第一数据库中的所有的表及其数据。
5.根据权利要求3所述的隔离环境的数据处理方法,其特征在于,所述在第一数据库下,根据所述数据文件的字段结构创建一个数据表之前,所述方法还包括:
获取数据库使用信息表,所述数据库使用信息表记录有当前使用的数据库和当前未使用的数据库,以及数据库切换信息;
根据所述数据库使用信息表中当前未使用的数据库和当前使用的数据库,分别确定所述第一数据库和所述第二数据库。
6.根据权利要求1所述的隔离环境的数据处理方法,其特征在于,所述读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表,包括:
读取所述数据文件,对读取出来的每一行数据按照预置分隔符进行拆分;
对拆分后得到的字段内容进行数据清洗;
将经过数据清洗的所述字段内容依次插入所述数据表。
7.根据权利要求6所述的隔离环境的数据处理方法,其特征在于,所述读取所述数据文件,并将所述数据内容插入所述数据表之前,所述方法还包括:
判断所述数据文件中的记录数据是否超过第二预置数值;
若所述数据文件中的记录数据超过所述第二预置数值,则将所述数据文件的记录数据平均分配到多个分区中进行处理,每个所述分区可以独立处理所述数据文件的记录数据;
所述读取所述数据文件,并将所述数据内容插入所述数据表包括:
根据CPU当前可使用核数并行读取各所述分区中所述数据文件的记录数据,并将所述数据内容插入所述数据表。
8.一种隔离环境的数据处理装置,其特征在于,包括:
下载模块,用于通过中间服务器下载数据文件,所述中间服务器中的所述数据文件是数据上传方上传的;
创建模块,用于在第一数据库下,根据所述数据文件的字段结构创建一个数据表;所述第一数据库为当前未使用的数据库;
插入模块,用于读取所述数据文件中的数据内容,并将所述数据内容插入所述数据表;
切换模块,用于在将所有的所述数据内容成功插入所述数据表后,将当前使用的第二数据库切换成所述第一数据库。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述隔离环境的数据处理方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述隔离环境的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811526494.1A CN109783571B (zh) | 2018-12-13 | 2018-12-13 | 隔离环境的数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811526494.1A CN109783571B (zh) | 2018-12-13 | 2018-12-13 | 隔离环境的数据处理方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783571A true CN109783571A (zh) | 2019-05-21 |
CN109783571B CN109783571B (zh) | 2023-10-27 |
Family
ID=66496179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811526494.1A Active CN109783571B (zh) | 2018-12-13 | 2018-12-13 | 隔离环境的数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783571B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309733A (zh) * | 2020-02-20 | 2020-06-19 | 深圳震有科技股份有限公司 | 增量数据抽取处理方法及装置、计算机设备、介质 |
CN112351069A (zh) * | 2020-09-30 | 2021-02-09 | 银盛通信有限公司 | 一种自动化数据上传和维护传输稳定性的系统及方法 |
CN112835887A (zh) * | 2019-11-25 | 2021-05-25 | 航天信息股份有限公司 | 数据库管理方法、装置、计算设备和存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217075A1 (en) * | 2002-05-16 | 2003-11-20 | Hitachi, Ltd. | Method for reserving pages of database |
US20040006555A1 (en) * | 2002-06-06 | 2004-01-08 | Kensaku Yamamoto | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part |
CN101527656A (zh) * | 2009-04-15 | 2009-09-09 | 烽火通信科技股份有限公司 | Ngn业务平台数据库应急切换系统及其实现方法 |
CN102841918A (zh) * | 2012-06-29 | 2012-12-26 | 用友软件股份有限公司 | 二进制长对象流化数据处理装置和方法 |
CN102999519A (zh) * | 2011-09-15 | 2013-03-27 | 上海盛付通电子商务有限公司 | 一种数据库的读写方法及系统 |
CN103617277A (zh) * | 2013-12-09 | 2014-03-05 | 山东瀚高基础软件股份有限公司 | 一种还原误删除的数据表内容的方法 |
CN103942287A (zh) * | 2014-04-10 | 2014-07-23 | 大唐移动通信设备有限公司 | 海量数据处理方法、数据库服务器及应用服务器 |
CN104252502A (zh) * | 2013-06-29 | 2014-12-31 | 北京新媒传信科技有限公司 | 一种数据库管理平台中数据迁移方法和装置 |
CN104618584A (zh) * | 2015-01-09 | 2015-05-13 | 深圳市前海富达科技有限公司 | 一种切换智能终端安全工作模式的方法及系统 |
CN105159970A (zh) * | 2015-08-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种数据库数据迁移系统及方法 |
CN105528368A (zh) * | 2014-09-30 | 2016-04-27 | 北京金山云网络技术有限公司 | 一种数据库迁移方法及装置 |
CN105786998A (zh) * | 2016-02-19 | 2016-07-20 | 创元网络技术股份有限公司 | 数据库中间件系统及利用其处理数据的方法 |
CN106802895A (zh) * | 2015-11-26 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 用于修复数据库备库数据的方法和设备 |
CN107704490A (zh) * | 2017-08-22 | 2018-02-16 | 贵州白山云科技有限公司 | 一种基于对等存储的数据处理方法及装置 |
CN108121827A (zh) * | 2018-01-15 | 2018-06-05 | 农信银资金清算中心有限责任公司 | 一种全量数据的同步方法及装置 |
CN105303113B (zh) * | 2014-06-23 | 2018-08-03 | 威尔奇·伊沃 | 一种身份防窃取方法和硬件数据库设备 |
-
2018
- 2018-12-13 CN CN201811526494.1A patent/CN109783571B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217075A1 (en) * | 2002-05-16 | 2003-11-20 | Hitachi, Ltd. | Method for reserving pages of database |
US20040006555A1 (en) * | 2002-06-06 | 2004-01-08 | Kensaku Yamamoto | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part |
CN101527656A (zh) * | 2009-04-15 | 2009-09-09 | 烽火通信科技股份有限公司 | Ngn业务平台数据库应急切换系统及其实现方法 |
CN102999519A (zh) * | 2011-09-15 | 2013-03-27 | 上海盛付通电子商务有限公司 | 一种数据库的读写方法及系统 |
CN102841918A (zh) * | 2012-06-29 | 2012-12-26 | 用友软件股份有限公司 | 二进制长对象流化数据处理装置和方法 |
CN104252502A (zh) * | 2013-06-29 | 2014-12-31 | 北京新媒传信科技有限公司 | 一种数据库管理平台中数据迁移方法和装置 |
CN103617277A (zh) * | 2013-12-09 | 2014-03-05 | 山东瀚高基础软件股份有限公司 | 一种还原误删除的数据表内容的方法 |
CN103942287A (zh) * | 2014-04-10 | 2014-07-23 | 大唐移动通信设备有限公司 | 海量数据处理方法、数据库服务器及应用服务器 |
CN105303113B (zh) * | 2014-06-23 | 2018-08-03 | 威尔奇·伊沃 | 一种身份防窃取方法和硬件数据库设备 |
CN105528368A (zh) * | 2014-09-30 | 2016-04-27 | 北京金山云网络技术有限公司 | 一种数据库迁移方法及装置 |
CN104618584A (zh) * | 2015-01-09 | 2015-05-13 | 深圳市前海富达科技有限公司 | 一种切换智能终端安全工作模式的方法及系统 |
CN105159970A (zh) * | 2015-08-25 | 2015-12-16 | 浪潮(北京)电子信息产业有限公司 | 一种数据库数据迁移系统及方法 |
CN106802895A (zh) * | 2015-11-26 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 用于修复数据库备库数据的方法和设备 |
CN105786998A (zh) * | 2016-02-19 | 2016-07-20 | 创元网络技术股份有限公司 | 数据库中间件系统及利用其处理数据的方法 |
CN107704490A (zh) * | 2017-08-22 | 2018-02-16 | 贵州白山云科技有限公司 | 一种基于对等存储的数据处理方法及装置 |
CN108121827A (zh) * | 2018-01-15 | 2018-06-05 | 农信银资金清算中心有限责任公司 | 一种全量数据的同步方法及装置 |
Non-Patent Citations (1)
Title |
---|
廖锋等: "电信运营商BOSS系统中内存数据库的应用研究", 《 数据通信》, pages 5 - 9 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835887A (zh) * | 2019-11-25 | 2021-05-25 | 航天信息股份有限公司 | 数据库管理方法、装置、计算设备和存储介质 |
CN111309733A (zh) * | 2020-02-20 | 2020-06-19 | 深圳震有科技股份有限公司 | 增量数据抽取处理方法及装置、计算机设备、介质 |
CN112351069A (zh) * | 2020-09-30 | 2021-02-09 | 银盛通信有限公司 | 一种自动化数据上传和维护传输稳定性的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109783571B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210064476A1 (en) | Backup of partitioned database tables | |
US11036591B2 (en) | Restoring partitioned database tables from backup | |
US11327949B2 (en) | Verification of database table partitions during backup | |
US11468015B2 (en) | Storage and synchronization of metadata in a distributed storage system | |
CN102970158B (zh) | 日志存储与处理的方法及日志服务器 | |
US11860741B2 (en) | Continuous data protection | |
WO2021169113A1 (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
US9031997B2 (en) | Log file compression | |
CN107122360A (zh) | 数据迁移系统和方法 | |
CN109783571A (zh) | 隔离环境的数据处理方法、装置、计算机设备及存储介质 | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN106970929A (zh) | 数据导入方法及装置 | |
CN109669976A (zh) | 基于etl的数据服务方法及设备 | |
CN110209731A (zh) | 数据同步方法、装置、及存储介质、电子装置 | |
CN109040191A (zh) | 文件下载方法、装置、计算机设备和存储介质 | |
CN106850761A (zh) | 日志文件存储方法及装置 | |
CN106407442A (zh) | 一种海量文本数据处理方法及装置 | |
CN106980618B (zh) | 基于MongoDB分布式集群架构的文件存储方法和系统 | |
WO2021202503A1 (en) | Optimize backup from universal share | |
CN112905676A (zh) | 一种数据文件的导入方法及装置 | |
CN109669815A (zh) | 一种通过lun远程映射实现备份数据恢复的方法及系统 | |
CN110019092A (zh) | 数据存储的方法、控制器和系统 | |
CN110188111A (zh) | 一种离线数据批量更新方法、装置和分布式存储系统 | |
CN108572994A (zh) | 一种数据迁移的处理方法及服务器 | |
KR102225258B1 (ko) | 데이터베이스 시스템에서 효율적인 변경 데이터 캡쳐를 제공하기 위한 컴퓨터 프로그램 |
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 |