海量数据处理技术在数字城市建设中的应用研究

时间:2022-09-20 07:34:56

海量数据处理技术在数字城市建设中的应用研究

摘  要:数字城市中包含着海量数据,如何处理这些海量数据是数字城市建设中的一个重要问题。本文主要介绍了海量数据的数据库设计策略、数据对象的存放策略,以及海量数据处理的若干值得注意的方面。

关键词:数字城市;海量数据;存储策略

中图分类号:TP393.08 文献标识码:A

1 引言

数字城市的理论与技术越来越引起人们的重视,它为认识物质城市打开了新的视野,并提供了全新的城市规划、建设和管理的调控手段。概括地说,数字城市就是综合运用GIS、遥感、遥测、宽带网络、多媒体及虚拟仿真等技术,对城市的基础设施、功能机制进行信息自动采集、动态监测管理和辅助决策服务的技术系统;它具有城市地理、资源、生态环境、人口、经济、社会等复杂系统的数字化、网络化、虚拟仿真、优化决策支持和可视化表现等强大功能。数字城市的主要形式表现在两个层面:一是城市门户网站,是政府以后台数据库为支撑,面向公众统一提供信息及服务的窗口。二是城市空间信息工程。很多的城市信息都与空间位置有关,包含着海量数据。作为数字城市建设的重要组成部分,城市空间信息以及与空间信息相关的应用已成为联接城市信息化系统的纽带。

中国数字城市的理论研究和关键技术体系研发基本还处于起步阶段。对数字城市中蕴含着的海量数据的处理效果,必将影响到数字城市的应用。本文着重介绍海量数据的处理技术,以及如何将这些技术应用的数字城市之中。

2 海量数据的存储

2.1 问题描述

随着海量存储器(硬盘)价格的不断下降,如今的很多软件设计人员已经不再把主要注意力放到如何节约存储空间,而是更多地注意系统的响应时间、可扩展性、功能的完善与客户友善性,甚至包括程序编制的简单化。然而,正是由于人们不再吝啬磁盘空间,这又反过来导致信息系统数据量膨胀的过快。

任何一个数字城市系统,只要一旦投入实际运行并且不间断地运行下去,积累的数据如果不做特殊处理就会无限制地增长下去。

无论海量存储器(硬盘)价格如何便宜,但任何一个具体系统的磁盘容量总是有限的。数据表越大,读插改的速度越慢;数据库越大,维护起来越困难,越费时间,出问题的概率越高;也就是说,系统容许的响应时间是有限的。

程序员喜欢简单的数据结构,因为这样会使程序简单,从而节约系统开发资源;而为了节约时空资源,设计过于复杂的数据结构,并不总是适宜的。

因此,如何平衡这些互相矛盾的因素,哪些是应该满足的,哪些是可以满足的,哪些是在一定条件下才能满足的,哪些是无法满足的。如何找出科学经济的方法,合理地解决无限需求和有限资源间的矛盾。这些问题的解决,有助于数字城市的建设。

2.2 海量数据库的设计策略

数字城市中包含着海量数据,且普遍采用大型关系型数据库对数据进行管理。虽然大型关系型数据库具有检索、完整性检查、安全保密机制、安全恢复机制、数据共享、并发控制、网络通讯、分布式体系结构等诸多优点,但海量数据的处理效率仍然是影响到数字城市的应用的大问题。为了提高数据处理的效率,应该对海量数据进行分析,统一规划,按一定数据模式组织建立相应的数据库,由系统统一管理和集中控制。

2.2.1 工作数据库。也可以称为实时数据库,主要存放那些经常需要更新和检索的数据。

2.2.2 CACHE表。高速缓存技术是计算机软硬件设计中经常采用的技术。其基本思路是:被处理对象集合中并不是所有元素被选中处理的概率都是一样的;将概率大的元素放在处理速度高的缓存区内;处理逻辑是先处理高速缓存区中的元素,如果高速缓存区中没有该元素,则从海量低速区查找。可以将高速缓存技术的思路用数字城市中的数据处理中。将使用频度高的数据和实时数据表放到处理速度高的缓存区内。可以从工作数据库中分离出CACHE表。

2.2.3 归档库。由于实时操作的数据库容量总是有限的,可以建立一个归档库,主要保存不再进行动态更新或很少进行实时更新的数据。究竟哪些数据应该放到归档库中,主要依赖于不同的数字城市系统和需要处理的事务,当然也依赖于资源的多少。

2.2.4 历史库。用于存放实时数据库更新时被替换掉的历史数据,为此需要相关的软件支持:一要能够根据用户的需要把历史数据移到历史库,要保证数据的完整一致性。要提供复制、移动和删除多种手段一次性或分次地完成转移,要十分注意海量数据处理时日志表的容量问题。二要为用户提供对历史数据的处理,包括检索、查询、统计、删除等操作。历史库可以解决实时数据库的无限膨胀问题,但它依然无法解决有限的磁盘容量问题。清除历史数据当然是限制实时数据库的无限膨胀,节省磁盘空间的简易手段,但应谨慎处理。

2.2.5 备份库。备份库是实时库的复制品,它要尽可能地与主库动态地保持一致,其主要目的是保证主库发生故障或损坏时,它可以被用作替代品。保证数据的安全性是备份库的主要作用。

2.2.6 文档目录库。对于很多非结构化的数据文件,可以文件的主要描述信息,放到文档目录库,以便快速查询。而这些文档可以放到适当的存储介质中。

3 海量数据的处理经验

针对数字城市中的海量数据,下面介绍几种常用的处理经验。

3.1 确定好的建模方法和处理方案。对海量数据的处理,明确切实可行的处理方法和流程最为关键。在建立处理模型时要充分考虑到海量数据数据量大、数据格式复杂的特点,建立好的处理模型。好的处理模型应该是处理中最快的,能够便于扩展,便于处理更大的数据量,便于实施等等。

3.2 对海量数据进行分区操作。对海量数据进行分区操作十分必要,例如针对按年份存取的数据,我们可以按年进行分区,不同的数据库有不同的分区方式,不过处理机制大体相同。可以将不同的数据存于不同的文件组下,而不同的文件组存于不同的磁盘分区下,这样将数据分散开,减小磁盘I/0,减小了系统负荷,而且还可以将日志、索引存放于不同的分区下。

3.3 建立广泛的索引。对海量的数据处理,对大表建立索引是必行的,建立索引要考虑到具体情况,例如针对大表的分组、排序等字段,都要建立相应索引,一般还可以建立复合索引,对经常插入的表,建立索引时则要小心。

3.4 建立缓存机制和加大虚拟内存。当数据量增加时,一般的处理工具都要考虑到缓存问题。缓存大小设置的好坏也关系到数据处理的成败,如果系统资源有限,内存提示不足,则可以靠增加虚拟内存来解决。

3.5 分批处理。海量数据处理难是因为数据量大,那么解决海基数据处理难的问题其中一个技巧是减少数据量。可以对海量数据分批处理,处理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题。但这种方法也要因时因势进行,如果不允许拆分数据,还需要另想办法。不过一般按天、月、年等存储的数据,都可以采用先分后合的方法,对数据进行分开处理。

3.6 使用临时表和中间表。数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完成后,再利用一定的规则进行合并,处理过程中的临时表的使用和中间结果的保存都非常重要,对于超海量的数据,如果大表处理不了,只能拆分为多个小表。如果处理过程中需要多步汇总操作,可按汇总步骤一步步来,不要一条语句完成。

3.7 使用数据仓库和多维数据库存储。

结束语

本文首先讨论了海量数据库的设计策略,提出了将数据库进行分类的方案,以提高数据使用的效率。其次给出了数据对象的存放策略,可以提高数据处理的效率。最后给出了若干个海量数据处理的建议,可以较好地提高海量数据的使用效果。

参考文献

[1]中国建筑设计研究院机电院.智能建筑电气技术(精选)[M].中国电力出版社,2005.

上一篇:计算机网络管理软件的分析研究 下一篇:信息化建设对企业发展的影响探析