数据的处理方法、装置、存储介质和电子设备与流程

文档序号:20875148发布日期:2020-05-26 16:24阅读:168来源:国知局
数据的处理方法、装置、存储介质和电子设备与流程

本公开涉及电子信息技术领域,具体地,涉及一种数据的处理方法、装置、存储介质和电子设备。



背景技术:

随着大数据、云计算等电子信息技术的迅猛发展,相应带来的数据量也呈现爆发式的增长。要从海量的数据中获取对用户有用的信息,就需要对数据进行处理,例如对数据进行分组聚合等。在数据量较小的情况下,用户可以直接利用数据库自带的数据处理能力,对数据库内存储的数据进行分组聚合,以得到数据处理的结果,从而可以根据数据处理的结果生成分析报表等。然而,在数据量非常大的场景中,数据库的数据处理能力有限,处理速度缓慢,并且会消耗大量的计算资源。



技术实现要素:

本公开的目的是提供一种数据的处理方法、装置、存储介质和电子设备,用以解决现有技术中通过数据库对数据进行处理,消耗的计算资源高,处理速度慢的问题。

为了实现上述目的,根据本公开实施例的第一方面,提供一种数据的处理方法,所述方法包括:

获取待处理数据集,所述待处理数据集包括多条待处理数据;

针对多条所述待处理数据中的每条所述待处理数据,若该待处理数据中存在指定的分组字段,将该待处理数据中所述分组字段对应的数值转换为分组字符串,根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置;

按照指定的聚合方法,对每个所述存储位置内存储的所述待处理数据进行聚合。

可选地,所述将该待处理数据中所述分组字段对应的数值转换为分组字符串,包括:

将该待处理数据中所述分组字段对应的数值作为预设的哈希算法的输入,以得到所述哈希算法输出的所述分组字符串。

可选地,所述根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置,包括:

根据所述分组字符串中起始的第一数量个字符,获取位置标识;

根据所述位置标识确定所述存储位置;

将该待处理数据中所述分组字段对应的数值作为键值对的键,将该处理数据中聚合字段对应的数值作为键值对的值,存入所述存储位置,所述聚合字段为所述聚合方法指示的字段。

可选地,在所述根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置之前,所述方法还包括:

若所述存储位置内存储的所述待处理数据的条数大于或等于第一存储阈值,增大所述第一数量。

可选地,在所述根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置之前,所述方法还包括:

根据所述分组字符串与目标存储位置的标识是否匹配,将该待处理数据存入内存空间,所述内存空间包括命中空间和未命中空间,所述目标存储位置为全部所述存储位置中,存储的所述待处理数据的条数最大的第二数量个存储位置;

所述根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置,包括:

若所述命中空间内存储的所述待处理数据的条数大于或等于第二存储阈值,将所述命中空间内所述分组字符串与所述目标存储位置的标识匹配的所述待处理数据,存入所述目标存储位置;

若所述未命中空间内存储的所述待处理数据的条数大于或等于所述第二存储阈值,将所述未命中空间内所述分组字符串与所述目标存储位置的标识不匹配的所述待处理数据,存入全部所述存储位置中除所述目标存储位置之外的所述存储位置。

可选地,所述根据所述分组字符串与目标存储位置的标识是否匹配,将该待处理数据存入内存空间,包括:

若所述分组字符串与所述目标存储位置的标识匹配,将该待处理数据存入所述命中空间中所述目标存储位置的标识对应的子空间,所述命中空间包括与每个所述目标存储位置的标识对应的第二数量个所述子空间;

若所述分组字符串与所述目标存储位置的标识不匹配,将该待处理数据存入未命中空间。

可选地,所述将所述命中空间内所述分组字符串与所述目标存储位置的标识匹配的所述待处理数据,存入所述目标存储位置,包括:

将所述命中空间中每个所述子空间内存储的所述待处理数据,存入该子空间对应的所述目标存储位置;

所述将所述未命中空间内所述分组字符串与所述目标存储位置的标识不匹配的所述待处理数据,存入全部所述存储位置中除所述目标存储位置之外的所述存储位置,包括:

根据所述未命中空间中的每个所述待处理数据对应的所述分组字符串,确定每个所述待处理数据对应的存储位置,并将每个所述待处理数据存入所述存储位置。

根据本公开实施例的第二方面,提供一种数据的处理装置,所述装置包括:

获取模块,用于获取待处理数据集,所述待处理数据集包括多条待处理数据;

分组模块,用于针对多条所述待处理数据中的每条所述待处理数据,若该待处理数据中存在指定的分组字段,将该待处理数据中所述分组字段对应的数值转换为分组字符串,根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置;

聚合模块,用于按照指定的聚合方法,对每个所述存储位置内存储的所述待处理数据进行聚合。

可选地,所述分组模块用于:

将该待处理数据中所述分组字段对应的数值作为预设的哈希算法的输入,以得到所述哈希算法输出的所述分组字符串。

可选地,所述分组模块用于:

根据所述分组字符串中起始的第一数量个字符,获取位置标识;

根据所述位置标识确定所述存储位置;

将该待处理数据中所述分组字段对应的数值作为键值对的键,将该处理数据中聚合字段对应的数值作为键值对的值,存入所述存储位置,所述聚合字段为所述聚合方法指示的字段。

可选地,所述装置还包括:

更新模块,用于在所述根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置之前,若所述存储位置内存储的所述待处理数据的条数大于或等于第一存储阈值,增大所述第一数量。

可选地,所述装置还包括:

存储模块,用于在所述根据所述分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入所述存储位置之前,根据所述分组字符串与目标存储位置的标识是否匹配,将该待处理数据存入内存空间,所述内存空间包括命中空间和未命中空间,所述目标存储位置为全部所述存储位置中,存储的所述待处理数据的条数最大的第二数量个存储位置;

所述分组模块用于:

若所述命中空间内存储的所述待处理数据的条数大于或等于第二存储阈值,将所述命中空间内所述分组字符串与所述目标存储位置的标识匹配的所述待处理数据,存入所述目标存储位置;

若所述未命中空间内存储的所述待处理数据的条数大于或等于所述第二存储阈值,将所述未命中空间内所述分组字符串与所述目标存储位置的标识不匹配的所述待处理数据,存入全部所述存储位置中除所述目标存储位置之外的所述存储位置。

可选地,所述存储模块用于:

若所述分组字符串与所述目标存储位置的标识匹配,将该待处理数据存入所述命中空间中所述目标存储位置的标识对应的子空间,所述命中空间包括与每个所述目标存储位置的标识对应的第二数量个所述子空间;

若所述分组字符串与所述目标存储位置的标识不匹配,将该待处理数据存入未命中空间。

可选地,所述分组模块用于:

将所述命中空间中每个所述子空间内存储的所述待处理数据,存入该子空间对应的所述目标存储位置;

根据所述未命中空间中的每个所述待处理数据对应的所述分组字符串,确定每个所述待处理数据对应的存储位置,并将每个所述待处理数据存入所述存储位置。

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

根据本公开实施例的第四方面,提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的数据的处理方法的步骤。

通过上述技术方案,本公开首先获取包括了多条待处理数据的待处理数据集,针对多条待处理数据中的每条待处理数据,若待处理数据中存在指定的分组字段,那么将分组字段对应的数值转换为分组字符串,然后根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置,最后按照指定的聚合方法,对每个存储位置中存储的待处理数据进行聚合。本公开根据分组字段所对应的分组字符串,将多条待处理数据存储在多个存储位置中,再分别对每个存储位置中的待处理数据进行聚合,能够降低数据处理对计算资源的消耗,提高处理速度,并且无需通过数据库执行数据处理,能够减少对数据库的依赖。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种数据的处理方法的流程图;

图2是根据一示例性实施例示出的另一种数据的处理方法的流程图;

图3是根据一示例性实施例示出的另一种数据的处理方法的流程图;

图4是根据一示例性实施例示出的另一种数据的处理方法的流程图;

图5是根据一示例性实施例示出的另一种数据的处理方法的流程图;

图6是根据一示例性实施例示出的一种数据的处理装置的框图;

图7是根据一示例性实施例示出的另一种数据的处理装置的框图;

图8是根据一示例性实施例示出的另一种数据的处理装置的框图;

图9是根据一示例性实施例示出的一种电子设备的框图;

图10是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在介绍本公开提供的数据的处理方法、装置、存储介质和电子设备之前,首先对本公开各个实施例所涉及的应用场景进行介绍。该应用场景可以为任一种现有的业务系统,业务系统可以安装在终端上,用户可以直接在终端上通过业务系统执行数据处理的操作。业务系统也可以安装在服务器上,用户可以通过预先注册的账号和密码登录服务器,以在业务系统上执行数据处理的操作。其中,终端可以是智能手机、平板电脑、智能电视、智能手表、pda(英文:personaldigitalassistant,中文:个人数字助理)、便携计算机等,也可以是台式计算机等固定终端。服务器可以本地服务器,也可以是云服务器等服务器集群。

图1是根据一示例性实施例示出的一种数据的处理方法的流程图,如图1所示,该方法包括:

步骤101,获取待处理数据集,待处理数据集包括多条待处理数据。

举例来说,业务系统可以通过指定的数据来源获取待处理数据集,数据来源可以是预设的数据库,也可以是指定的服务器,还可以是第三方数据系统(例如:财务系统、采购系统、供应链管理系统、交易系统等)。其中,待处理数据集中可以包括多条待处理数据,由于待处理数据集的数据来源有多种,因此,待处理数据也可以分为多种类型,不同类型的待处理数据所包含的字段也不相同。以某公司的业务系统来举例,待处理数据集中包括了该公司的员工工资数据、采购的物料数据、供应商数据等。其中,每条员工工资数据可以包括:“姓名”、“性别”、“身份证号”、“年龄”、“职称”、“所属部门”、“月份”、“工资”等字段,每条物料数据可以包括:“物料名称”、“数量”、“价格”等字段,每条供应商数据可以包括:“供应商名称”、“资质信息”、“供应物料”、“供应物料价格”等字段。

当用户需要对待处理数据集中的待处理数据进行分组聚合处理时,可以预先指定分组字段和聚合方法。其中,分组字段可以理解为对待处理数据的筛选条件,聚合方法可以理解为对筛选出的待处理数据的某一字段进行的统计运算(例如:求和、求均值、求最值、求方差、求标准差等)。例如,如果想要从上述数据中筛选出a部门女性员工过去10年的平均工资,就需要按照“所属部门”、“性别”和“月份”作为分组字段进行分组,从待处理数据集中的每个待处理数据中筛选出包含分组字段的数据,然后再按照求均值作为聚合方法,将这些数据中的“工资”字段进行聚合,以得到平均工资。对于大型企业来说,待处理数据集中可能包括了几千万甚至上亿条待处理数据,如果通过数据库对每一条待处理数据按照分组字段进行分组,再进行聚合,需要进行大量的数据运算,往往会超出数据库的处理能力,导致处理缓慢、卡顿、甚至报错等问题,同时也会消耗大量的计算资源。

针对多条待处理数据中的每条待处理数据,执行步骤102至步骤103:

步骤102,若该待处理数据中存在指定的分组字段,将该待处理数据中分组字段对应的数值转换为分组字符串。

步骤103,根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置。

示例的,为了避免业务系统一次性处理大量的待处理数据,可以先将多条待处理数据中存在指定的分组字段的待处理数据分别存储在多个存储位置中。具体的,可以先判断每一条待处理数据中是否存在指定的分组字段,若该待处理数据中不存在分组字段,那么直接对该待处理数据进行丢弃,不做任何处理。若该待处理数据中存在分组字段,表示该待处理数据满足分组字段指示的筛选条件,那么将分组字段对应的数据按照预设规则转换为分组字符串。由于数据的种类繁多,例如:符号、数字、英文字母、汉字或者其他语言的文字等,很难统一归类,因此可以先将数据转换为同一格式的分组字符串,分组字符串中只包括:数字和英文字母。其中,还可以进一步对分组字段对应的数据进行筛选,例如用户在指定分组字段时,还可以指定分组字段需要满足的条件。若分组字段不满足条件,也可以对该待处理数据进行丢弃,不做任何处理,若分组字段满足条件,再将分组字段对应的数据按照预设规则转换为分组字符串。

然后根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入对应的存储位置。例如,可以将分组字符串中指定位置的几个字符作为存储位置的位置标识,然后根据位置标识找到对应的存储位置。也可以预先建立一个字符串与存储位置的对应关系,在对应关系中查找与分组字符串对应的存储位置。业务系统中可以包括有多个存储位置,用于存储待处理数据,存储位置可以设置在磁盘上,这样能够大大降低内存中的数据量,提高数据的处理速度。以待处理数据集中包括1亿条待处理数据为例,经过步骤102至步骤103的分组,若将1亿条待处理数据分别存储至2000个存储位置中,那么每个存储位置平均存储有5万条待处理数据,相比于同时处理1亿条待处理数据,同时处理5万条待处理数据对计算资源的要求明显降低,处理的速度也会变快。

以待处理数据集中包括了a医院的患者数据、医疗设备数据和药品数据,想要从待处理数据集中获取b科室10年来男患者的年龄的标准差来举例,那么分组字段包括:“所属科室”、“就诊时间”、“性别”作为分组字段,聚合方法为对“年龄”求标准差。首先获取待处理数据集中的每条待处理数据,若某一条待处理数据为医疗设备数据,那么该待处理数据中不存在“所属科室”、“就诊时间”、“性别”,将该待处理数据丢弃。若某一条待处理数据为患者数据,但“所属科室”为c科室,同样也将该待处理数据丢弃。若某一条待处理数据中存在“所属科室”、“就诊时间”、“性别”,且“所属科室”为b科室、“就诊时间”与当前时刻之间的时间差小于10年、“性别”为男性,那么可以将该待处理数据的“所属科室”、“就诊时间”、“性别”对应的数值转换为分组字符串。

步骤104,按照指定的聚合方法,对每个存储位置内存储的待处理数据进行聚合。

示例的,在将多条待处理数据执行完步骤102至步骤103之后,多条待处理数据被分别存储在了多个存储位置内,每个存储位置内存储的待处理数据的条数可以是零条,一条或者多条。然后,可以按照指定的聚合方法,对每个存储位置内存储的待处理数据进行聚合。具体的,可以从每个存储位置中取出其中的待处理数据,即将其中的待处理数据放入内存,然后执行聚合方法。这样可以有效降低内存中同时处理的数据量,相应的降低了计算资源的消耗,提高了数据处理的速度。同时,本公开可以直接在业务系统上对待处理数据集进行分组聚合处理,不需要利用数据库的数据处理能力,减少了对数据库的依赖,适用范围更广。

需要说明的是,在执行步骤104之后,可以将聚合结果进行输出,例如可以直接将聚合结果显示在业务系统的显示界面上,也可以将聚合结果进行保存,还可以根据聚合结果生成分析报表。由于本公开能够降低数据处理对计算资源的消耗,提高处理速度,因此在对聚合结果进行输出时,输出效率也会提高,不会造成卡顿、甚至报错等问题。

综上所述,本公开首先获取包括了多条待处理数据的待处理数据集,针对多条待处理数据中的每条待处理数据,若待处理数据中存在指定的分组字段,那么将分组字段对应的数值转换为分组字符串,然后根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置,最后按照指定的聚合方法,对每个存储位置中存储的待处理数据进行聚合。本公开根据分组字段所对应的分组字符串,将多条待处理数据存储在多个存储位置中,再分别对每个存储位置中的待处理数据进行聚合,能够降低数据处理对计算资源的消耗,提高处理速度,并且无需通过数据库执行数据处理,能够减少对数据库的依赖。

具体的,步骤102的实现方式可以为:

将该待处理数据中分组字段对应的数值作为预设的哈希算法的输入,以得到哈希算法输出的分组字符串。

在具体的应用场景中,可以按照预设的哈希算法将分组字段对应的数值转换为分组字符串,哈希算法例如可以是:md4(英文:messagedigest4)、md5(英文:messagedigest5)、sha(英文:securehashalgorithm)等任一种算法,可以将数值转换为只包括:10个数字和26个英文字母的分组字符串(即散列值)。

图2是根据一示例性实施例示出的另一种数据的处理方法的流程图,如图2所示,步骤103可以包括:

步骤1031,根据分组字符串中起始的第一数量个字符,获取位置标识。

步骤1032,根据位置标识确定存储位置。

举例来说,经过哈希算法处理得到的分组字符串的长度较长,例如可以是128位。可以取分组字符串中起始的第一数量个字符,作为位置标识,然后根据位置标识确定存储位置。可以将位置标识作为目录名,在磁盘上以目录名建立存储位置。其中,第一数量可以是预设值,例如可以是5位,第一数量也可以根据存储位置是否存满,来调整大小。例如,一千条存在指定的分组字段的待处理数据,对应一千个分组字符串,取分组字符串中起始的2位,位置标识可能为10个数字和26个英文字母的任意两两组和,即可能得到1296种位置标识,其中,位置表示例如可以是:ab、ac、1b、da、c1、1k等,然后将位置标识为ab的待处理数据存放在ab对应的存储位置处,将位置标识为c1的待处理数据存放在c1对应的存储位置处,依次类推。

步骤1033,将该待处理数据中分组字段对应的数值作为键值对的键(即key),将该处理数据中聚合字段对应的数值作为键值对的值(即value),存入存储位置,聚合字段为聚合方法指示的字段。

具体的,在将待处理数据存入存储位置时,可以从该待处理数据中取出与分组聚合相关的字段,然后将这些字段作为键值对进行存储。例如,可以将分组字段对应的数值作为键值对的键,将聚合方法指示的聚合字段作为键值对的值。例如,一条待处理数据中包括“姓名”、“性别”、“身份证号”、“年龄”、“职称”、“所属部门”、“月份”、“工资”等多个字段,分组字段为“所属部门”、“性别”和“月份”,聚合字段为“工资”,那么在对该待处理数据进行存储时,只需将“所属部门”、“性别”和“月份”作为键,将“工资”作为值,以生成键值对,存入对应的存储位置,而“姓名”、“身份证号”、“年龄”和“职称”等其他字段可以不做存储。

图3是根据一示例性实施例示出的另一种数据的处理方法的流程图,如图3所示,针对多条待处理数据中的每条待处理数据,在步骤103之前,该方法还可以包括:

步骤105,若存储位置内存储的待处理数据的条数大于或等于第一存储阈值,增大第一数量。

在具体的应用场景中,可以根据存储位置内存储的待处理数据的条数,来确定步骤1031中第一数量的具体值。其中,第一数量可以设置一个初始值,然后在执行步骤1031之前,依次判断多个存储位置中每个存储位置内存储的待处理数据的条数,若存在任一个存储位置内存储的待处理数据的条数大于或等于第一存储阈值,那么增大第一数量。例如,可以将第一数量的初始值设置为2,预设第一存储阈值为1万,在第一次执行步骤1031时,将第一条待处理数据对应的分组字符串中起始的2个字符作为位置标识,根据位置标识在磁盘上建立相应的存储位置,经过多次执行步骤1031,磁盘上建立了多个存储位置,其中,某个存储位置的标识为:df,其中已经存储了1万条待处理数据,即这1万条待处理数据的对应的分组字符串中起始的2个字符均为df,那么此时将第一数量增加1,即第一数量更新为3,那么之后再执行步骤1031时,将之后的待处理数据对应的分组字符串中起始的3个字符作为位置标识,根据位置标识在磁盘上建立相应的存储位置,依次类推。这样,可以根据待处理数据集中包括的待处理数据的多少,灵活控制磁盘上需要多少存储位置,而不需要提前在磁盘上预留大量的存储位置,提高了磁盘上空间的利用率。即当待处理数据较少时,第一数量也较小,存储位置的数量也较少,当待处理数据较多时,第一数量也会相应变大,存储位置的数量也会变多。同时能够将待处理数据集中大量的待处理数据分散到不同的存储位置内,并且保证每个存储位置内存储的待处理数据的条数不超过第一存储阈值。相应的,在对每个存储位置进行聚合时,内存中同时处理的待处理数据的条数也不会超过第一存储阈值,这样不会消耗过多的计算资源,保证了数据处理的速度。

图4是根据一示例性实施例示出的另一种数据的处理方法的流程图,如图4所示,针对多条待处理数据中的每条待处理数据,在步骤103之前,该方法还可以包括:

步骤106,根据分组字符串与目标存储位置的标识是否匹配,将该待处理数据存入内存空间,内存空间包括命中空间和未命中空间,目标存储位置为全部存储位置中,存储的待处理数据的条数最大的第二数量个存储位置。

举例来说,为了进一步提高数据处理的速度,可以将全部的存储位置中,存储的待处理数据的条数最大的第二数量个存储位置作为目标存储位置。可以理解为待处理数据集中,命中目标存储位置的待处理数据较多,或者命中目标存储位置的概率较高。命中目标存储位置,即待处理数据的分组字符串与目标存储位置的标识匹配,目标存储位置的标识,即目标存储位置的位置标识,用于标识目标存储位置,与目标存储位置一一对应。然后在将待处理数据存入磁盘上的存储位置之前,可以先在内存上将符合目标存储位置的标识的待处理数据,和不符合目标存储位置的标识的待处理数据分开存放在内存空间中,然后在内存空间存满之后,再将内存空间中的待处理数据转存到磁盘上的存储位置中。其中,内存空间设置在内存中,可以包括命中空间和未命中空间,若待处理数据的分组字符串与目标存储位置的标识匹配,那么将待处理数据存入命中空间,若待处理数据的分组字符串与目标存储位置的标识不匹配,那么将待处理数据存入未命中空间。

相应的,步骤103的实现方式可以包括:

步骤1034,若命中空间内存储的待处理数据的条数大于或等于第二存储阈值,将命中空间内分组字符串与目标存储位置的标识匹配的待处理数据,存入目标存储位置。

步骤1035,若未命中空间内存储的待处理数据的条数大于或等于第二存储阈值,将未命中空间内分组字符串与目标存储位置的标识不匹配的待处理数据,存入全部存储位置中除目标存储位置之外的存储位置。

示例的,可以预先设置命中空间和未命中空间的存储上限,即第二存储阈值,在命中空间(或未命中空间)内存储的待处理数据的条数大于或等于第二存储阈值时,将命中空间(或未命中空间)中的待处理数据存入对应的存储位置。也可以对命中空间和未命中空间分别设置不同的存储上限,实现方式相同,本公开对此不作具体限定。

图5是根据一示例性实施例示出的另一种数据的处理方法的流程图,如图5所示,步骤106包括:

步骤1061,若分组字符串与目标存储位置的标识匹配,将该待处理数据存入命中空间中目标存储位置的标识对应的子空间,命中空间包括与每个目标存储位置的标识对应的第二数量个子空间。

步骤1062,若分组字符串与目标存储位置的标识不匹配,将该待处理数据存入未命中空间。

在步骤106中,根据分组字符串与目标存储位置的标识是否匹配,将待处理数据存入内存空间的方式也不相同。具体的,命中空间可以包括第二数量个子空间,每个子空间对应一个目标存储位置的标识,当分组字符串与目标存储位置的标识匹配(可以理解为分组字符串中起始的第一数量个字符与目标存储位置的标识相同),那么将待处理数据存入命中空间中目标存储位置的标识对应的子空间。例如,磁盘中有1000个存储位置,选择存储待处理数据的条数最大的100个作为目标存储位置,相应的在命中空间内设置100个子空间,用于存放与100个目标存储位置的标识匹配的待处理数据。当分组字符串与目标存储位置的标识不匹配时,直接将待处理数据存入未命中空间。

进一步的,步骤1034的实现方式可以为:将命中空间中每个子空间内存储的待处理数据,存入该子空间对应的目标存储位置。

步骤1035的实现方式可以为:根据未命中空间中的每个待处理数据对应的分组字符串,确定每个待处理数据对应的存储位置,并将每个待处理数据存入存储位置。

针对命中空间和未命中空间内待处理数据不同的存储方式,将命中空间和未命中空间内待处理数据转存至存储位置时的处理方式也不相同。具体的,若命中空间内存储的待处理数据的条数大于或等于第二存储阈值,可以依次将命中空间的每个子空间内存储的待处理数据,存入该子空间对应的目标存储位置。即在命中空间内,已对待处理数据进行过分组,可以直接将待处理数据搬运至目标存储位置。若未命中空间内存储的待处理数据的条数大于或等于第二存储阈值,由于未命中空间内未对待处理数据进行分组,因此在将待处理数据转存至存储位置时,还需要根据分组字符串确定对应的存储位置,例如根据分组字符串中起始的第一数量个字符,获取位置标识,再根据位置标识确定存储位置。

为了进一步降低内存中同时处理的数据量,降低计算资源的消耗,提高数据处理的速度,还可以将每个存储位置划分为多个分组块,在对该存储位置内存储的待处理数据进行聚合时,可以先按照每个分组快内存储的待处理数据进行聚合,然后再对该存储位置内的全部分组块的聚合结果进行二次聚合。存储位置对应的第一存储阈值例如是10万,每个存储块存储1万条待处理数据,那么存储位置每存1万条待处理数据,将其作为一个分组块,最多存储10个分组块,在对存储位置进行聚合时,分别对10个分组块进行聚合。

综上所述,本公开首先获取包括了多条待处理数据的待处理数据集,针对多条待处理数据中的每条待处理数据,若待处理数据中存在指定的分组字段,那么将分组字段对应的数值转换为分组字符串,然后根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置,最后按照指定的聚合方法,对每个存储位置中存储的待处理数据进行聚合。本公开根据分组字段所对应的分组字符串,将多条待处理数据存储在多个存储位置中,再分别对每个存储位置中的待处理数据进行聚合,能够降低数据处理对计算资源的消耗,提高处理速度,并且无需通过数据库执行数据处理,能够减少对数据库的依赖。

图6是根据一示例性实施例示出的一种数据的处理装置的框图,如图6所示,该装置200包括:

获取模块201,用于获取待处理数据集,待处理数据集包括多条待处理数据。

分组模块202,用于针对多条待处理数据中的每条待处理数据,若该待处理数据中存在指定的分组字段,将该待处理数据中分组字段对应的数值转换为分组字符串,根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置。

聚合模块203,用于按照指定的聚合方法,对每个存储位置内存储的待处理数据进行聚合。

可选地,分组模块202用于:

将该待处理数据中分组字段对应的数值作为预设的哈希算法的输入,以得到哈希算法输出的分组字符串。

可选地,分组模块202用于:

根据分组字符串中起始的第一数量个字符,获取位置标识。

根据位置标识确定存储位置。

将该待处理数据中分组字段对应的数值作为键值对的键,将该处理数据中聚合字段对应的数值作为键值对的值,存入存储位置,聚合字段为聚合方法指示的字段。

图7是根据一示例性实施例示出的另一种数据的处理装置的框图,如图7所示,该装置200还包括:

更新模块204,用于在根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置之前,若存储位置内存储的待处理数据的条数大于或等于第一存储阈值,增大第一数量。

图8是根据一示例性实施例示出的另一种数据的处理装置的框图,如图8所示,该装置200还包括:

存储模块205,用于在根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置之前,根据分组字符串与目标存储位置的标识是否匹配,将该待处理数据存入内存空间,内存空间包括命中空间和未命中空间,目标存储位置为全部存储位置中,存储的待处理数据的条数最大的第二数量个存储位置。

分组模块202用于:

若命中空间内存储的待处理数据的条数大于或等于第二存储阈值,将命中空间内分组字符串与目标存储位置的标识匹配的待处理数据,存入目标存储位置。

若未命中空间内存储的待处理数据的条数大于或等于第二存储阈值,将未命中空间内分组字符串与目标存储位置的标识不匹配的待处理数据,存入全部存储位置中除目标存储位置之外的存储位置。

可选地,存储模块205用于:

若分组字符串与目标存储位置的标识匹配,将该待处理数据存入命中空间中目标存储位置的标识对应的子空间,命中空间包括与每个目标存储位置的标识对应的第二数量个子空间。

若分组字符串与目标存储位置的标识不匹配,将该待处理数据存入未命中空间。

可选地,分组模块202用于:

将命中空间中每个子空间内存储的待处理数据,存入该子空间对应的目标存储位置。

根据未命中空间中的每个待处理数据对应的分组字符串,确定每个待处理数据对应的存储位置,并将每个待处理数据存入存储位置。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

综上所述,本公开首先获取包括了多条待处理数据的待处理数据集,针对多条待处理数据中的每条待处理数据,若待处理数据中存在指定的分组字段,那么将分组字段对应的数值转换为分组字符串,然后根据分组字符串确定该待处理数据对应的存储位置,并将该待处理数据存入存储位置,最后按照指定的聚合方法,对每个存储位置中存储的待处理数据进行聚合。本公开根据分组字段所对应的分组字符串,将多条待处理数据存储在多个存储位置中,再分别对每个存储位置中的待处理数据进行聚合,能够降低数据处理对计算资源的消耗,提高处理速度,并且无需通过数据库执行数据处理,能够减少对数据库的依赖。

图9是根据一示例性实施例示出的一种电子设备300的框图。如图9所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(i/o)接口304,以及通信组件305中的一者或多者。

其中,处理器301用于控制该电子设备300的整体操作,以完成上述的数据的处理方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件305可以包括:wi-fi模块,蓝牙模块,nfc模块等等。

在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据的处理方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据的处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的数据的处理方法。

图10是根据一示例性实施例示出的一种电子设备400的框图。例如,电子设备400可以被提供为一服务器。参照图10,电子设备400包括处理器422,其数量可以为一个或多个,以及存储器432,用于存储可由处理器422执行的计算机程序。存储器432中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器422可以被配置为执行该计算机程序,以执行上述的数据的处理方法。

另外,电子设备400还可以包括电源组件426和通信组件450,该电源组件426可以被配置为执行电子设备400的电源管理,该通信组件450可以被配置为实现电子设备400的通信,例如,有线或无线通信。此外,该电子设备400还可以包括输入/输出(i/o)接口458。电子设备400可以操作基于存储在存储器432的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的数据的处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器432,上述程序指令可由电子设备400的处理器422执行以完成上述的数据的处理方法。

在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的数据的处理方法的代码部分。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1