logo好方法网

数据处理方法及装置


技术摘要:
公开了一种数据处理方法及装置。包括:获取第一数据表的切分点;使用切分点对第一数据表进行切分,以得到第一数量个区块;将第一数量个区块分配给第二数量个计算节点进行处理,其中,第一数量大于或等于第二数量。由此,可以提高数据处理效率。
背景技术:
在机器学习领域,建模需要的数据通常是按行存储的数据集合。为了提高数据处 理效率,通常会向分布式系统申请多个计算节点来并行处理数据。 在利用分布式系统提高数据处理效率时,数据切分是其中的关键步骤。数据切分 不合理会降低分布式系统的数据处理效率。
技术实现要素:
本发明的示例性实施例旨在提供一种能够实现数据切分的数据处理方案。 根据本发明的第一个方面,提出了一种数据处理方法,包括:获取第一数据表的切 分点;使用切分点对第一数据表进行切分,以得到第一数量个区块;将第一数量个区块分配 给第二数量个计算节点进行处理,其中,第一数量大于或等于第二数量。 可选地,获取第一数据表的切分点的步骤包括:针对第一数据表中的每条第一数 据,为第一数据中的目标字段值设置附加值,附加值和目标字段值构成新的目标字段值;利 用分位数算法计算多个新的目标字段值的分位点,分位点即为切分点。 可选地,利用分位数算法计算多个新的目标字段值的分位点的步骤包括:利用基 于权重的分位数算法计算多个新的目标字段值的分位点,以使得基于分位点进行切分后得 到的不同区块的数据量大小相同或基本相同,其中,权重用于表征单条数据的数据量大小。 可选地,该方法还包括:将第二数据表中的第二数据存储在一个或多个参数服务 器上,每个参数服务器存储了至少部分第二数据;针对分配给计算节点的区块中的至少一 条第一数据,计算节点从存储了与第一数据中的目标字段值相同的第二数据的参数服务器 获取第二数据,并基于第二数据以及预设的数据处理规则对第一数据进行处理。 可选地,基于第二数据以及预设的数据处理规则对第一数据进行处理的步骤包 括:将第二数据中一个或多个第二字段的字段值作为第一数据中的新的字段值,拼接到第 一数据中。 可选地,该方法还包括:将从参数服务器获取的第二数据保存在计算节点中。 可选地,该方法还包括:判断计算节点中是否存在与第一数据中的目标字段值相 同的第二数据;若计算节点中存在第二数据,则基于计算节点中存储的第二数据以及预设 的数据处理规则对第一数据进行处理;并且/或者若计算节点中不存在第二数据,则执行从 存储了与第一数据中的目标字段值相同的第二数据的参数服务器获取第二数据的操作。 可选地,目标字段值相同的第二数据被存储到同一参数服务器,该方法还包括:由 参数服务器根据预设的数据处理规则对目标字段值相同的第二数据进行处理,以得到该目 标字段值的中间处理结果,其中,计算节点从存储了与第一数据中的目标字段值对应的中 间处理结果的参数服务器获取中间处理结果,将中间处理结果保存在计算节点中,并基于 4 CN 111611243 A 说 明 书 2/13 页 中间处理结果对第一数据进行处理。 可选地,该方法还包括:判断第二数据表的数据量是否大于第一阈值;若第二数据 表的数据量小于或等于第一阈值,则将第二数据表中的第二数据分别存储到各个第一计算 节点,以由第一计算节点基于第二数据以及预设的数据处理规则对第一数据进行处理。 可选地,该方法还包括:若第二数据表的数据量大于第一阈值,则使用第一数据表 的切分点对第二数据表进行切分,并将切分得到的区块分配给所述第二数量个计算节点进 行处理;针对分配给计算节点的至少一条第一数据,计算节点从存储了与第一数据中的目 标字段值相同的第二数据的计算节点获取第二数据,并基于第二数据以及预设的数据处理 规则对第一数据进行处理。 可选地,该方法还包括:判断第一数据表中是否存在频数大于或等于第二阈值的 目标字段值;若存在频数大于或等于第二阈值的目标字段值,则执行上述数据处理方法。 可选地,该方法还包括:若不存在频数大于或等于第二阈值的目标字段值,则将第 一数据表中的多条第一数据分配给一个或多个计算节点,其中,目标字段值相同的数据被 分配到同一计算节点。 可选地,该方法还包括:将第二数据表中的多条第二数据分配给一个或多个计算 节点,其中,目标字段值相同的第二数据和第一数据被分配到同一计算节点。 根据本发明的第二个方面,提出了一种数据处理装置,包括:获取模块,用于获取 第一数据表的切分点;切分模块,用于使用切分点对第一数据表进行切分,以得到第一数量 个区块;分配模块,用于将第一数量个区块分配给第二数量个计算节点进行处理,其中,第 一数量大于或等于第二数量。 可选地,获取模块包括:设置模块,用于针对第一数据表中的每条第一数据,为第 一数据中的目标字段值设置附加值,附加值和目标字段值构成新的目标字段值;计算模块, 用于利用分位数算法计算多个新的目标字段值的分位点,分位点即为切分点。 可选地,计算模块利用基于权重的分位数算法计算多个新的目标字段值的分位 点,以使得基于分位点进行切分后得到的不同区块的数据量大小相同或基本相同,其中,权 重用于表征单条数据的数据量大小。 可选地,分配模块还用于将第二数据表中的第二数据存储在一个或多个参数服务 器上,每个参数服务器存储了至少部分第二数据,针对分配给计算节点的区块中的至少一 条第一数据,计算节点从存储了与第一数据中的目标字段值相同的第二数据的参数服务器 获取第二数据,并基于第二数据以及预设的数据处理规则对第一数据进行处理。 可选地,计算节点将第二数据中一个或多个第二字段的字段值作为第一数据中的 新的字段值,拼接到第一数据中。 可选地,计算节点还保存从参数服务器获取的第二数据。 可选地,该装置还包括:第一判断模块,用于判断计算节点中是否存在与第一数据 中的目标字段值相同的第二数据;若计算节点中存在第二数据,则计算节点基于计算节点 中存储的第二数据以及预设的数据处理规则对第一数据进行处理;并且/或者若计算节点 中不存在第二数据,则计算节点从存储了与第一数据中的目标字段值相同的第二数据的参 数服务器获取第二数据。 可选地,目标字段值相同的第二数据被存储到同一参数服务器,参数服务器根据 5 CN 111611243 A 说 明 书 3/13 页 预设的数据处理规则对目标字段值相同的第二数据进行处理,以得到该目标字段值的中间 处理结果,其中,计算节点从存储了与第一数据中的目标字段值对应的中间处理结果的参 数服务器获取中间处理结果,将所述中间处理结果保存在所述计算节点中,并基于中间处 理结果对第一数据进行处理。 可选地,该装置还包括:第二判断模块,用于判断第二数据表的数据量是否大于第 一阈值;分配模块还用于若第二数据表的数据量小于或等于第一阈值,则将第二数据表中 的第二数据分别存储到各个第一计算节点,以由第一计算节点基于第二数据以及预设的数 据处理规则对第一数据进行处理。 可选地,若第二数据表的数据量大于第一阈值,则切分模块使用第一数据表的切 分点对第二数据表进行切分,分配模块将切分得到的区块分配给第二数量个计算节点进行 处理;针对分配给计算节点的至少一条第一数据,计算节点从存储了与第一数据中的目标 字段值相同的第二数据的计算节点获取第二数据,并基于第二数据以及预设的数据处理规 则对第一数据进行处理。 可选地,该装置还包括:第三判断模块,用于判断第一数据表中是否存在频数大于 或等于第二阈值的目标字段值;若存在频数大于或等于第二阈值的目标字段值,则获取模 块获取第一数据表的切分点,切分模块使用切分点对第一数据表进行切分,分配模块将第 一数量个区块分配给第二数量个计算节点进行处理。 可选地,若不存在频数大于或等于第二阈值的目标字段值,则分配模块将第一数 据表中的多条第一数据分配给一个或多个计算节点,其中,目标字段值相同的数据被分配 到同一计算节点。 可选地,分配模块还将第二数据表中的多条第二数据分配给一个或多个计算节 点,其中,目标字段值相同的第二数据和第一数据被分配到同一计算节点。 根据本发明的第三个方面,还提出了一种包括至少一个计算装置和至少一个存储 指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少 一个计算装置执行如本发明第一个方面所述的方法。 根据本发明的第四个方面,还提出了一种存储指令的计算机可读存储介质,其中, 当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如本发明第一个 方面所述的方法。 在根据本发明示例性实施例的数据处理方法及装置中,通过获取第一数据表的切 分点,使用切分点实现数据表的切分,切分后不同区块的可以分配给相应的计算节点。其 中,切分点的计算可以不依赖于人为设定的倾斜阈值,并且在计算切分点时可以通过为目 标字段值设置附加值,以应对可能存在的倾斜键。 附图说明 从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其他方面和 优点将变得更加清楚并更容易理解,其中: 图1示出了根据本发明示例性实施例的数据处理方法的流程图; 图2示出了图1所示的数据处理方法还可以包括的步骤流程示意图; 图3A至图3D示出了具体应用例下的数据处理流程示意图; 6 CN 111611243 A 说 明 书 4/13 页 图4示出了根据本发明示例性实施例的数据处理装置的结构框图。
下载此资料需消耗2积分,
分享到:
收藏