一种数据处理方法及装置的制作方法

文档序号:6340275阅读:165来源:国知局
专利名称:一种数据处理方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种数据处理方法及装置。
背景技术
通信技术的发展丰富了人们的沟通与生活,人们在享受这一便利的同时,对通讯 质量的要求越来越高。例如,信令监测系统就是一种以监测链路信令为手段来分析通讯质 量的统计分析型系统。该系统以采集的信令数据为依据,从多个维度来分析语音通讯和数 据通讯的质量。然而,由于现在网络规模巨大,因此系统采集到的信令等数据是海量的,因此,在 对这些数据的处理过程中,现有技术存在以下问题现有技术无法根据局方现场的实际情况,动态调整存储方式,无法支持应用系统 的不同维度的入库和查询,因此不能够在保证系统功能的前提下节省存储空间。数据查询所需要的索引的建立不够方便、快捷,无法平衡查询和索引维护所带来 的资源消耗之间的矛盾。对同一张数据库表同时进行写操作和读操作时,导致磁盘输入(I)/输出(0)瓶颈 问题,查询速度较慢。采集数据延迟到达,导致数据库中的数据不完整。

发明内容
本发明实施例提供了一种数据处理方法及装置,用以避免磁盘输入I/O瓶颈问 题,提高数据存储及查询的速度。本发明实施例提供的一种数据处理方法包括将采集的数据写入预先按照时间粒度划分的多个入库表中,每一入库表用于存储 在特定时间段内采集的数据;当完成对入库表写入数据的操作时,将该入库表中的数据合并到分区表的与该入 库表对应的分区中,所述分区表用于向用户提供需要查询的数据。本发明实施例提供的一种数据处理装置包括入库单元,用于将采集的数据写入预先按照时间粒度划分的多个入库表中,每一 入库表用于存储在特定时间段内采集的数据;合并单元,用于当完成对入库表写入数据的操作时,将该入库表中的数据合并到 分区表的与该入库表对应的分区中。本发明实施例,将采集的数据写入预先按照时间粒度划分的多个入库表中,每一 入库表用于存储在特定时间段内采集的数据;当完成对入库表写入数据的操作时,将该入 库表中的数据合并到分区表的与该入库表对应的分区中,所述分区表用于向用户提供需要 查询的数据,从而避免了磁盘输入I/O瓶颈问题,提高数据存储及查询的速度。


图1为本发明实施例提供的一种数据处理方法的流程示意图;图2为本发明实施例提供的按不同时间粒度创建入库表和分区表的示意图;图3为本发明实施例提供的由分区表和入库表组成的视图的示意图;图4为本发明实施例提供的入库表中的数据在入库完毕后,合并到分区表对应的 分区中的示意图;图5为本发明实施例提供的在分区表的分区上创建本地索引的示意图;图6为本发明实施例提供的将分区表重命名为视图的名称,并删除入库表和视图 的示意图;图7为本发明实施例提供的一种数据处理装置的结构示意图。
具体实施例方式本发明实施例提供了一种数据处理方法及装置,针对海量数据分析系统中数据存 储、查询性能等方面,实现了批量数据加载、大数据量查询等系统中的数据库技术,用以避 免磁盘I/O瓶颈问题,提高数据存储及查询的速度。为了解决海量数据批量加载、实时查询中遇到的问题,本发明实施例提供了一种 按不同时间粒度划分用于存储采集数据的入库表、按时间顺序建立分区表的分区的本地索 引,分离入库表和分区表的数据库平台。该方案经过在大数据量环境的测试、验证,能够较 好的支持系统运行,实现海量数据实时采集、批量加载、实时查询,解决海量数据在入库、查 询过程中遇到的入库速度缓慢、查询速度缓慢、磁盘I/O瓶颈、数据延迟导致数据库数据存 储不完整等问题。其中,本发明实施例中所述的入库表,即用于存储在特定时间段内采集的数据的 数据库表。本发明实施例按照时间粒度建立不同的入库表,例如,建立24个入库表,编号分 别从0到23,每一入库表用于存储1小时内的采集数据,0号入库表用于存储0点-1点时 间段内采集到的数据,1号入库表用于存储1点_2点时间段内采集到的数据,2号入库表用 于存储2点-3点时间段内采集到的数据,以此类推,24个入库表用于存储一天(24小时) 内采集到的数据。并且,本发明实施例中所述的分区表中包括的分区,与每一入库表一一对应,即当 建立了 24个入库表时,分区表中也会包括24个分区,用于转存入库表中的数据。例如,当 时间超过1点时,可以将0号入库表中的数据存储到0号分区中,然后删除0号入库表中的 数据;当时间超过2点时,可以将1号入库表中的数据合并到1号分区中,然后删除1号入 库表中的数据;以此类推,直到将23号入库表中的数据合并到23号分区中,然后删除23号 入库表中的数据。本发明实施例中所述合并,即将数据从入库表中搬移到分区表中对应的分区中。下面结合附图对本发明实施例提供的技术方案进行说明。参见图1,本发明实施例提供的一种数据处理方法包括步骤S101、将采集的数据写入预先按照时间粒度划分的多个入库表中,每一入库表用 于存储在特定时间段内采集的数据;S102、当完成对入库表写入数据的操作时,将该入库表中的数据合并到分区表的与该入库表对应的分区中。较佳地,入库表和分区表分别对应不同的磁盘空间。进一步来避免磁盘的I/O瓶颈。较佳地,所述当完成对入库表写入数据的操作时,将该入库表中的数据合并到分 区表的与该入库表对应的分区中,包括当超过入库表对应的特定时间段时,将该入库表中的数据合并到分区表的与该入 库表对应的分区中,然后清空该入库表。较佳地,所述当超过入库表对应的特定时间段时,将该入库表中的数据合并到分 区表的与该入库表对应的分区中之后,该方法还包括建立该分区的本地索引。例如,当时间超过1点时,可以将0号入库表中的数据合并到0号分区中,然后删 除0号入库表中的数据,并且,建立0号分区的本地索引。具体如何建立本地索引,属于现 有技术,此处就不予以赘述。较佳地,该方法还包括建立由入库表和分区表组成的视图,用于向用户提供数据查询功能。在没有完成将所有入库表中的数据合并到分区表中之前,所有数据的查询都可以 在该视图中进行,该视图相当于一个虚拟表,里面包含了已经采集入库的所有数据。因此, 不论是在入库表里的数据,还是在分区表里的数据均可以查询到。具体如何建立由入库表和分区表组成的视图,也属于现有技术,此处就不予以赘 述。较佳地,该方法还包括当首次完成将所有入库表中的数据合并到分区表中,并且,当到达预设的最大延 迟时间时,再次将存有数据的入库表中的数据合并到分区表的分区中。该步骤的目的是防止遗漏延迟到达的采集数据,保证入库数据的完整性。例如在 0点-ι点时间段内采集到的数据,没有在0点-1点到达0号入库表,而是延迟了一段时间 到达,而当时间超过1点时,0号入库表中的数据存储到0号分区中,但延迟到达的数据还会 存储在0号入库表中,因此,为了保证分区表中的数据的完整性,需要在首次完成将所有入 库表中的数据合并到分区表中,并且,当到达预设的最大延迟时间时,再次将入库表中的数 据(即延迟到达的数据)合并到分区表的对应的分区中。较佳地,所述再次将存有数据的入库表中的数据合并到分区表的分区中之后,该 方法还包括删除所有入库表,并且将分区表重新命名为所述视图的名称,然后删除所述视图。 即只保留一张分区表以做查询之用。其中,将分区表重新命名为视图的名称,是为了防止用 户输入视图名称查询数据,而显示文件不存在,也就是说,对于用户而言,查询的操作没有 变化,只是系统内部进行了文件的替换。综上所述,本发明实施例提供的技术方案包括以下几个方面一、业务数据表的读写分离。在同一张表上同时执行写入和查询数据的操作,容易出现磁盘I/O瓶颈问题,导 致数据处理速度慢。本发明实施例采用oracle分区表来分离写入数据和查询数据的操作。
参见图2,按不同时间粒度,在数据库中建立两种类型的表入库表和分区表。在 入库表上按进行写入操作,同时按照入库表的时间粒度,将分区表分成不同的分区,用来存 储入库表的中写入完毕的数据。同时,参见图3,建立一个由分区表和入库表组成的视图,对数据库中所有数据的 查询都在该视图中进行。入库表和分区表可以指定不同的表空间,进一步来避免磁盘的I/ 0瓶颈。二、支持不同时间粒度的分表模式。根据实际应用环境中数据量环境的不同,可以 创建用于保存不同时间段数据的表来合并数据。参见图4,通过UNIX守护进程,在固定的时间段触发执行数据库存储过程,创建每 个时间段对应的入库表。根据入库表的时间粒度,可以延迟一定时间将写完数据的入库表 中的数据合并到分区表对应的分区中。三、参见图5,分区表的每个分区中没有数据时,可以先不建立索引,等待入库表中 的数据合并到对应的分区中后,通过UNIX守护进程,触发完成该分区的本地索引的创建。四、参见图6,当所有入库表的全部数据合并到分区表以后,为了方便查询,将该分 区表的名称重命名为原来视图的名称。此时,所有的入库表依然存在,用于接收延迟到达的 数据,当时间到达系统的最大延迟时间时,将所有的入库表的数据再次合并到分区表的对 应分区中,然后,删除所有的入库表和原来的视图,只保留一张分区表做查询之用。其中,将分区表的名称重命名为原来视图的名称的操作,也可以在再次将存有数 据的入库表中的数据合并到分区表的分区中之后进行。下面给出一个具体实施例的说明。第一步按不同时间粒度创建入库表。步骤a、首先根据业务需求建立入库表的两个基本配置表,假设表名分别是A和B。在A表中描述入库表的粒度信息,相当于入库表的属性信息;B表中描述入库表的 其他详细数据信息,相当于入库表中的内容信息。步骤b、创建按照时间粒度建立入库表的存储过程。运行该存储过程,可以生成不同时间粒度、以时间为标示的入库表,同时生成一个 分区表。步骤C、通过UNIX的守护进程,定时执行步骤b中创建的存储过程,以实现按不同 时间粒度,自动建立入库表。为了避免UNIX系统繁忙时守护进程没能按预先设定的触发时间建立入库表,可 以预先设置两个或等多的触发时间段,当UNIX的守护进程在第一个触发时间段没能建立 入库表时,在第二个触发时间段到达时,检查在第一个触发时间段是否建立了入库表,如果 没有,则再执行一次建立入库表的操作。第二步分区+交换的数据库读、写分离方案。步骤d、入库进程,按入库表的时间粒度,将数据写入之前创建的入库表中。步骤e、创建数据转存的存储过程。数据转存的存储过程,是指按照预设的触发时间,在前一时间粒度的入库表入库 完毕后,将其合并到分区表中对应的分区中。也就是说,在数据转存的存储过程的触发时 间到达时,将完成写入数据操作的入库表中的数据合并到分区表的与该入库表对应的分区
同时,该入库表依然存在,用于接收延迟入库的数据。步骤f、创建一个由分区表和所有入库表组成的数据库视图。应用系统所有程序的 查询请求,均在该视图上进行。步骤g、通过UNIX的守护进程,自动调用数据转存的存储过程,将完成写入数据操 作的入库表中的数据合并到分区表的与该入库表对应的分区中。步骤h、创建一个与时间相关的建立分区表上本地索引的合并过程。在步骤g后, 利用UNIX的守护进程,自动调用该存储过程,建立当前完成数据合并的分区上的本地索 引。步骤i、所有入库表的数据合并到分区表后,按照入库表的生命周期(即对应的特 定时间段),删除入库表,同时将包含所有数据的分区表重新命名成步骤f中建立的视图的 名称,然后删除该视图。保持应用程序所需分区表的表名的一致性。另外,oracle中可以将入库表和分区表定位到不同的表空间,即存储到不同的磁 盘空间上,因此在处理入库表和分区表的时候可以将不同的磁盘放到不同的表空间上,同 时将入库表和分区表定位到不同的表空间。这样磁盘I/O出现瓶颈的可能性就会大大减 小。参见图7,本发明实施例提供的一种数据处理装置包括入库单元101,用于将采集的数据写入预先按照时间粒度划分的多个入库表中,每 一入库表用于存储在特定时间段内采集的数据;合并单元102,用于当完成对入库表写入数据的操作时,将该入库表中的数据合并 到分区表的与该入库表对应的分区中,所述分区表用于向用户提供需要查询的数据。较佳地,所述合并单元102,当超过入库表对应的特定时间段时,将该入库表中的 数据合并到分区表的与该入库表对应的分区中,然后清空该入库表。较佳地,该装置还包括建立索引单元103,用于在所述合并单元102当超过入库表对应的特定时间段时, 将该入库表中的数据合并到分区表的与该入库表对应的分区中之后,建立该分区的本地索 引。 较佳地,该装置还包括建立视图单元104,用于建立由入库表和分区表组成的视图,用于向用户提供数据 查询功能。较佳地,所述合并单元102,当首次完成将所有入库表中的数据合并到分区表中, 并且,当到达预设的最大延迟时间时,再次将存有数据的入库表中的数据合并到分区表的 分区中。较佳地,该装置还包括删除处理单元105,用于在所述合并单元102再次将存有数据的入库表中的数据 合并到分区表的分区中之后,删除所有入库表,并且将分区表重新命名为所述视图的名称, 然后删除所述视图。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序 产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形 式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程 图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一 流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算 机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理 器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能 的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或 多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图 一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种数据处理方法,其特征在于,该方法包括将采集的数据写入预先按照时间粒度划分的多个入库表中,每一入库表用于存储在特 定时间段内采集的数据;当完成对入库表写入数据的操作时,将该入库表中的数据合并到分区表的与该入库表 对应的分区中。
2.根据权利要求1所述的方法,其特征在于,所述当完成对入库表写入数据的操作时, 将该入库表中的数据合并到分区表的与该入库表对应的分区中,包括当超过入库表对应的特定时间段时,将该入库表中的数据合并到分区表的与该入库表 对应的分区中,然后清空该入库表。
3.根据权利要求2所述的方法,其特征在于,所述当超过入库表对应的特定时间段时, 将该入库表中的数据合并到分区表的与该入库表对应的分区中之后,该方法还包括建立该分区的本地索引。
4.根据权利要求1、2或3所述的方法,其特征在于,该方法还包括建立由入库表和分区表组成的视图,用于向用户提供数据查询功能。
5.根据权利要求4所述的方法,其特征在于,该方法还包括当首次完成将所有入库表中的数据合并到分区表中,并且,当到达预设的最大延迟时 间时,再次将存有数据的入库表中的数据合并到分区表的分区中。
6.根据权利要求5所述的方法,其特征在于,所述再次将存有数据的入库表中的数据 合并到分区表的分区中之后,该方法还包括删除所有入库表,并且将分区表重新命名为所述视图的名称,然后删除所述视图。
7.一种数据处理装置,其特征在于,该装置包括入库单元,用于将采集的数据写入预先按照时间粒度划分的多个入库表中,每一入库 表用于存储在特定时间段内采集的数据;合并单元,用于当完成对入库表写入数据的操作时,将该入库表中的数据合并到分区 表的与该入库表对应的分区中,所述分区表用于向用户提供需要查询的数据。
8.根据权利要求7所述的装置,其特征在于,所述合并单元,当超过入库表对应的特定时间段时,将该入库表中的数据合并到分区 表的与该入库表对应的分区中,然后清空该入库表。
9.根据权利要求8所述的装置,其特征在于,该装置还包括建立索引单元,用于在所述合并单元当超过入库表对应的特定时间段时,将该入库表 中的数据合并到分区表的与该入库表对应的分区中之后,建立该分区的本地索引。
10.根据权利要求7、8或9所述的装置,其特征在于,该装置还包括建立视图单元,用于建立由入库表和分区表组成的视图,用于向用户提供数据查询功能。
11.根据权利要求10所述的装置,其特征在于,所述合并单元,当首次完成将所有入库 表中的数据合并到分区表中,并且,当到达预设的最大延迟时间时,再次将存有数据的入库 表中的数据合并到分区表的分区中。
12.根据权利要求11所述的装置,其特征在于,该装置还包括删除处理单元,用于在所述合并单元再次将存有数据的入库表中的数据合并到分区表的分区中之后,删除所有入库表,并且将分区表重新命名为所述视图的名称,然后删除所述 视图。
全文摘要
本发明公开了一种数据处理方法及装置,用以避免磁盘输入I/O瓶颈问题,提高数据存储及查询的速度。本发明提供的一种数据处理方法包括将采集的数据写入预先按照时间粒度划分的多个入库表中,每一入库表用于存储在特定时间段内采集的数据;当完成对入库表写入数据的操作时,将该入库表中的数据合并到分区表的与该入库表对应的分区中,所述分区表用于向用户提供需要查询的数据。
文档编号G06F17/30GK102073697SQ201010609999
公开日2011年5月25日 申请日期2010年12月28日 优先权日2010年12月28日
发明者李兴彦 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1