APP下载

大规模空间数据处理模式和系统集成

2016-12-15顾学明高景强赵薇蔚

测绘通报 2016年9期
关键词:空间数据数据处理客户端

翟 永,刘 磊,顾学明,高景强,赵薇蔚

(1. 国家基础地理信息中心,北京 100044; 2. 甲骨文(中国)软件系统有限公司,北京 100020)

大规模空间数据处理模式和系统集成

翟 永1,刘 磊1,顾学明2,高景强2,赵薇蔚2

(1. 国家基础地理信息中心,北京 100044; 2. 甲骨文(中国)软件系统有限公司,北京 100020)

随着地理信息需求推动下的空间数据采集能力的发展,空间数据的生产规模和数据量呈爆发式增长,直接带来了对大规模空间数据处理的需求。本文基于IT并行计算和大数据技术的发展成果,探讨了这些技术在大规模空间数据处理上的应用及相应的IT系统集成思路,提出了基于数据库的并行空间数据处理方法,并根据第一次全国地理国情普查项目需求作了深度验证和分析。

大数据;并行处理;空间数据库;库内处理

随着地理信息需求推动下的空间数据采集能力的发展,空间数据的生产规模和数据量呈爆发式增长,带来了对大规模空间数据处理的需求,采用传统的C/S模式进行大规模的空间数据处理已经不能满足要求。

21世纪初,出现了像素工厂的概念,提出了大规模遥感数据并行处理方法,出现了各种成熟商业化解决方案,但对于大规模GIS矢量数据的组织处理及大规模遥感影像管理和提取处理方法却少有提及。目前,高性能并行计算在各个领域得到广泛应用,在此基础上云计算、大数据等商业化概念得到广泛关注和推广,这些都为大规模空间数据处理提供了理论和实践的基础。

大数据(big data)起源和最典型的应用是利用网络特别是社交网络的日志,对其进行处理和挖掘,洞察其中的规律,指导商业行为和决策。实际上大数据的概念应用和技术要比这广义得多。综合Wikipedia和百度百科大数据的定义和描述,大数据是指无法在可承受的时间范围内,用常规软件工具或传统方法去完成捕捉、管理和处理的数据的集合。大数据需要特殊的技术来处理,包括大规模并行处理(MPP)数据库、数据挖掘和算法、语义分析、机器学习及相应的IT构架技术和计算资源,如分布式的文件系统、数据库和存储。

本文主要探讨的是利用大数据的思路和技术解决大规模空间数据的处理和分析问题,并结合地理国情普查项目的实际情况对这些技术进行验证。

一、大规模空间数据处理关键技术

大数据处理技术是由一系列技术组成的,具体如下。

1. 并行计算

并行计算(parallel computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连的若干台独立计算机构成的集群。通过并行计算集群完成数据的处理,再将处理结果返回给用户。

(1) 并行计算方法

并行计算首先要把任务分割成若干能独立处理的部分,任务的分割包括水平分割和纵向分割两种方法。所谓的水平分割是指把一个大任务分割成同类的子任务,由不同的处理单元同时处理,最后再把所有结果合起来形成一个最终结果。 这种并行也称为空间上的并行。而纵向分割是指把计算过程分解为一个个串行的步骤,由不同的计算资源来完成。虽然对单子任务是串行的,但在多个子任务同时执行的情况下,各个计算步骤间可以并行起来,这也称为时间上的并行。

通过时间上和空间上的并行的结合,可以使复杂任务能够在更大规模的计算资源上得以调度和执行。

(2) 并行计算构架

并行计算模型很多,常用的有SMP(symmetric multi processing)、MPP(massive parallel processing)和Cluster集群。

SMP是采用多个处理器共享一套总线、内存和存储,即在一台计算机内有多个CPU或核。其瓶颈是受到总线、内存特别是存储的限制。

MPP是通过多套独立资源或多台计算机,来共同完成一个任务,各CPU间不共享或很少共享资源。

集群技术通过网络把计算资源搭建成一个集群,每台计算机使用独立的CPU、总线和内存,通过网络对内存进行同步,以共同完成一个任务。

在模式的选择上要根据应用的特点。SMP在多处理器多核构架服务器上得到广泛采用;MPP能够搭建更均衡的计算和处理平台,理论上能支持更大规模;Cluster 模式在各个节点间相对有更多的资源共享和同步,规模越大代价越大,因此相对MPP来说受到一定的规模限制,但其能适合更复杂的处理,并在实时性和高并发上有优势。

在实际的并行计算的构架中,往往是采用多种构架组合:SMP用在多进程和多任务的处理上,MPP更多地用于解决简单任务如文字处理,存储访问等。而更复杂的任务需要复杂的并行算法,更多的协调和同步,采用Cluster模式。

2. 空间数据库内处理模式

传统的空间数据库处理把数据库仅仅作为一个空间数据的组织管理的容器,数据处理通过数据库客户端完成,即客户端逐条取出记录,对记录进行空间运算,再写入数据库,这就需要在客户端和数据库之间发生大量网络传输,而且在通常情况下,客户端不具备并行能力,只能采用单线程处理方式。

空间数据的库内处理模式是指在数据库内部实行空间数据处理,客户端只需发出请求,并获得最终处理状态或结果。这样做的好处是数据不需要在数据库和客户端间来回传输,而且利用数据库的并行能力,可实行并行处理,极大提高了系统的处理能力,实现了大规模空间数据处理。

3. 处理平台搭建和资源均衡

除空间数据处理能力和并行机制外,还需要搭建与其匹配的资源和环境。这个环境要满足空间数据处理对不同资源的依赖,包括CPU、内存、网络和存储等资源。

图1是几个数据库生产环境中运行性能报告,报告中分别列出了前5个最耗时间的数据库内操作,其中绝大多数来自用户I/O,其次也有个别来自集群的等待。因此,在大多数没有经过优化的生产环境中,数据库的瓶颈不是来自于CPU,而是主要来自I/O和集群间的同步。

图1 典型生产环境中资源瓶颈

在空间数据的处理场景中,数据入库、空间索引建立、影像镶嵌提取对存储性能提出了更高的要求。图2是在Oracle ExaData X3-2 1/2 rack上对2 TB的地表覆盖矢量数据建立空间索引时的资源占用情况。在CPU只占70%的情况下, I/O带宽资源消耗达到了6.2 GB/s。折算下来每个CPU核的处理能力要和1.8 GB/s的I/O带宽匹配。

图2 建立矢量数据空间索引是的资源占用

在大规模空间数据处理平台上除了计算上采用集群方式,存储上也需要采用分布式或并行集群提高I/O能力,存储网络和通信网络也需要采用和普通应用网络不一样的高带宽、低延迟设备和协议。

二、企业级空间数据并行处理平台

空间数据库也是关系数据库,而Oracle是典型的企业级关系数据库,因此本文主要以Oracle为例来具体讨论大规模空间数据处理的方法。同时Oracle 数据库专用存储ExaData Storage Server也是提升大规模空间数据并行处理能力的一个环节。

1. 数据库集群上的并行处理

Oracle RAC是Oracle的数据库集群技术,在RAC集群上,一个SQL任务可以分割成对称的子任务,并分配到不同的集群节点上执行。

SQL并行执行基于一个协调器(query coordinator,QC)和多个并行执行器(PX)服务进程。QC是启动SQL语句的会话,而PX服务进程是每个并行执行的会话。QC把工作分发给PX服务器并执行最小量的、不能在并行服务进程中执行的部分。如图3所示。

图3 Oracle SQL并行处理

Oracle支持Select语句的查询及其中的DDL和DML部分。Oracle并行处理可以限于同一台服务器上,还可以跨不同的RAC结点,具有很好的横向扩展能力。特别要指出的是,开启并行处理功能既可以通过Hint,也可以通过全局的开关参数实现,不需要改变应用端应用,对应用透明。

Oracle的集群模式设计综合了OLTP和OLAP需求,与纯粹的MPP模式比起来其规模受到集群之间的通信瓶颈限制,需要通过更合理的并行算法克服这种不足。

2. 关系数据库空间扩展

Oracle Spatial是Oracle数据库上的空间数据组织、管理和处理功能的扩展,除了支持OGC SQL MM /Spatial标准能力外, 还提供了GeoRaster栅格影像数据模型,可以实现正射纠正、栅格正射、物理镶嵌、虚拟镶嵌等地理影像处理能力,并被商业化GIS平台(如ArcGIS)广泛支持。Oracle Spatial的所有函数或过程不仅可以在并行环境下执行,而且大部分函数的内部也利用了并行特性。

3. 分布式智能存储

存储服务器(Oracle Storage Server)集群是Oracle为数据库应用专门设计的分布式一体化可线性扩展的存储系统,其结构如图 4所示。

图4 Oracle Storage Server智能存储

(1) 计算能力纵向扩展

作为普通的SAN存储,不管传输介质是什么,其上层协议都是SCSI,只能支持磁盘块的读写。而存储服务器则是专门为数据库I/O设计,数据库服务器以InfiniBand上的iDB协议与存储服务器打交道, 存储服务器可以感知数据库在磁盘上的存储内容,可以帮助数据库服务器解析SQL条件、过滤并只传输符合条件的内容,在读写时对数据进行压缩和解压,以及对数据库存储块建立存储索引,提高记录读取有效性等。即原来只能通过计算节点做的事情,可以通过计算节点和存储节点配合完成,实现了任务的纵向扩展,提高了整个集群的并行能力,在有效地减轻了计算节点压力的同时减少了计算节点和存储节点的数据传输。

(2) 存储能力线性扩展

Oracle ExaData存储服务器集群是区别于传统SAN存储的分布式存储系统。每台存储节点都有单独的CPU、网络、磁盘和闪存加速卡。通过存储服务器集群线性扩展,可以理论上无限扩展存储的带宽和IOPS(单位秒内的I/O次数)。

这种扩展能力得益于Oracle Automatic Storage Management (ASM),通过ASM,Oracle可以把多个存储节点上的硬盘逻辑地组织成一个逻辑卷,这样数据库应用的I/O压力就可以分布到不同的存储节点上,从而大大提高了整体的I/O能力。除此之外存储节点上的PCIe闪存,对I/O本身的优化也不容忽视。

总体来说Oracle ExaData上的Oracle Spatial空间数据库集群综合了SMP、MPP、Cluster技术的优势,是一个软硬件一体化的混合构架。在提供空间数据的高性能并行处理的同时,还可以提供良好的空间数据的OLTP能力,如空间数据查询、编辑、可视化等。

三、Hadoop上的大规模空间数据处理探讨

Hadoop是Apache基金会所开发的分布式系统基础架构。其主要实现了分布式文件系统HDFS(Hadoop distributed file system)和分布式并行计算框架MapReduce,另外在HDFS基础上实现了一个叫HBASE的NoSQL类型数据库, 可以把文本等半结构化数据映射成可以进行SQL操作的表的HIVE数据仓库系统。

1) HDFS采用分布式及流的形式访问,HDFS可以采用廉价的硬件进行线性扩展。

2) Hadoop提供了MapReduce的开源实现。通过MapReduce开发人员可以在集群上把一个大任务分割和映射(map),并发送到集群上的各个节点执行,然后把执行的结果收集起来合成一个(reduce)。并且Map和 Reduce可以递归执行。

3) HBASE是HDFS之上NoSQL数据库,而Hive是在HDFS上的文件数据库。NoSQL可以通过Key建立索引,Hive是没有任何索引的。Hive支持用户定义的格式,只要在原数据中描述即可。而HBASE需要特定的数据文件存储,而且数据需要转换到数据库中。

Hadoop本身没有特定的针对空间数据处理方式和算法,作为商业化的解决方案Oracle在Hadoop上提供了一个Big Data Spatial 产品。

四、地理国情普查的测试和验证

第一次全国地理国情普查(简称地理国情普查)是国务院下达的全国性、全覆盖的普查项目。国情普查数据库的规模可以说是空前的,而需求上除了对数据的检查校验和入库外,还需要在空间数据库上实现统计和分析。

在确定数据库建设和系统开发方案前对空间数据库处理能力的测试和验证是必不可少的。

首先需要明确思路,如若采用传统的C/S模式来完成这个工作,则需要大量的客户端资源和人力资源,而且受到网络带宽的限制。因此笔者确定采用服务器端的处理方式:数据文件集中存放在服务器高速存储上,通过服务器程序进行批量入口,桌面安装数据库客户端,用作管理、调度和监控,调优终端。其次采用并行SQL对空间数据库操作,建立矢量数据索引、影像镶嵌和金字塔建立、多边形叠加分析、球面积计算等典型空间数据分析场景。最后,要确保服务器端处理模式和库内处理结果能与GIS客户端兼容,数据能被GIS识别和处理,处理功能能集成到GIS客户端应用框架中。

表1为性能测试结果。

表1 空间数据处理和分析性能测试结果

五、结束语

高性能并行计算虽然理论很成熟,但在大规模空间数据处理上的应用前景仍然方兴未艾。

对大规模空间数据的处理,首先要采用并行处理的模式,采用何种并行计算模型要与应用场景的需求一致。其次从具体的商业实现模式上看,很难用统一的标准去划分模式,往往是各种模式的混合。

就国情地理普查的项目需求来看,采用Oracle Exadata和Oracle Spatial进行并行空间数据处理和分析显然大大优于传统处理方式。更重要的是采用Oracle Spatial可很好地与商业GIS系统兼容,并与现有数据生产流程过渡。

[1] 祝若鑫,刘阳,程见桥,等.基于云计算的空间矢量数据并行处理[J]. 测绘通报, 2015(3): 44-48.

[2] 李维良,王红平,范鹏.基于并行预分割的高分辨率遥感影像多尺度分割[J]. 测绘通报, 2013(11): 29-32.

[3] 王凯, 曹建成, 王乃生, 等. Hadoop支持下的地理信息大数据处理技术初探[J]. 测绘通报 2015(10): 114-117.

[4] 翟永, 刘津, 刘磊,等. 国家基础地理信息中心计算机和网络系统建设[J]. 测绘通报, 2015(8): 20-23.

[5] ADVE S V,HART J C. Parallel Computing Research at Illinois: the UCPCRC Agenda[C]∥University of Illinois at Urbana-Champaign. [S.l.]:[s.n.],2008.

[6] 张林波. 并行计算导论[M].北京:清华大学出版社,2006.

[7] BUYYA R, BARKER M. Cluster Computing at a Glance [EB/OL].[2015-8-4]. http:∥academic.csuohio.edu/yuc/hpc00/lect/chapter-B1.pdf.

[8] LINSTEDT D E. Clustering, SMP and MPP in Very Large Data Warehouses (VLDWs)[EB/OL]. (2015-2-8). http:∥searchbusinessanalytics.techtarget.com/news/2240111416/Clustering-SMP-and-MPP-in-Very-Large-Data-Warehouses-VLDWs.

[9] Wekipedia. Big Data[EB/OL]. (2016-01-18)[2016-01-18]. https:∥en.wikipedia.org/wiki/Big_data.

[10] 百度百科. 大数据[EB/OL]. (2015-01-20)[2016-01-18]. http:∥baike.baidu.com/subview/6954399/13647476.htm.

[11] 百度百科. 并行计算[EB/OL].(2015-04-01)[2016-01-18]. http:∥baike.baidu.com/view/1666.htm.

LargeScaleSpatialDataProcessingMethodandSystemIntegration

ZHAI Yong,LIU Lei,GU Xueming,GAO Jingqiang,ZHAO Weiwei

翟永,刘磊,顾学明,等.大规模空间数据处理模式和系统集成[J].测绘通报,2016(9):99-102.

10.13474/j.cnki.11-2246.2016.0304.

P208

B

0494-0911(2016)09-0099-04

2015-09-14;

2016-01-20

翟 永(1969—),男,教授级高级工程师,主要研究方向为计算机网络系统集成开发与运行维护。E-mail:zhaiyong@ngcc.cn

猜你喜欢

空间数据数据处理客户端
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
GIS空间数据与地图制图融合技术
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
网格化存储的几项关键技术分析