海洋大数据管理技术:架构、平台与存储策略

2021-03-31 06:27韦广昊韩春花田先德杨锦坤苗庆生
海洋信息技术与应用 2021年4期
关键词:结构化架构海洋

韦广昊,韩春花,田先德,杨锦坤,苗庆生

国家海洋信息中心 天津 300171

海洋大数据管理前端衔接数据感知、采集与传输,担负着海洋大数据有机整合、统筹管理、挖掘分析和共享服务,其后端延伸支撑各类海洋信息应用服务的高效稳定运行[1],是海洋数据应用的核心基础。近年来,随着我国海洋观测调查对象多样化、观测方式多源化、观测仪器高精度、高分辨率和自动化,以及站点布设密度加大,使得海洋数据呈现出爆棚式增长,传统海洋数据管理方式的缺陷日益凸显。另一方面,国家提出了将数据资产作为生产要素纳入市场经济流通的战略。管好用好多源异构海量海洋数据,充分释放海洋数据红利,作为数据载体和驱动力量,海洋大数据平台框架和存储策略等内容的设计,是影响整体运行效果好坏的关键因素。因此,本文在分类分层海洋大数据资源规划研究基础上,围绕大数据平台框架、数据计算存储架构和策略等技术发展现状,结合海洋综合数据库关键技术攻关与应用实践结果,简要介绍了海洋大数据平台搭建、存储管理的设计思路和模型建立,以及数据库实体构建与管理方案等内容。

1 大数据管理技术总体架构

1.1 大数据总体架构

大数据存储管理与数据的自身特征及采集应用特性等息息相关,是大数据平台不可分割的有机整体且环环相扣。近年来,随着大数据技术的不断发展,大数据生态已经趋于成熟,相继推出了许多生态环境以应对各异的数据应用需求。中国信息通信院发布的《大数据白皮书 (2016年)》提出,大数据架构可以划分为信息交互通信、数据存储、数据计算分析、资料管理和安全隐私等层次。

图1 大数据关键技术组成

1.2 大数据存储架构

大数据存储架构主要包括分布式文件系统、分布式数据库和大规模并行数据库数据。分布式文件系统典型代表HDFS(Hadoop Distributed File System)是高度容错、高吞吐量的存储系统,适合大规模数据集上的应用,缺点是不支持随机修改,查询效率低,对小文件支持不友好。分布式数据库典型代表HBASE(Hadoop Database)是一个分布式面向列的数据库,构建于HDFS之上,能够支持海量结构化数据的高读写场景。大规模并行数据库 (Massively Parallel Processing Database,MPPDB)具备强大的并行数据计算能力和海量数据存储能力,能够很好地支持多层嵌套等复杂SQL查询,对TPS级结构化数据进行计算分析,能在很短时间内能得出结果。与传统的关系型数据库相比,MPPDB在数据处理方面,具有采用分布式架构、处理数据量大、更大的I/O能力、扩展能力好、采用列式存储、节约存储空间等优势[2]。

1.3 大数据计算架构

为解决大规模大数据计算的实际需要,大数据计算架构也在不断发展,主要包括批处理架构、流处理架构和批流混合架构等[3]。

批处理 (Batching Processing)操作大容量静态数据集,这些数据通常符合有界、持久、大量等特征。批处理操作定期读入大批量数据,然后完成相应业务处理并进行归档,要求在计算进行过程中数据维持自己的状态。例如在计算总值和平均值时,必须将数据作为一个整体进行处理,而不能视作多条记录的集合。批处理严重依赖持久存储,每个任务需要多次执行读取和写入操作,因此速度相对较慢,计算有可能需要几小时、几天甚至是几周的时间。但磁盘空间通常是服务器上丰富的资源,因此,能够处理大规模数据集。Hadoop就是一种专用于批处理的处理架构,MapReduce是Hadoop的原生批处理引擎,而Spark是基于MapReduce的优化,是一种基于内存的批处理计算引擎。

流处理 (Streaming Processing)可用于处理源源不断的消息的流数据处理,并将处理之后的结果保存到持久化介质中,也可以作为一个通用的分布式架构使用,从而解决批处理延迟大、响应缓慢、运维复杂等问题[4]。Storm是一种流式处理架构的典型代表,其具备分布式、运维简单、高度容错、无数据丢失和多语言支持等优点。近年来,Storm陆续添加了序列化的架构、事务性拓扑支持和底层消息机制等重大新特性,并且集成了越来越多的组件库,提升了与现有系统的协作能力。另外,Spark的流处理能力则是由Spark Streaming组件提供,该组件引入了微批次 (Micro-Batch)技术,即把一小段时间内的接入数据作为一个批次来处理。

随着大数据应用的进一步发展,单纯的批处理与单纯的流处理架构无法完全满足数据处理分析需求,由此,也就产生了批处理和流处理结合的混合处理架构。批流混合处理架构主要有Lambda、Kappa、Flink和Spark架构等[5]。

2 海洋大数据平台生态

2.1 海洋大数据平台架构

海洋数据具有多源异构多模态的特点,导致海洋数据存储和应用情况比较复杂,且许多业务场景需要海量结构化数据计算和文件分析同时进行。结合海洋数据的汇集更新、存储管理、处理加工、共享服务等业务实际需求,并从平台技术的成熟度、适用性和易用性等方面考虑,在云计算解决方案基础上,设计构建了MPP+Hadoop混搭的海洋大数据平台。综合利用传统数据库集群和大规模并行处理MPP集群,为结构化海量数据提供了一个可扩展、高效、稳定的存储计算环境。同时,利用Hadoop2.0分布式文件系统 (HDFS),实现非结构化和半结构化文件的高效存储,基于Spark内存迭代式计算引擎来满足海洋大数据分析应用需求。海洋大数据平台架构如图2所示。

图2 海洋大数据平台架构

海洋大数据平台主要由海洋数据采集更新、存储管理、处理分析、数据服务层和系统管理等层次组成。数据源层主要针对全球立体观测、专项调查、极地大洋科考、海洋综合管理、海洋卫星遥感调查、国际交换合作、互联网获取和用户行为等数据源,开展数据的采集、解译、清洗,并根据数据特性进行分类组织和加载。海洋大数据存储管理层主要由事务型数据库系统、MPP数据库系统和Hadoop分布式文件系统 (HDFS)组成。事务型数据库主要存放空间矢量数据、原始数据、基础数据、元数据和系统数据等;MPP数据库主要存储结构化的要素数据和网格数据等;HDFS主要存放非结构化/半结构化的文档、图像、影像、音视频文件、归档日志等。依托事务处理引擎、时间序列引擎、空间数据引擎和MPP计算引擎,以及不确定性分析、质量评估、融合订正、汇总统计等功能组件,实现各类结构化业务数据的查询检索、处理评估和调度更新;同时,依托基于内存的迭代式计算引擎,结合大数据可视化、机器学习和深度学习等算法模型,实现海量数据的智能分析。提供用户角色授权管理和统一认证,对操作和方法运行进行日志记录;依托消息队列对提交的任务进行任务调度;对CPU/GPU等硬件计算资源负载进行负载管理;提供数据安全防护和备份功能。统一服务平台主要包括基于SQL的多引擎数据调度交换功能和数据访问接口功能。海洋大数据平台在多源数据采集、分类存储和处理分析后,面向决策支撑、公益服务和开放创新等方面,提供统一的数据资源、地图资源、模型方法和成果产品等海洋大数据应用服用。

2.2 海洋大数据资源池架构

在海洋数据爆棚式增长的今天,单一架构的存储处理系统已经无法满足海洋业务需要。本节将结合实际海洋数据及业务需求,讨论关于海洋大数据资源池架构组成、数据流转,以及不同类型数据存储方式等内容。目前市场主流数据库技术包括传统的用于事务处理的OldSQL、适用于数据分析应用的NewSQL和适用于互联网应用的NoSQL。其中,OldSQL应用的典型代表为事务型数据库Oracle;NewSQL应用的典型代表为大规模分布式并行数据库 (MPP);NoSQL应用的典型代表为Hadoop HDFS[6]。传统海洋数据库一般采用 “一种架构支持多类应用”的模式,如 “十二五”期间大洋数据管理与共享平台就采用了Oracle数据库开展建设。随着海洋数据类型和数据量的快速增长,采用单一架构建设的模式已经无法满足海量的结构化和非结构化海洋数据的存储管理、复杂分析、关联查询、实时性处理和控制建设成本等多方面的要求。为解决这种突出的矛盾,基于大数据技术设计规划了 “OldSQL+NewSQL+NoSQL”的混搭架构,采用 “多种架构支持多类应用”的综合模式来构建海洋资源池,如图3所示。

图3 海洋大数据存储架构

3 海洋大数据存储策略

3.1 基于事务型数据库的海洋大数据存储

在海洋大数据平台中,事务型数据库以数据库表为管理对象,通过事务、时序和空间等引擎,采用高可用解决方案构建原始数据库、基础数据库、空间矢量数据库和系统日志库等,存储管理海洋环境、海洋地理和海洋专题等领域海洋数据和信息产品,记录数据库操作信息。

原始数据库采用数据文件存储、数据库文件目录管理和元数据导航等方式,对经过整理、归档的各类原始海洋数据进行存储和管理。原始数据库首先按照海洋业务化观测、海洋调查、国际合作与交换和购置等不同来源渠道进行划分,其次按照海洋水文、海洋气象、海洋化学、海洋生物、海洋底质、地形地貌、基础地理和遥感等学科/领域建立元数据库,以及元数据记录与数据文件实体的对应关系,实现基于元数据库的海洋原始数据管理。

基础数据库主要存储经标准处理后的海洋环境数据。首先按照海洋业务化观测、海洋专项调查、极地大洋科考和国际合作与交换等业务领域进行划分。在此基础上,海洋业务化观测按照海洋站、浮标、雷达、志愿船和断面等平台类型建设数据库,最终以分钟、整点、正点和月报等格式构建对应数据库表和字段。海洋专项调查主要按照学科建设数据库,海洋水文根据调查仪器类型建设相关数据库表,海洋气象按照高空、海面结合走航/大面观测方式建设数据库表,海洋化学按照水环境、大气化学和放射性物质等调度任务建设数据库表,海洋生物按照海洋植物类、动物类和生产力建设数据库表,海洋底质根据底质数据类型建设数据库表,海洋地球物理按照重力、磁力和海底地震等建设数据库表,地形地貌建设多波束和单波束水深数据库,海洋物理按照声学和光学建设库表。极地大洋科考海洋水文气象等环境数据库参照海洋专项调查相应库表建设,根据大洋矿产类型建设大洋矿产数据库表,按照极地冰川、极地天文等建设极地数据库表。国际合作与交换主要按照国际组织和计划建立数据库表。

空间矢量库主要包括系列比例尺海洋基础地理数据库、沿岸及海岛的高分辨率卫星遥感影像数据库、海洋水色卫星遥感资料数据库、海洋动力卫星资料数据库、海图资料数据库和全球DEM数据库等。空间矢量库的建立首先需要对数据的信息编码进行总体规划设计,对各类数据建立统一信息分类编码体系;使用统一的数据目录,结合元数据库,构造海洋空间信息数据库的信息资源目录体系。其次,依托空间数据引擎,如ArcSDE等,采用统一的空间坐标参考,开展空间数据建模、组织和管理。在此基础上,对元数据和业务数据进行统一存储与管理。在建设中,矢量与影像数据等空间数据利用ESRI的Geodatabase数据模型,以空间数据库结合事务型数据库表进行存储管理。

元数据库主要根据海洋元数据标准,对不同介质、不同种类数据进行元数据要素信息提取、分级分层、归纳和提炼,并采用主键索引方式,设计构建元数据存储结构和关系图,实现元数据的分级和交叉关联。元数据库主要包括基本信息、质量信息、内容描述信息、空间数据描述信息、空间参照信息、服务信息和参考信息等内容。

系统日志库主要依托消息队列系统,面向上层分析监控系统提供数据库操作记录的消费,以及向系统日志库的更新存储,并定期将形成的日志文件更新到HDFS中。

3.2 基于MPP数据库的海洋大数据存储

分析型MPP数据库采用并行数据库集群构建,结合共享内存技术、多种索引功能和多级别索引机制等[7],为超大规模结构化数据提供了高性能、高可用、高扩展性和高容错性的通用存储计算环境。总体上,MPP数据库可划分为海洋环境整合数据库和海洋专题整合数据库。

海洋环境整合库主要面向不同应用需求分别搭建要素层和网格层等数据仓库,抽取基础数据并逐层开展调度整合。要素层数据库按照一致的库表结构,从国内来源、国际来源和全源3个维度,按照要素构建具体数据库表。其中,国内来源整合数据库主要从基础数据库中抽取海洋环境观测、海洋专项调查、大洋和极地科考等我国自主获取数据;国际来源整合数据库从国际合作交换基础数据库数据抽取整合得到;全源数据库是从国内和国际层数据抽取整合形成。网格层数据库是在要素数据库层的基础上,进一步按照不同空间分辨率 (累年、历年、累年逐月、历年逐月等)和空间分辨率 (0.5°、1°、2°、5°等)进行建设。

海洋专题整合库主要是在最大限度保持代码的各行业一致性前提下,进行主数据、元数据和值域字典等核心库表的选取和规范化改造,并按照资料类型、内容等属性,对不同业务领域中的重复数据进行排重整合。各专题数据库中的环境数据抽取进入海洋环境综合数据库,其他专题信息按照业务领域整合形成各专题整合数据库,主要包括海洋基础地理与遥感、海洋经济、海域海岛、海洋生态保护、海洋权益、海洋预报减灾等。

3.3 基于HDFS的海洋大数据存储策略

传统关系型数据库因为事务一致性、读写实时性等诸多限制,无法满足用户对数据库高并发读写、高可扩展性、高可用性的需求,以及对海量文件的高效率存储和访问需求。因此,除了采用二维数据结构,基于文件系统存储非结构化和半结构化海洋数据文件也尤为必要。分布式文件系统典型代表是HDFS,具有灵活的数据模型,没有严格的数据存储格式,不用事先建立数据存储字段,可以随时定义存储字段,数据之间没有关联,具有高横向扩展性及高并发读写性能[8],允许用户将数据组织成文件和文件夹的方式,并提供对应接口,使应用程序能直接访问基于HDFS的数据流。

作为海洋非结构化/半结构化大数据存储的一项核心组件,分布式文件系统主要用于对海洋相关文档、音视频、图形、图像等文件进行统一存储与管理。海洋地理信息产品按照产品内容、比例尺、数据来源,组织存储矢量地形图、栅格地形图、矢量海图、栅格海图和DEM产品等内容。从产品类型来分,海洋遥感按照遥感方式类型存储管理影像、专题要素图形和专题数据集产品等卫星遥感和航空遥感等内容。海洋专题分布式存储主要包括海洋经济专题成果、海洋政策法规专题成果、海洋权益专题成果、海域使用和管理专题成果、海岛管理专题成果、海洋生态预警监测专题成果、海洋预报减灾和环境保障专题成果。从领域方面来分,主要包括基础专项调查非结构化文件系统 (海洋环境专题调查报告文件、大洋专项调查视像文件等),海洋综合管理非结构化文件系统,海洋测绘非结构化文件 (遥感影像、海图文件等),海洋生态保护非结构化文件 (科考报告、照片文件等),海洋经济统计非结构化文件 (海洋经济统计年鉴等),海洋灾害非结构化文件 (海洋灾害公报、年鉴等),海岛管理非结构化文件 (海岛数字正射影像数据文件等)。

3.4 个性化海洋大数据存储策略

传统海洋数据库管理海量数据读取分析速度慢是多年来困扰海洋数据管理的关键问题。在海洋综合数据库中采用了列存储技术,即将数据库二维表中的数据按列方式进行存储,不读取无效列数据,降低I/O开销,从而大幅提高数据查询性能。为进一步提高I/O效率,对每列数据再细分为数据包,无论单表有多大,数据库只需要操作相关的数据包,从而性能不会随着数据量的增加而下降,极大的提升了数据吞吐量。列存储技术的使用,使得数据库中单表与其关联表的千亿级记录全量数据查询耗时仅3 s。此前基于关系数据库,亿级记录查询需要数个小时,甚至时常会发生进程崩溃的情形。同时,数据压缩比可以达到20倍以上,数据占有空间降低到关系数据库的1/10,极大节省了存储设备的开销。另外,针对各类海洋数据不同的更新时效和应用频度,数据库表结构复杂度,以及要素间的关联度强弱,开展数据库设计[9]。即面向结构较为复杂的库表,选取HASH分布 (指定节点)或随机分布 (随机节点)方式;面向结构比较简单的库表,采用复制表方式,进行数据库设计,在保证高效查询的前提下,减少了因数据写入和跨节点读取带来的消耗。例如,一个包含时间、温度、盐度和气压的数据,时间与其它要素之间强关联,温度与盐度要素通常一并采集和使用,因此,形成了时间、温度和盐度列组,以及时间和气压列组 (图4)。

图4 海洋综合数据库列存储技术

通过构建的时空索引库的方式,可以显著提高海洋数据的检索与服务效率,尤其针对数据分布密、空间范围大、时间跨度长的数据检索,可以成倍提高效率[10]。同时,建立了面向时空对象查询的时空索引库后,可满足基于地理位置的点查询、区域查询、选择查询、最近邻查询和连接查询等多重查询需求。构建海洋环境时空索引库的关键是如何建立海洋环境数据的时空索引。时间索引的构建比较简单,可以通过将时间类型值映射成整型值,并依据整型运算来得到一个缩小的时间查找范围,再在缩小的时间范围内,根据具体的查询条件按时间类型进行检索,以达到提高检索效率的目的。空间索引的构建则比较复杂,目前主要结合应用热度,采用四叉树网格索引的方式,对全球范围进行划分和编码,建立5°、 1°、 1/4°、 1/8°4层索引, 保证网格数据高效查询检索。

4 结 语

国家海洋信息中心基于自身职责,长期致力于海洋大数据资源管理与服务工作,在国内业务化观测、国家重大海洋专项 (如908专项、海岛海岸带专项、全球变化和海气相互作用专项等)、大洋科考等海洋核心业务领域承担着国家海洋资料管理机构的角色。本文提出的海洋大数据平台架构、海洋大数据资源池架构和海洋大数据资源存储策略等,已经在国家海洋大数据资源管理工作中得到良好应用。大数据技术日新月异,海洋数据管理这项基础性工作正面临着难得的机遇和挑战。海洋大数据管理技术还需在新的时代背景下与时俱进,不断更新,为国家海洋数据资源价值发挥保驾护航。

猜你喜欢
结构化架构海洋
基于FPGA的RNN硬件加速架构
改进的非结构化对等网络动态搜索算法
深度学习的单元结构化教学实践与思考
功能架构在电子电气架构开发中的应用和实践
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
构建富有活力和效率的社会治理架构
爱的海洋
第一章 向海洋出发
VoLTE时代智能网架构演进研究