一种数据处理方法和装置的制造方法

文档序号:8339635阅读:213来源:国知局
一种数据处理方法和装置的制造方法
【技术领域】
[0001] 本申请涉及计算机处理领域,更具体地涉及一种数据处理方法和装置。
【背景技术】
[0002] 当今大数据时代,数据的收集与处理技术发展迅猛,计算机收集的数据的数量巨 大,用于存储数据的数据库表的记录项数量过亿、甚至过百亿。其中,每个记录项可以用于 存储一个或多个数据。该数据可以是数值。若要分析并挖掘这些数据(数值)的价值,通常 第一步,利用计算机对这些数据(数值)进行运算或处理以探查数据的分布情况。
[0003] 在传统的探查数据分布过程中,进行数据处理时需要通过多次扫描数据库表,用 以分别计算出与数据库表中包含的数据相关计算结果,例如:均值、最大值、最小值、方差、 标准差、分位数、众数等等。进一步,可以通过这些计算结果分析数据的分布情况,进而用以 实施后续的数据挖掘等。
[0004] 具体而言,在计算相关结果的过程中,至少需要扫描5次数据库表中的数据。比如 说,①计算数据的均值、最大值、最小值时,需要全表扫描1次数据库表中的数据。②在计算 数据的方差、标准差时,需要全表扫描1次数据库表中的数据。③在计算分位数之前,至少 需要全表扫描1次数据库表中的数据。具体的,在采样数据库表中的部分数据时,扫描0至 1次数据库表中的数据(如,〇. 1次)。进而根据采样出的数据,划分出一个或多个连续的数 据区间,每个数据区间表示一个数值范围,如:[0, 5],[6, 7],[8, 9]。根据该数据区间划分的 结果,可以采用map-reduce的方法,对数据库表中的数据进行排序。而在对数据进行排序 时,map模块负责全表扫描1次数据库表中的所有数据,以确定每个数据所处的数据区间, 一个或多个reduce模块中的每一个reduce模块负责一个数据区间内的数据的排序。由于 一个或多个数据区间是连续的,最终可以将处于每个数据区间内的数据的排序结果合并, 以得到所有数据的排序结果。④在计算分位数时,需要扫描1次或多次排序后的数据库表 中的数据,以得到一个或多个分位数。⑤在计算众数时,至少需要全表扫描1次数据库表中 的数据。具体的,通过扫描1次数据库表中的数据分析出具有相同值的数据在所有数据中 的重复次数,再通过扫描〇至1次每个数据的重复次数(如,〇. 1次),得到重复次数最多的数 据(众数)。可见,传统的数据处理在运算中,为计算得到需要的结果,对数据库表几乎要做 5次或更多次的全表的扫描。其运算量巨大。
[0005] 并且,随着技术发展,计算机、网络等技术运用到各个行业,在数据库表中存储记 录的数据量也越来越巨大,已有的数据处理技术,在运算中会多次扫描数据库表中的所有 数据,导致计算机IO极高。其中,IO是指计算机从外围设备(磁盘、网络、磁带等)读取数据 到内存时所读取的数据量。进一步地,在对数据库表中的数据进行排序时,也会由于过高的 计算量,排序记录项多且数据量大,如前述计算分位数时全表整体排序的情形,会降低计算 机的运算效率。更进一步地,若数据库表中的数据的值集中在某个数据区间内即数据倾斜 严重,会导致负责该数据区间的reduce设备需要排序的数据量过大,增加数据处理时长, 甚至无法得到计算结果。再进一步地,在计算分位数时,每次只能计算一个分位数,若想要 计算多个分位数,只能通过多次扫描遍历排序后的数据,这样,在运算上,计算机开销大。

【发明内容】

[0006] 为了克服在对大量数据进行处理时,计算机IO高,计算效率低的缺陷,本申请的 主要目的在于提供一种数据处理方法和装置,以解决提高计算机数据处理过程中的运算性 能、提1?计算效率的问题。
[0007] 本申请提供的方案,进一步地,还能克服计算机运算量过大且值过于集中而造成 的运算效率低,数据处理时间长或者无法得到计算结果的缺陷,解决提高运算效率缩短数 据处理时长的问题;更进一步地,还能够克服由于数据量大造成的计算机读取数据开销大 的缺陷,解决节省计算机读取数据开销的问题。
[0008] 为了解决上述技术问题,本申请的目的是通过以下技术方案实现:
[0009] -种数据处理方法,包括:扫描存储于数据库表中的一个或多个数据;基于所述 扫描,对所述一个或多个数据中的重复数据进行计数,确定每个所述重复数据的计数值;根 据所述每个重复数据和所述每个重复数据的计数值,计算与分析数据分布相关的结果。
[0010] 其中,所述数据库表记录一个或多个记录项,一个记录项表示一条记录,数据库表 中的每行记录,记录每个记录项;每个所述记录项包括一个或多个数据项,数据库表中的每 列记录,记录每个不同的数据项;每个数据项存储每个记录项中对应该数据项的数据;其 中,所述数据为数值;基于所述扫描,对所述一个或多个数据中的重复数据进行计数,包括: 对所述数据库表的一个或多个数据项中的一个数据项所存储的相同的数据进行计数。
[0011] 其中,所述与分析数据分布相关的结果,至少包括:所述数据库表的一个或多个数 据项中的一个数据项对应存储的一个或多个数据的均值、最大值、最小值、分位数、众数。
[0012] 其中,根据所述每个重复数据和所述每个重复数据的计数值,计算与分析数据分 布相关的结果,包括:在扫描所述每个重复数据和所述每个重复数据的计数值时,计算所述 一个或多个数据的总数和所述一个或多个重复数据的计数值的总计数值,以得到所述一个 或多个数据的均值;并且,比较所述每个重复数据的大小,以获得所述一个或多个数据中的 最大值、最小值;并且,比较所述每个重复数据的计数值的大小,以获得所述一个或多个数 据中的和众数。
[0013] 其中,根据所述每个重复数据和所述每个重复数据的计数值,计算与分析数据分 布相关的结果,包括:在扫描所述每个重复数据和所述每个重复数据的计数值时,按照所述 每个重复数据的大小,对所述一个或多个重复数据以及所述一个或多个重复数据的计数值 进行排序;基于所述排序形成的顺序,根据所述每个重复数据的计数值和排列在所述每个 重复数据前面的所有重复数据的计数值,获得所述每个重复数据的累计值;其中,所述累计 值是所述每个重复数据的计数值与排列在所述每个重复数据前面的所有重复数据的计数 值的和;根据所述每个重复数据的累计值和计数值,获得所述每个重复数据所处的分位数 区间。
[0014] 其中,根据任意分位数所处的分位数区间,确定所述任意分位数对应的重复数据, 其中任意分位数可以是0~1之间的任意值。
[0015] -种数据处理装置,包括:描述模块,用于扫描存储于数据库表中的一个或多个数 据;计数模块,用于基于所述扫描,对所述一个或多个数据中的重复数据进行计数,确定每 个所述重复数据的计数值;计算模块,用于根据所述每个重复数据和所述每个重复数据的 计数值,计算与分析数据分布相关的结果。
[0016] 其中,所述数据库表记录一个或多个记录项,一个记录项表示一条记录,数据库表 中的每行记录,记录每个记录项;每个所述记录项包括一个或多个数据项,数据库表中的每 列记录,记录每个不同的数据项;每个数据项存储每个记录项中对应该数据项的数据;其 中,所述数据为数值;进一步地,所述计数模块还被配置成:对所述数据库表的一个或多个 数据项中的一个数据项所存储的相同的数据进行计数。
[0017] 其中,所述与分析数据分布相关的结果,至少包括:所述数据库表的一个或多个数 据项中的一个数据项对应存储的一个或多个数据的均值、最大值、最小值、分位数、众数。
[0018] 其中,所述计算模块被配置成:在扫描所述每个重复数据和所述每个重复数据的 计数值时,计算所述一个或多个数据的总数和所述一个或多个重复数据的计数值的总计数 值,以得到所述一个或多个数据的均值;并且,比较所述每个重复数据的大小,以获得所述 一个或多个数据中的最大值、最小值;并且,比较所述每个重复数据的计数值的大小,以获 得所述一个或多个数据中的和众数。
[0019] 与现有技术相比,根据本申请的技术方案存在以下有益效果:
[0020] 本申请在数据处理过程中,先根据数据库表中的重复数据的计数值进行数据分布 分析的处理,避免了对数据库表中的所有数据进行扫描,有效降低了计算机10。进一步地, 本申请基于每个重复数据和每个重复数据的计数值计算用于分析数据分布的相关结果,可 以减少运算过程中的数据量,提高运算效率、缩短数据处理时间、减轻计算机运行的负担。 进一步地,本申请通过计算用于分析数据分布的相关结果,可以得到每个数据所处的分位 数区间,进而快速的获得分位数,降低了计算开销。由此,有效提升了计算机数据处理性能。
【附图说明】
[0021] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申 请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0022] 图1是根据本申请一实施例的数据处理方法的流程图;
[0023] 图2是根据本申请一实施例的分位数的计算步骤的流程图;以及
[0024] 图3是根据本申请一实施例的数据处理装置的结构图。
【具体实施方式】
[0025] 本申请的主要思想在于,计算机系统针对海量数据进行数据处理的过程中,先对 数据库表中相同的数据的重复次数进行计数,得到计数值表,再基于计数值表得到用于数 据分布分析(探查)相关的结果。进一步,可以根据计数值表中的每个数据的计数值,计算数 据库表中的一个或多个数据的总计数值、均值、最大值、最小值、众数,以及每个数据的累计 值,并根据总计数值和每个数据的计数值、累计
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1