一种异构数据源规范化处理方法、装置及服务器与流程

文档序号:14444434阅读:258来源:国知局
一种异构数据源规范化处理方法、装置及服务器与流程
本申请涉及数据处理
技术领域
,尤其涉及一种异构数据规范化处理方法、装置及服务器。
背景技术
:随着信息化时代的到来,信息数据的生成和更迭速度不断加快,信息数据量也随之迅速增加。在数量众多的信息数据中,由于数据源的来源不同,其数据类型、数据结构也多种多样。由于不同数据结构的数据源都要使用不同的分析逻辑,导致在对多个不同数据结构的数据源进行数据分析时,不能直接使用通用的分析逻辑对这些数据源进行统一的处理。现有技术中,为了实现对异构数据的统一处理,使用了一种异构数据源的预处理方法,如图1所示,这种方法将获取到的数据源预处理成指定的数据结构,然后再存储至数据库中,当需要进行数据分析时,从数据库中加载已经统一处理成指定数据结构的数据源至服务器。但是,如果数据源的数据内容、配置信息、数据结构等任何一个因素发生变化,现有技术中的方法都要重新将数据源进行预处理,并更新存储至数据库中,以保证存储在数据库中的数据源保持完整和准确。但是,由于数据源的数据量巨大,每次进行预处理时都要消耗大量时间,无法保证数据库中数据的及时性。并且,对于数据分析来说,有价值的数据仅占数据源的一部分,因此,现有技术的方法会处理和存储大量无价值的数据,造成硬件存储资源的浪费。并且,由于数据源的数据内容、配置信息、数据结构等会随时发生变化,在数据分析过程中,为了保证数据分析的及时和准确,需要实时加载最新的数据源,而现有技术中,由于预处理需要消耗大量时间,数据库中的数据源只能间隔一段时间才能更新一次,当进行数据分析时,数据库中存储的数据源可能已经过期,因此,现有技术无法保证在数据分析时,加载到的是最新的数据源,从而无定法保证数据的实时和准确。技术实现要素:本申请实施例提供了一种异构数据规范化处理方法、装置及服务器,以解决现有技术中存在的问题。第一方面,本申请实施例提供了一种异构数据源规范化处理方法,所述方法包括:获取至少一个待处理数据源,根据每个待处理数据源的概要信息,生成每个待处理数据源的信息索引;根据所述信息索引和服务器的处理能力,对待处理数据源进行分片,并生成每个数据源分片的片区信息索引;根据服务器各个集群节点的负载状态,将所述数据源分片转化成预设运算框架下的数据集区块;根据所述片区信息索引,整合所有所述数据集区块。第二方面,本申请实施例提供了一种异构数据源规范化处理装置,所述装置包括:索引模块,用于获取至少一个待处理数据源,根据每个待处理数据源的概要信息,生成每个待处理数据源的信息索引;划分模块,用于根据所述信息索引和服务器的处理能力,对待处理数据源进行分片,并生成每个数据源分片的片区信息索引;转化模块,用于根据服务器各个集群节点的负载状态,将所述数据源分片转化成预设运算框架下的数据集区块;整合模块,用于根据所述片区信息索引,整合所有所述数据集区块。第三方面,本申请实施例提供了一种服务器,其中,服务器由多个集群节点组成,包括一个主节点和若干子节点,其特征在于,所述主节点用于分配所述子节点执行以下步骤:获取至少一个待处理数据源,根据每个待处理数据源的概要信息,生成每个待处理数据源的信息索引;根据所述信息索引和服务器的处理能力,对待处理数据源进行分片,并生成每个数据源分片的片区信息索引;根据服务器各个集群节点的负载状态,将所述数据源分片转化成预设运算框架下的数据集区块;根据所述片区信息索引,整合所有所述数据集区块。由以上技术方案可知,本申请实施例提供了一种异构数据源规范化处理方法、装置及服务器,能够根据待处理数据源的概要信息生成待处理数据源的信息索引,信息索引以统一的通用结构封装了异构数据源的概要信息;然后,将待处理的异构数据源分成多个数据源分片,再根据数据源分片的片区信息索引将数据源分片转化成预设运算框架下的数据集区块;最后,整合数据集区块,得到异构数据源规范化处理后的数据集。与现有技术相比,本申请的技术方案直接从待处理数据源中获取数据源分片,从而保证获取的数据源及时准确,通过服务器的集群节点多线程地将数据源分片转化成数据集区块并整合,得到规范化的数据集,极大地减小了数据处理时间,从而保证了数据的实时性;并且,当数据源中的内容发生变化时,仅需对发生变化的数据源分片进行重新读取和转化,而不需要重新加载数据源,实现数据集的及时更新。附图说明为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术的一种异构数据源的预处理方法的示意图;图2为本申请实施例提供的一种异构数据源规范化处理方法的流程图;图3为本申请实施例提供的一种异构数据源规范化处理方法步骤s110的流程图;图4为本申请实施例提供的一种异构数据源规范化处理方法步骤s120的流程图;图5为本申请实施例提供的一种异构数据源规范化处理方法步骤s122的流程图;图6为本申请实施例提供的一种异构数据源规范化处理方法步骤s130的流程图;图7为本申请实施例提供的一种异构数据源规范化处理方法步骤s134的流程图;图8为本申请实施例提供的一种异构数据源规范化处理方法步骤s140的流程图;图9为本申请实施例提供的一种异构数据源规范化处理装置框图;图10为本申请实施例提供的一种服务器的结构框图。具体实施方式为了使本
技术领域
的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。现有技术中对异构数据的处理中,先将获取到的数据源预处理成指定的数据结构,然后在存储至数据库中,当需要进行数据分析时,从数据库中加载已经统一处理成指定数据结构的数据源。但是,由于数据源会经常发生变化,例如数据增加、数据变更等,当数据发生变化时,现有技术的处理方法要重新将数据源进行处理并重新存储至数据库,这一过程耗时很长,无法满足数据的实时性,并且由于每次对数据源进行预处理都需要消耗大量时间,数据库中的数据源只能间隔一段时间才能更新一次,当进行数据分析时,数据库中存储的数据源可能已经过期,因此,现有技术无法保证在数据分析时,加载到的是最新的数据源,从而无定法保证数据的实时和准确。本申请实施例提供了一种异构数据源规范化处理方法,图2为本申请实施例提供的一种异构数据源规范化处理方法的流程图,如图2所示,所述方法包括:步骤s110,获取至少一个待处理数据源,根据每个待处理数据源的概要信息,生成每个待处理数据源的信息索引。本申请中,数据源可分为两种数据类型:数据库型和文本型。其中,数据库型可更进一步包括:关系型数据库和非关系型数据库;常见的关系型数据库有:sqlserver,oracle,mysql,postgresql等;常见的非关系型数据库有:mongodb,redis,couchdb等。由于数据源的类型多,数据结构也不同,因此本申请中的数据源统称为异构数据源。关系型数据库通常以数据表的形式存储数据,在数据表中,每个数据列对应一个字段(也称:键),数据列中每个单元格对应字段的一个数据值(也称:键值),每个数据行中的多个数据值构成了一组字段之间的约束关系,例如,表1为某关系型数据库中的一个数据表:表1员工编号姓名性别职务年龄0065张三男前端工程师250066李四男运维工程师26表1是某公司员工数据库中,记录员工信息的一个数据表,该数据表中包含五个数据列,分别对应员工编号、姓名、性别、职务和年龄这五个字段,每个数据行建立起的员工编号、姓名等字段的约束关系,从而约束了数据表中每个员工的员工信息。在关系型数据库中,数据表可以有多个,多个数据表之间可通过字段和键值建立关联。例如,某公司的员工数据库中,除了员工信息的数据表,还有部门信息数据表,如表2所示:表2部门编号部门名称部长办公地点部门人数002移动事业部王一6#0325003技术支撑部赵六6#0510如果要将表2中的数据与与表1中的数据建立关联,可在表1中增加一个数据列“所属部门”,如表3所示:表3员工编号姓名所属部门性别职务年龄0065张三002男前端工程师250066李四003男运维工程师26增加了数据列以后,表3通过“所属部门”与表2的“部门编号”建立关联,当更新数据库中的部门信息的时候,只需要更新表2,而不用对表1做出更新。非关系型数据库通常不需要定义数据表,非关系数据库中的数据有时会以数据集合的形式出现,例如:此外,文本型的数据源以文本文件的形式承载数据,常见的文本型数据源有:jaon格式文档、csv格式文档、txt格式文档等,例如一个文本型数据源的txt文件内容为:部门编号:002/部门名称:移动事业部/部长:王一/办公地点:6#03/部门人数:25部门编号:……从上述示例中可以看出,异构数据源的数据结构不同。本申请根据待处理的异构数据源的数据类型,获取每个待处理数据源的概要信息。其中,概要信息可以包括数据库类型(如:oracle、mongodb等)、字段名称(如:员工编号、姓名等)、约束关系(如员工编号、姓名等字段之间的约束关系,以及不同字段的数据值之间的约束关系)、数据行总量(如表1中有两行数据)、数据表关联(如表3通过“所属部门”与表2的“部门编号”建立关联)、数据源的文档大小(如某csv文件的文档大小为20mb)等信息。本申请在步骤s110中,获取待处理数据源的概要信息,并对根据这些概要信息生成待处理数据源的信息索引。其中,本申请中信息索引是一种数据模型,以约定的封装方式统一存储和描述所有待处理数据源的概要信息,从而将异构数据源的概要信息封装成一种通用结构。与概要信息适应地,信息索引中也包含了数据库类型、约束关系、数据关联等概要信息,这些概要信息在信息索引中以封装后的通用形式表达。由于在不同的数据分析中,希望从数据源中获取的信息也会有所不同,这就导致了数据源中的部分数据对于数据分析来说是无价值的,而现有技术的方法在预处理数据源时,也将无价值的数据一同处理并存储至数据库中,这就会导致在后续的数据分析中导入了无价值的数据,造成数据量增加。本申请中的信息索引中具体包含哪些概要信息,可根据具体的数据分析所需要的数据内容而确定,以实现后续的异构数据源规范化处理中,仅处理数据分析所需要的有价值信息,降低数据量,并减少无价值信息的干扰。本申请在步骤s110中将异构数据源的概要信息生成了通用结构的信息索引,在数据源处理过程中,能够直接从信息索引中获取每个数据源的概要信息;此外,异构数据源的概要信息被统一封装成了通用的结构,也有利于不同数据源之间概要信息的合并、转换、建立约束或关联。图3为本申请实施例提供的一种异构数据源规范化处理方法步骤s110的流程图,如图3所示,在一种可选择的实施方式中,步骤s110可以包括以下步骤:步骤s111,获取至少一个待处理数据源的存储地址。在实际应用中,异构数据源可能会分布在不同存储介质或网络位置中,例如:存储在本机存储介质中、分布在本地局域网中的各个用户机中、存储在云端数据服务器中,等等。数据源的来源不同,是造成数据源的数据类型不同的原因之一。本申请在步骤s111中,首先获取这些数据源的存储地址,例如,本机数据源的存储地址:d:\userdate\info.sql;局域网数据源的存储地址:192.168.1.130\public\userdate\department.csv;云端数据源的存储地址:ftp://example.cloud/upload/person.db。上述存储地址在步骤s112中用于获取数据源的概要信息,并且,在后续的数据源处理中,还可以根据存储地址对数据源进行数据读取。步骤s112,根据所述存储地址,获取至少一个待处理数据源的概要信息。在步骤s112中,根据已经获取到的数据源的存储地址,访问数据源文件,从数据源文件中读取数据源的概要信息,例如数据库类型,字段名称、约束关系、文档大小等。步骤s113,将所述概要信息进行统一封装,生成待处理数据源的所述信息索引。在步骤s113中,将从不同数据源读取的概要信息统一封装成通用结构的信息索引,在后续的数据源处理过程中,能够直接从信息索引中获取每个数据源的概要信息,此外,异构数据源的概要信息被统一封装成了通用的结构,也有利于不同数据源之间概要信息的合并、转换、建立约束或关联。在一种可选择的实施方式中,可以将一个可通用于异构数据源的schema作为信息索引。在数据库中,schema是一个数据库对象的集合,用于描述数据库的数据结构,schema能够定义数据库中的数据表、字段以及数据值之间的关系。步骤s120,根据所述信息索引和服务器的处理能力,对待处理数据源进行分片,并生成每个数据源分片的片区信息索引。本申请中,将待处理数据源进行分片,在后续的数据源处理过程中,可以通过服务器的多线程处理能力,对多个数据源分片进行多线程的并发处理,能够大幅提高异构数据源的处理速度。由于待处理数据源的数据结构、数据总量等有所不同,为了保证分片的合理,要根据数据源的具体情况确定每个数据源合理的分片数量。此外,服务器的处理能力也影响着其对数据源分片进行多线程并发处理的能力,因此,数据源分片的数量也要与服务器的处理能力相匹配,避免由于分片数量少而出现线程闲置,也避免由于分片数量过多而出现分片待处理的等待时间过长。因此,本申请在步骤s120中,根据所述信息索引和服务器的处理能力,合理确定每个数据源的分片数量,对待处理数据源以合理的分片数量进行分片,并对每个数据源分片生成片区信息索引。片区信息索引是数据源分片的概要信息进行封装后得到的通用数据模型,与步骤s110中生成的信息索引类似,在数据处理过程中,能够直接从片区信息索引中获取每个数据源分片的概要信息,有利于不同数据源分片之间概要信息的合并、转换、建立约束或关联。图4为本申请实施例提供的一种异构数据源规范化处理方法步骤s120的流程图,如图4所示,在一种可选择的实施方式中,步骤s120可以包括:步骤s121,根据所述信息索引获取待处理数据源的数据类型。对数据源分片时,要根据数据源的数据类型差异化地确定分片数量,数据源的信息索引中包含了数据源的数据类型。步骤s122,根据所述服务器的处理能力和所述数据类型,计算每个待处理数据源的分片数量。对于异构数据源来说,由于数据类型不同,数据源的数据结构不同,数据库与外界进行数据传输的方式也不同。例如,数据库型数据源在同一时刻能够连接并响应的请求具有一个最大数量,这个最大数量称为数据库型数据源的最大连接数,每一个对数据库型数据源的操作请求都需要通过一个连接来实现,一个数据库中可以包含n(n≥1)个连接,即理论上支持n个线程同时操作数据库。在对数据库型数据源进行分片时,要考虑服务器的处理能力(如服务器能提供的线程数量)和考虑数据源的空闲连接数,以综合确定数据源分片的数量,适合的数据源分片数量能在后续处理过程中能够充分利用服务器资源,提高多线程并发处理的效率。此外,文本型数据源由于不存在“连接”的概念,可根据数据源文档大小和服务器能提供的线程数确定分片的数量。图5为本申请实施例提供的一种异构数据源规范化处理方法步骤s122的流程图,如图5所示,在一种可选择的实施方式中,步骤s122包括以下步骤:步骤s1221,当待处理数据源的所述数据类型为数据库型时,获取待处理数据源的空闲连接数。由于,在实际应用中,数据库会通过部分连接与外部用户、主机等建立访问关系,从而实现将外部数据实时更新至数据库中,或者从数据库中实时获得数据等,因此,数据库的有些连接会处于被占用状态,本申请中,为了在异构数据源的规范化处理过程中,不干扰其他用户或主机等对数据库的正常访问和修改等操作,从待处理的数据库型数据源中获取空闲连接数,空闲连接数可包含在数据源的概要信息中。步骤s1222,根据所述服务器的处理能力和所述空闲连接数,计算所述分片数量。根据服务器的处理能力,例如服务器的可用线程数、单线程的处理能力等,以及空闲连接数,计算分片的数量。示例地,服务器的可用线程数量为256个,数据库型数据源的空闲连接数为128个,说明服务器的处理能力完全满足对数据库型数据源的处理要求,此时,最多可以在服务器和数据库型数据源之间建立128个连接。但是,在实际应用中,要保证数据库型数据源能够留有空闲连接去响应其他任务,因此,可对空闲连接预设一个调用比例,如调用50%的空闲连接,即64个连接;或者设置一个可调用的比例阈值,例如最多调用60%的空闲连接,如:调用70个连接。最后,可根据服务器单个线程的处理能力和调用的空闲连接数,计算出分片数量,例如:根据服务器单个线程的处理能力,预设每个分片中最多包含5000行数据。在预设基础上,调用的空闲连接数越多,每个分片中的数据行数越少,分片数量越多,调用的空闲连接数越少,每个分片中的数据行数越多,分片数量越少,从而避免在后续的数据源分片转化中出现大量空闲连接未被调用或被调用的连接中待处理分片数量过多的情况发生。步骤s1223,当待处理数据源的所述数据类型为文本型时,获取待处理数据源的文档大小。对于待处理的异构数据源中的每个文本型数据源来说,数据源的文档大小不同、数据量不同,每个数据源合理的分片数量也会不同。因此,在对文本型数据源分片时,要先获取数据源的文档大小,数据源的文档大小可以从信息索引中获得。步骤s1224,根据所述服务器的处理能力和所述文档大小,计算所述分片数量。在对文本型数据源进行分片时,服务器的处理能力可包括可用线程数,根据服务器的处理能力和文档大小确定每个数据源分片的大小,从而计算出分片的数量。此外,为了保证服务器留出部分线程以执行其他任务,可对服务器的可用线程预设一个调用比例或最大调用比例阈值。当调用的线程数量多时,每个分片的文档大小可减小,分片数量多,当调用的线程数量少时,每个分片的文档大小可增大,分片数量少,从而避免在后续的数据源分片转化中出现线程利用率低或每个线程的待处理分片数量过多的情况发生。在另一种可选择的实施方式中,步骤s122还可以包含以下步骤:步骤s1225,当待处理数据源的所述数据类型为文本型时,获取待处理数据源的句柄数量。本申请中,句柄数量是指当待处理数据源的数据类型为文本型时,文本型数据源的文件系统的句柄数量。文件系统不同句柄数量也就不同,可使用的句柄数量也就不同,因此在数据源分片时,应考虑到句柄数量。步骤s1226,根据所述服务器的处理能力和所述句柄数量,计算所述分片数量。在对文本型数据源进行分片时,服务器的处理能力可包括可用线程数,根据服务器的处理能力和句柄数量确定每个数据源分片的大小,从而计算出分片的数量。此外,要保证文本型数据源留出部分句柄以连接其他任务,可对空闲句柄手预设一个调用比例或在大调用比例阈值。当调用的句柄数量多时,每个分片的文档大小可减小,分片数量多,当调用的句柄数量少时,每个分片的文档大小可增大,分片数量少,从而避免在后续的数据源分片转化中出现句柄利用率低或每个句柄的待处理分片数量过多的情况发生。步骤s123,根据所述分片数量的计算结果,对待处理数据源进行分片,并生成每个所述数据源分片的片区信息索引。根据对异构数据源的分片数量计算结果,将异构数据源中的每个数据源进行分片,生成多个数据源分片,并根据异构数据源的信息索引,生成每个分片的片区信息索引。其中,片区信息索引,除了包含数据源分片的数据库类型、字段名称、数据表关联等概要信息外,还包含数据源分片在原数据源中的起始位置和终止位置的信息、或者是数据源分片在原数据源中按序确定的编号。通过分片索引信息中的起始位置和终止位置,或数据源分片等信息,在任何时候都可以将数据源分片中的数据进行还原和重构。步骤s130,根据服务器各个集群节点的负载状态,将所述数据源分片转化成预设运算框架下的数据集区块。本申请中,片区信息索引包含了数据源分片的数据类型、字段名称、约束关系、数据表关联等概要信息,以及数据源分片在原数据源中的起始位置和终止位置等信息,根据概要信息和位置信息,能获取数据源分片中的数据内容,并将数据源分片转换成预设运算框架下的数据集区块。本申请中,可使用包含有多个集群节点的集群服务器进行数据源分片的转化,集群节点的负载状态可以包括处理器的使用率、可用线程数量、内存使用率等信息,根据负载状态,均衡分配每个集群节点的数据源分片转化任务。本申请中,预设运算框架可以是一种集群运算框架,如:apachespark(以下简称spark)、mapreduce等,通过集群运算框架搭配集群管理员和分布式的存储系统,能够实现对大规模数据的分布式并行计算。在这些集群运算框架中,数据集是构成集群运算框架和实现分布式并行计算的基础。在一种可选择的实时方式中,使用spark集群运算框架,spark是一种在集群内存(ram)中运行的集群运算框架,通过使用内存运算技术,在数据尚未写入硬盘时即在内存内分析运算,因此,运算速度快,并能够节省硬盘空间。spark的核心数据结构是弹性分布式数据集(rdd:resilientdistributeddatasets),是一种可以并行操作、具有容错机制的数据集合,定义了spark的数据结构,rdd可分布在集群节点的内存中,spark可以通过rdd实现内存内的并行分析计算过程。rdd作为spark的数据结构,包含多个数据分区,每个分区是rdd的一部分(例如:一个数据表),因此,rdd的每个分区之间会存在数据关联而具有相互依赖的关系。图6为本申请实施例提供的一种异构数据源规范化处理方法步骤s130的流程图,如图6所示,在一种可选择的实施方式中,步骤s130包括以下步骤:步骤s131,根据各个所述集群节点的负载状态,将所述片区信息索引分发给所述集群节点中的空闲节点。根据集群节点的负载状态,可以从集群节点中选择出空闲节点,例如:选取选择处理器使用率低、可用线程数量多或内存使用率低的集群节点作为空闲节点;然后,由于每个空闲节点的负载情况也不尽相同,可根据每个空闲节点的具体负载情况,将片区信息索引分发给空闲节点,例如:处理器使用率越低、可用线程数量越多或内存使用率越低的节点,就可以分配越多的片区信息索引。从而实现每个集群节点的“能者多劳”,均衡分配每个集群节点的数据源分片转化任务。步骤s132,根据所述空闲节点中的所述片区信息索引,创建每个所述空闲节点的读取队列。空闲节点在接收到片区信息索引之后,生成读取队列,从而确定数据源分片的读取顺序。在读取过程中能够监控队列的行进顺序,从而判断读取进度是否正常。步骤s133,根据所述片区信息索引和所述读取队列读取所述数据源分片。本申请中,片区信息索引除了包含数据源分片的数据库类型、字段名称、数据表关联等概要信息外,还包含数据源分片中的数据在原数据源中的起始位置和终止位置的信息、或者是数据源分片在原数据源中按序确定的编号。因此,可根据片区信息中的起始位置和终止位置的信息,在数据源分片所属的原数据源中,将数据源分片对应的数据读取出来。在读取数据源分片时,按照读取队列中片区信息索引的先后顺序读取,并可在读取过程中监测每个数据源分片的读取时间和集群节点的实时负载情况,当某个集群节点在读取某数据源分片用时过长时,说明读取进程可能无响应或数据连接受阻,此时,可以终止对当前数据源分片的读取任务,并将该数据源分片的片区信息索引分发给实时负载较低的另一个集群节点,并对该数据源分片的片区信息索引设置较高的队列优先级,实现由另一个集群节点优先地读取该数据源分片。步骤s134,将读取的所述数据源分片转化成所述数据集区块。根据数据源分片的概要信息、获取数据源分片的字段名称、数据值的信息,并依照数据源分片中原有的约束关系和数据表关联等信息,将数据源分片按照预设运算框架定义的数据结构转化成数据集区块。图7为本申请实施例提供的一种异构数据源规范化处理方法步骤s134的流程图,如图7所示,在一种可选择的实施方式中,所述数据集区块包括关系结构和数据列结构,步骤s134可以包括以下步骤:步骤s1341,根据所述片区信息索引,获取所述数据源分片中各字段之间的映射关系。本申请中的映射关系可从数据源分片的概要信息中获得,映射关系反映了不同数据源分片中各字段、各数据值、各数据表通过约束和关联所各自形成的架构体系。在数据源分片转化成所述数据集区块的过程中,数据源中原有的架构体系被转化成预设运算框架所定义的形式。本申请可使用spark集群运算框架作为预设运算框架,当预设运算框架为spark集群运算框架时,关系结构指的是rdd多个数据分区的依赖关系和rdd内部的字段约束。步骤s1342,根据所述映射关系,生成所述数据集区块的所述关系结构。根据待处理数据源中各字段之间的映射关系所形成的架构体系,生成预设运算框架下数据集区块的关系结构。当预设运算框架为spark时,来自于不同数据源分片各自的架构体系被规范化统一的rdd中的关系结构,实现了对异构数据源的数据架构体系上的统一。步骤s1343,根据所述片区信息索引,将所述数据源分片中各字段的数据值生成所述数据列结构。片区信息索引中记录了数据源分片的概要信息,通过概要信息中记载的字段名称,将数据源分片中各字段下的数据值以数据列的形式整理,生成数据列结构。数据列结构中包含多个数据列,每个数据列对应一个字段名称,在数据列结构中,不同字段下的数据值之间依然保持原有的约束关系。步骤s1344,根据所述关系结构和所述数据列结构,生成所述数据集区块。根据已生成的数据集区块的关系结构,将数据列结构按照关系结构转换成预设运算框架的数据结构,从而生成数据集区块。如果预设运算框架为spark集群运算框架,则生成的数据集区块具有rdd结构。现有技术中,通过spark提供的数据接口将外部数据源读取到spark内部,在spark内部生成rdd。但是,spark模型能够直接读取的数据源的数据类型十分有限,无法适应不同来源、不同数据类型的异构数据源规范化处理的需求;并且,spark的数据接口在读取非关系型数据库时,需要在spark中加载用于读取对应非关系数据库的配置文件,然后根据配置文件读取数据源,但是,随着新旧数据的更替、约束关系的变化、数据源的数据结构会随时变化,而配置文件如果不能及时地适应性改变,就会导致数据读取出现错误;此外,spark只能通过特定的应用程序接口访问数据源,如:jdbc(java数据库连接:javadatabaseconnectivity),而很多非关系型数据库并不提供jdbc的连接方式,因此,无法正确读取数据源。从本申请提供的技术方案可以看出,本申请在处理异构数据源时,与现有技术不同,没有将异构数据源直接读取至spark模型内部,而是对异构数据源进行分片处理,生成多个数据源分片,将数据源分片转换成具有rdd结构的数据集区块,从而实现了不通过spark提供的数据接口将异构数据源转化成rdd,解决了spark模型由于能够直接读取的数据源的数据类型十分有限,无法实现对不同来源、不同数据类型的异构数据源进行规范化处理的问题。步骤s135,当所述读取队列中的所述数据源分片全部转化完成时,向所述服务器反馈完成信息。本申请中,每个集群节点的读取队列中数据源分片全部转化完成时,向服务器反馈完成信息,完成信息中可包含数据源分片的总量、数据源大小、转化用时、转化速度等信息,以便对集群节点的性能进行评估。步骤s140,根据所述片区信息索引,整合所有所述数据集区块。片区信息索引中包含每个数据源分片的起始位置和终止位置的信息、或者是数据源分片在原数据源中按序确定的编号,上述片区信息索引中的内容能够用于确定每个数据集区块在整合时的顺序关系,从而有次序地将异构数据源的数据集区块整合到一起,实现了异构数据源的规范化处理。对于具有rdd结构的数据集区块来说,根据上述片区信息索引中的内容,能够将rdd结构的数据集区块合并成完整的rdd数据结构,从而实现对spark集群运算框架的核心数据结构rdd的构建。图8为本申请实施例提供的一种异构数据源规范化处理方法步骤s140的流程图,如图8所示,在一种可选择的实施方式中,步骤s140可以包括以下步骤:步骤s141,从所述集群节点中搜集数据源分片的所有所述数据集区块。当服务器收到了所有集群节点的完成信息之后,从各个集群节点中搜集所有已生成的数据集区块。步骤s142,根据所述片区信息索引,获取用于整合所述数据集区块的顺序结构。根据每个数据集区块对应的数据源分片的片区信息索引,如片区信息索引中记录的每个数据源分片的起始位置和终止位置的信息、或者是数据源分片在原数据源中按序确定的编号等内容,确定用于整合所述数据集区块的顺序结构,顺序结构中包含每个数据集区块在整合后的数据集中的位置。步骤s143,根据所述顺序结构,整合所述数据集区块。按照顺序结构中每个数据集区块对应的位置,将所有的数据集区块进行整合,从而生成异构数据源规范化的完整数据集,实现对异构数据源的规范化处理。由以上技术方案可知,本申请实施例提供了一种异构数据源规范化处理方法,能够根据待处理数据源的概要信息生成待处理数据源的信息索引,信息索引以统一的通用结构封装了异构数据源的概要信息;然后,将待处理的异构数据源分成多个数据源分片,再根据数据源分片的片区信息索引将数据源分片转化成预设运算框架下的数据集区块;最后,整合数据集区块,得到异构数据源规范化处理后的数据集。与现有技术相比,本申请的技术方案直接从待处理数据源中获取数据源分片,从而保证获取的数据源及时准确,通过服务器的集群节点多线程地将数据源分片转化成数据集区块并整合,得到规范化的数据集,极大地减小了数据处理时间,从而保证了数据的实时性;并且,当数据源中的内容发生变化时,仅需对发生变化的数据源分片进行重新读取和转化,而不需要重新加载数据源,实现数据集的及时更新。本申请实施例还提供了一种异构数据源规范化处理装置,图9为本申请实施例提供的一种异构数据源规范化处理装置框图,如图9所示,所述装置包括:索引模块210,用于获取至少一个待处理数据源,根据每个待处理数据源的概要信息,生成每个待处理数据源的信息索引;划分模块220,用于根据所述信息索引和服务器的处理能力,对待处理数据源进行分片,并生成每个数据源分片的片区信息索引;转化模块230,用于根据服务器各个集群节点的负载状态,将所述数据源分片转化成预设运算框架下的数据集区块;整合模块240,用于根据所述片区信息索引,整合所有所述数据集区块。由以上技术方案可知,本申请实施例提供了一种异构数据源规范化处理装置,能够根据待处理数据源的概要信息生成待处理数据源的信息索引,信息索引以统一的通用结构封装了异构数据源的概要信息;然后,将待处理的异构数据源分成多个数据源分片,再根据数据源分片的片区信息索引将数据源分片转化成预设运算框架下的数据集区块;最后,整合数据集区块,得到异构数据源规范化处理后的数据集。与现有技术相比,本申请的技术方案直接从待处理数据源中获取数据源分片,从而保证获取的数据源及时准确,通过服务器的集群节点多线程地将数据源分片转化成数据集区块并整合,得到规范化的数据集,极大地减小了数据处理时间,从而保证了数据的实时性;并且,当数据源中的内容发生变化时,仅需对发生变化的数据源分片进行重新读取和转化,而不需要重新加载数据源,实现数据集的及时更新。本申请实施例还提供了一种服务器,图10为本申请实施例提供的一种服务器的结构框图,如图10所示,服务器300由多个集群节点组成,包括一个主节点311和若干子节点312,其中,主节点311用于分配子节点312执行以下步骤:获取至少一个待处理数据源,根据每个待处理数据源的概要信息,生成每个待处理数据源的信息索引;根据所述信息索引和服务器300的处理能力,对待处理数据源进行分片,并生成每个数据源分片的片区信息索引;根据服务器300各个集群节点的负载状态,将所述数据源分片转化成预设运算框架下的数据集区块;根据所述片区信息索引,整合所有所述数据集区块。由以上技术方案可知,本申请实施例提供了一种服务器,能够根据待处理数据源的概要信息,生成待处理数据源的信息索引,信息索引以统一的通用结构封装了异构数据源的概要信息;然后,将待处理的异构数据源分成多个数据源分片,再根据数据源分片的片区信息索引将数据源分片转化成预设运算框架下的数据集区块;最后,整合数据集区块,得到异构数据源规范化处理后的数据集。与现有技术相比,本申请的技术方案直接从待处理数据源中获取数据源分片,从而保证获取的数据源及时准确,通过服务器的集群节点多线程地将数据源分片转化成数据集区块并整合,得到规范化的数据集,极大地减小了数据处理时间,从而保证了数据的实时性;并且,当数据源中的内容发生变化时,仅需对发生变化的数据源分片进行重新读取和转化,而不需要重新加载数据源,实现数据集的及时更新。本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1