掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、装置及系统

文献发布时间:2023-06-19 11:45:49


数据处理方法、装置及系统

技术领域

本发明涉及大数据技术领域,具体涉及一种数据处理方法、装置及系统。

背景技术

目前,大数据纳管需要事先登记表结构等信息提前生成入湖表,且纳管过程是通过读取数据、从对方服务器发送的事先登记好的文件内容来实现的,这导致各应用已纳管的表对应的表结构变更时,无法实时同步至大数据仓库,产生了纳管报错的问题,同时,由于传输文件存在大小限制,也无法应付数据量指数激增导致的文件过大的情况,导致了文件无法传输。

发明内容

有鉴于此,本发明提供一种数据处理方法、装置及系统,以解决上述提及的至少一个问题。

根据本发明的第一方面,提供一种数据处理方法,所述方法包括:

响应于源数据表结构更新,根据预定的表结构字段信息获取存储在数据库中的源数据;

根据预定的单个文件大小,将获取的源数据生成至少一个二进制文件;

根据所述至少一个二进制文件、二进制文件的文件名、表结构字段信息生成拼接文件;

在执行数据纳管操作之前,根据预定的数据映射信息将所述拼接文件传输至数据纳管系统中的预定位置。

根据本发明的第二方面,提供一种数据处理装置,所述装置包括:

源数据获取单元,用于响应于源数据表结构更新,根据预定的表结构字段信息获取存储在数据库中的源数据;

二进制文件生成单元,用于根据预定的单个文件大小,将获取的源数据生成至少一个二进制文件;

拼接文件生成单元,用于根据所述至少一个二进制文件、二进制文件的文件名、表结构字段信息生成拼接文件;

拼接文件传输单元,用于在执行数据纳管操作之前,根据预定的数据映射信息将所述拼接文件传输至数据纳管系统中的预定位置。

根据本发明的第三方面,提供一种数据处理系统,所述系统包括:上述的数据处理装置、数据库和数据纳管系统。

根据本发明的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。

根据本发明的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

由上述技术方案可知,通过在源数据表结构更新时,根据预定的表结构字段信息获取源数据,并根据预定的单个文件大小将获取的源数据生成至少一个二进制文件,随后根据该二进制文件及其文件名和表结构字段信息生成拼接文件,之后在执行数据纳管操作之前,将拼接文件传输至数据纳管系统中的预定位置,从而可以克服现有技术中的在源表结构发生变化时无法实时同步到数据纳管系统而导致的纳管报错问题,通过生成多个二进制文件也可以克服因文件过大而无法传输文件的问题,通过本技术方案,可以降低纳管数据报错率,提高文件的传输成功率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的数据处理方法的流程图;

图2是根据本发明实施例的数据处理系统的结构框图;

图3是根据本发明实施例的数据处理装置的结构框图;

图4是根据本发明实施例的数据处理系统的示例结构框图;

图5是根据本发明实施例的数据处理示例系统的工作原理图;

图6为本发明实施例的电子设备600的系统构成的示意框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

鉴于目前的数据纳管方案,在源表结构发生变化时,无法实时同步到数据纳管系统,导致了纳管报错的问题,同时,由于传输文件存在大小限制,也无法应付文件过大而导致无法传输的情况。基于此,本发明实施例提供一种数据处理方案,通过该方案可以解决上述缺陷,降低纳管数据报错率,减少因文件过大而无法传输文件的问题。以下结合附图来详细描述本发明实施例。

图1是根据本发明实施例的数据处理方法的流程图,如图1所示,该流程包括:

步骤101,响应于源数据表结构更新,根据预定的表结构字段信息获取存储在数据库中的源数据。

这里的表结构字段信息可以是:表名称、文件名称等。

步骤102,根据预定的单个文件大小,将获取的源数据生成至少一个二进制文件(BIN文件)。

具体地,可以根据预定的单个文件大小,将获取的源数据按照预定序号依次生成多个二进制文件。

在一个实施例中,可以根据该至少一个二进制文件的文件大小生成相应的校验文件,用于校验二进制文件是否完整。

步骤103,根据所述至少一个二进制文件、二进制文件的文件名(例如包括:源表名称和文件序列号等)、表结构字段信息生成拼接文件。

步骤104,在执行数据纳管操作之前,根据预定的数据映射信息将所述拼接文件传输至数据纳管系统中的预定位置。

这里的映射信息可以包括:表名称、文件名称、在纳管系统中的文件名称之间的关联关系。

当数据纳管系统中没有与拼接文件的表名称、文件名称相应的数据时,表明该拼接文件是首次存入数据纳管系统,则将该拼接文件直接存入数据纳管系统即可。当数据纳管系统中存在与拼接文件的表名称、文件名称相应的历史数据时,表明该拼接文件是更新类数据,则将该拼接文件存入与历史数据相应的位置,对历史数据进行更新操作,包括但不限于:删除、替换、增加等。

之后,可以根据拼接文件更新上述数据映射信息。

通过在源数据表结构更新时,根据预定的表结构字段信息获取源数据,并根据预定的单个文件大小将获取的源数据生成至少一个二进制文件,随后根据该二进制文件及其文件名和表结构字段信息生成拼接文件,之后在执行数据纳管操作之前,将拼接文件传输至数据纳管系统中的预定位置,从而可以克服现有技术中的在源表结构发生变化时无法实时同步到数据纳管系统而导致的纳管报错问题,通过生成多个二进制文件也可以克服因文件过大而无法传输文件的问题,通过本发明实施例,可以降低纳管数据报错率,提高文件的传输成功率。

在一个实施例中,在步骤102生成至少一个二进制文件之后,还可以直接将至少一个二进制文件通过文件传输协议(FTP,File Transfer Protocol)传输至所述数据纳管系统。

在FTP传输中,不管文件传输成功或者失败,优选地都会将传输的文件进行备份。

在实际操作中,还可以预先生成数据索引信息,该数据索引信息包括:表结构字段信息;之后,当需要进行查询操作时,可以根据所述数据索引信息对所述数据库执行查询操作。

基于相似的发明构思,本发明实施例还提供一种数据处理系统,如图2所示,该系统包括:数据处理装置1、数据库2和数据纳管系统3,其中,数据处理装置1优选地可用于实现上述方法实施例中的流程。

图3是数据处理装置1的结构框图,如图3所示,该数据处理装置1包括:源数据获取单元11、二进制文件生成单元12、拼接文件生成单元13和拼接文件传输单元14,其中:

源数据获取单元11,用于响应于源数据表结构更新,根据预定的表结构字段信息获取存储在数据库中的源数据。

二进制文件生成单元12,用于根据预定的单个文件大小,将获取的源数据生成至少一个二进制文件。

具体地,二进制文件生成单元根据预定的单个文件大小,将获取的源数据按照预定序号依次生成多个二进制文件。

拼接文件生成单元13,用于根据所述至少一个二进制文件、二进制文件的文件名、表结构字段信息生成拼接文件。

拼接文件传输单元14,用于在执行数据纳管操作之前,根据预定的数据映射信息将所述拼接文件传输至数据纳管系统中的预定位置。

通过在源数据表结构更新时,源数据获取单元11根据预定的表结构字段信息获取源数据,二进制文件生成单元12根据预定的单个文件大小将获取的源数据生成至少一个二进制文件,随后拼接文件生成单元13根据该二进制文件及其文件名和表结构字段信息生成拼接文件,之后在执行数据纳管操作之前,拼接文件传输单元14将拼接文件传输至数据纳管系统中的预定位置,从而可以克服现有技术中的在源表结构发生变化时无法实时同步到数据纳管系统而导致的纳管报错问题,通过生成多个二进制文件也可以克服因文件过大而无法传输文件的问题,通过本发明实施例,可以降低纳管数据报错率,提高文件的传输成功率。

在一个实施例中,上述数据处理装置1还包括:二进制文件传输单元,用于将所述至少一个二进制文件通过文件传输协议传输至所述数据纳管系统。

在具体实施过程中,上述数据处理装置1还包括:索引信息生成单元和查询单元,其中:索引信息生成单元,用于预先生成数据索引信息,所述数据索引信息包括:表结构字段信息;查询单元,用于根据所述数据索引信息对所述数据库执行查询操作。

优选地,上述数据处理装置1还包括:校验文件生成单元,用于根据所述至少一个二进制文件的文件大小生成该至少一个二进制文件的校验文件。

进一步地,上述数据处理装置1还包括:映射信息更新单元,用于根据所述拼接文件更新所述数据映射信息。

上述各单元、各模块的具体执行过程,可以参见上述方法实施例中的描述,此处不再赘述。

在实际操作中,上述各单元、各模块可以组合设置、也可以单一设置,本发明不限于此。

为了更好地理解本发明,以下结合图4对数据处理示例系统进行详细描述。

如图4所示,该示例系统包括:数据采集系统、数据传输系统和数据纳管系统,其中:

数据采集系统,用于获取源数据库表结构,生成文件,文件内容为按表结构字段的字符数前补空格进行拼接的文本,支持条件查询和多数据源,当数据库中的表结构不统一时,例如表结构字段的新增、删除、修改等,会发出警报,便于后续工作人员进行处理。

数据传输系统,用于实现数据采集系统和数据纳管系统的数据交互,数据传输系统可以是KAFKA(一种高吞吐量的分布式发布订阅消息系统)系统,实现将数据采集系统获取的信息和文件传输给数据纳管系统,超时则会警报并输出日志。

数据纳管系统:根据预定逻辑将获取到的数据文件上传至Hadoop(一种分布式系统基础架构)分布式文件系统。

以下结合图5来详细描述示例系统的工作原理。

如图5所示,示例系统的工作原理包括:

1、预处理

步骤1-1,预先登记入湖表数据,生成源表与Hadoop表结构的关联关系,可以是以表的形式存在的映射关系表sql,便于后续的查询、获取数据等操作。生成入湖信息表,包括Hadoop库名,入湖日期(首次入湖日期),入湖状态,将数据状态置为0(0:未入湖,1:正在入湖,2:已入湖)。

步骤1-2,开通数据采集系统和数据纳管系统的文件服务器的防火墙,以便利用FTP发送文件。

2、数据采集系统的工作原理

步骤2-1,多数据源可以利用information.schema查询数据库的表结构和索引,具体示例代码如下所示:

show keys from'${tableName}'

select column_name,column_type,column_comment,is_nullable frominformation_schema.COLUMNS where table_schema=DATABASE()and table_name='${tableName}'

步骤2-2,对比多个数据源相同表的字段信息和索引,如果字段信息和索引不一致,则说明多数据源表不同,此时发出警报,如果一致,执行步骤2-3。

步骤2-3,查询数据库数据条件配置化,利用预处理中的映射关系表sql获取表结构字段信息和索引,并将其放置在xml(可扩展标记语言)中作为select(选择)的查询条件进行拼接,生成的文件名为表名_文件序列号_入湖日期。

将查询的表结构字段orderby排序并加上“,”进行拼接作为数据库的字段查询源数据库的数据,生成BIN文件(即,上述的二进制文件),查询sql的示例代码如下:

select${columnName}from${tableName}where PARTID BETWEEN${minPartid}AND${maxPartid}order by${primaryKey}LIMIT${beginRow},${line}

步骤2-4,在实际操作中,可以设置单个文件最大容量,自定义文件大小,配置在入湖表名xml中方便程序进行查询。具体地,可以预先利用字段长度计算单个文件允许写入数据行数文件大小=文件大小/查询行大小/每次写入查询行数,超过该单个文件允许写入数据行数文件大小则按照序号生成下一文件。

步骤2-5,对每个BIN文件生成CHK校验文件,并将校验文件存放在本地服务器的固定目录,CHK校验名与BIN文件名相同,只是文件名后缀不同。CHK校验文件可以根据BIN文件的文件大小生成,用于后续验证BIN文件的完整性。

步骤2-6,将BIN文件通过数据传输系统里面的FTP文件传输方式传送给数据纳管系统。

步骤2-7,将首次入湖日期、表名、索引,预处理中对应字段的字段名和字段长度,源表的文件名用拼接符”**”进行拼接,备用。

3、数据传输系统的工作原理

步骤3-1,对于KAFKA系统,负责将数据采集系统步骤2-7的拼接文本传输给数据纳管系统,推送方式为异步,超过3天时间消息未被消费,发出警报,同时将未消费信息写入日志表。

步骤3-2,对于FTP文件传输方式,可以使用自动触发方式,定时扫描数据采集系统的发送目录,当文件完全生成在本地文件服务器的文件夹时,自动发送文件到数据纳管系统的文件服务器,文件发送成功则将文件移动到成功目录(发送目录加.succ),文件发送失败则将文件移动到失败目录(发送目录加.fail)进行备份。

4、数据纳管系统的工作原理

步骤4-1,定时读取KAFKA系统获取步骤2-7的拼接文本,将获取的数据以拼接符”**”进行截取,备用。

步骤4-2,比较数据库字段信息,具体地,根据获取的数据查询字段信息表,如果数据字段信息与数据库字段信息不同,则执行步骤4-3,否则进行步骤4-4。

步骤4-3,在查询字段信息表时,如果字段信息表状态为1(即,表字段有变化),则可以将旧表数据迁移到历史表中,再对HIVE(HIVE是基于Hadoopd的一个sql解析引擎,可以将sql语句转译成M-R关系然后在Hadoop执行)对应表结构进行移行。在实际操作中,不会修改HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)的数据文件,只是修改元数据中的表定义,即重新对HDFS的数据文件内容按顺序进行M-R(对象-关系)数据映射,之后置字段状态为0。

步骤4-4,根据获取的数据查询字段信息表,如果字段信息相同,则将数据直接放入预定的数据表中,并设置表状态字段信息为0(即,表字段没变化)。同时,将首次入湖日期、表名、索引和入湖文件名更新到入湖信息关联映射表进行存储。

步骤4-5,读取入湖信息关联映射表的表文件名,按文件名定时扫描本地服务器目录里面的文件。

步骤4-6,将对应文件使用Hadoop提供的jar包(hadoop-client.jar,hadoop-common.jar,hadoop-hadfs.jar,hadoop-mapreduce-client-core.jar)将本地BIN文件通过流的方式传输到分布式文件系统HDFS的服务器,并依次置数据状态1(正在入湖)、2(已入湖),成功时同时将入湖日期置为下一天。

步骤4-7,基于HIVE查询表结构信息表中的字段信息,并对HDFS的数据文件内容按顺序映射成表格(TABLE)。

本实施例提供的示例系统基于KAFKA进行大数据动态纳管,一方面,当源表临时发生改变的时候,由于Hadoopd的表结构是通过每天消费来自于数据采集系统推送到KAFKA的字段信息,因此可在源表结构更新后、纳管数据前对HDFS进行移行,避免纳管报错,且对于业务量越来越大的情况,按序号动态新增文件写入数据能很好地解决单个文件过大导致的无法传输的现象,从而减少了维护成本,另一方面,系统将表名、查询条件、数据源等配置进行配置化,提高了系统的易操作性。

本实施例还提供一种电子设备,该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照上述方法实施例进行实施及数据处理装置/系统的实施例进行实施,其内容被合并于此,重复之处不再赘述。

图6为本发明实施例的电子设备600的系统构成的示意框图。如图6所示,该电子设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。

一实施例中,数据处理功能可以被集成到中央处理器100中。其中,中央处理器100可以被配置为进行如下控制:

响应于源数据表结构更新,根据预定的表结构字段信息获取存储在数据库中的源数据;

根据预定的单个文件大小,将获取的源数据生成至少一个二进制文件;

根据所述至少一个二进制文件、二进制文件的文件名、表结构字段信息生成拼接文件;

在执行数据纳管操作之前,根据预定的数据映射信息将所述拼接文件传输至数据纳管系统中的预定位置。

从上述描述可知,本申请实施例提供的电子设备,通过在源数据表结构更新时,根据预定的表结构字段信息获取源数据,并根据预定的单个文件大小将获取的源数据生成至少一个二进制文件,随后根据该二进制文件及其文件名和表结构字段信息生成拼接文件,之后在执行数据纳管操作之前,将拼接文件传输至数据纳管系统中的预定位置,从而可以克服现有技术中的在源表结构发生变化时无法实时同步到数据纳管系统而导致的纳管报错问题,通过生成多个二进制文件也可以克服因文件过大而无法传输文件的问题,通过本发明实施例,可以降低纳管数据报错率,提高文件的传输成功率。

在另一个实施方式中,数据处理装置/系统可以与中央处理器100分开配置,例如可以将数据处理装置/系统配置为与中央处理器100连接的芯片,通过中央处理器的控制来实现数据处理功能。

如图6所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图6中所示的所有部件;此外,电子设备600还可以包括图6中没有示出的部件,可以参考现有技术。

如图6所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。

其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。

输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。

该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。

存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述数据处理方法的步骤。

综上所述,本发明实施例提供了一种数据处理方案,主要用于解决当源表临时发生结构改变时,无法实时同步到大数据管理平台的缺陷,且对于数据量激增时可动态切割按序号生成对应文件,防止因为文件太大导致无法传输的现象,从而可以通过只设置配置文件即可达到入湖目的。

以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 通信系统、数据处理装置、服务器、数据处理方法、执行数据处理方法的程序和记录程序的记录媒体
  • 显示装置、升级装置、显示系统和显示系统的数据处理方法
技术分类

06120113047680