知识星球:数据书局。打算通过知识星球将这些年积累的知识、经验分享出来,让各位在数据治理、数据分析的路上少走弯路,另外星球也方便动态更新最近的资料,提供各位一起讨论数据的小圈子
1. 摘要
海洋观测技术的革新以及数据模型的改进意味着海洋大数据时代的到来。海量海洋观测数据的管理和预测模型的运行对计算要求都很高,云计算的兴起提供了重新思考如何管理海洋数据、运行模型的新思路。海洋数据上云面临已有数据、技术、工作流迁移的挑战,以及如何保质保量将已有功能转换到云端供用户使用。
在文章中,该作者提供云计算的介绍,描述云计算用于管理和分析观测数据和模型结果的用途,讨论迁移到云时必须考虑的因素:成本、安全性和组织对云计算使用的限制。探索通过沙箱对云的未来使用以及使用云存储数据的实用性和注意事项,考虑海洋观测的技术革新。
2. 云计算
2.1 云计算定义
云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。
2.2云计算特点
云计算的可贵之处在于高灵活性、可扩展性和高性比等,与传统的网络应用模式相比,其具有如下优势与特点:
(1)虚拟化技术
虚拟化突破了时间、空间的界限,是云计算最为显著的特点,虚拟化技术包括应用虚拟和资源虚拟两种。
(2)网络访问便捷
可通过网络便捷使用软件功能,而且以瘦客户端胖服务端的方式进行访问。
(3)资源池灵活性高
不同的应用对应的数据资源库不同,所以用户运行不同的应用需要较强的计算能力对资源进行部署,而云计算平台能够根据用户的需求快速配备计算能力及资源。IT资源、软、硬件都支持虚拟化,比如存储网络、操作系统和开发软、硬件等。虚拟化要素统一放在云系统资源虚拟池当中进行管理。
2.3服务模式
软件即服务(SaaS)
软件即服务也是其服务的一类,通过互联网提供按需软件付费应用程序,云计算提供商托管和管理软件应用程序,并允许其用户连接到应用程序并通过全球互联网访问应用程序。
平台即服务(PaaS)
平台即服务是一种服务类别,为开发人员提供通过全球互联网构建应用程序和服务的平台。PaaS为开发、测试和管理软件应用程序提供按需开发环境。
基础设施即服务(IaaS):
基础设施即服务是主要的服务类别之一,它向云计算提供商的个人或组织提供虚拟化计算资源,如虚拟机、存储、网络和操作系统。
2.4 云计算使用模式
在文章中,该作者将云计算定义为共享的、本地用户可配置的资源,用于数据存储、发现和计算。
Butler和Merati提供了对云计算的另一种看法。遵循“模式语言”的框架以及模式面向对象编程中的应用。他们定义六种云计算使用模式:
1)基于科学数据的云----云端获取数据
2)基于管理科学数据的云----云端存储
3)云端计算
4)云端分析
5)云端可视化
6)云实时
3. 海洋云计算实例
为了扩展上述模式,介绍三个海洋方面用例,NOAA专注于使用云来分发数据的服务、IOOS如何将多种云计算服务模式用于其观测数据和模型数据、欧盟哥白尼海洋环境监测服务。
3.1 NOAA大数据项目
2015年,美国国家海洋与大气管理局(NOAA)大数据项目(BDP)是一项旨在提高NOAA数据资源的可发现性、可访问性和可用性的协作研究工作。NOAA与五个合作单位Amazon Web Services(AWS),Google Cloud Platform(GCP),IBM,Microsoft Azure和Open Commons Consortium(OCC)签署了相同的研究与开发协议(CRADA)。
大数据项目(BDP)促进了基于云的NOAA数据访问,从而提高了研究人员、学术界、企业和公众对NOAA数据的可用性。2015年10月,NOAA的下一代天气雷达(NEXRAD)存档传输到云对象存储,整个NEXRAD 88D归档文件(约300 TB,2000万个文件)从NOAA的国家环境信息中心(NCEI)复制到AWS,Google和OCC。海洋数据集包括NOAA运营预测系统(OFS)、海面温度数据集,NCEP / NCAR再分析数据等。
在AWS上发布NEXRAD数据之后:
- 2016年3月,用户从NCEI和AWS总共访问94 TB数据,是NCEI以前每月最大访问量的两倍。
- NCEI被下载的NEXRAD Level II数据量减少了50%
- NEXRAD新的数据分析用途:鸟类迁徙、蜉蝣研究。
- NOAA NEXRAD数据订单服务的80%由AWS提供。
图1 数据代理架构图
3.2 IOOS基于云的数据与模型服务
在综合海洋观测系统IOOS中,许多区域子系统已将海洋观测数据管理和分发服务迁移到云,IOOS区域子系统之间的云计算使用情况差异很大,其中一些区域子系统将其大多数Web服务基础架构部署在云上,一些子系统将基础架构部署到具有或不具有云组件的共享数据中心,另一些子系统则主要利用包含云备份功能的本地基础架构。
IOOS中区域子系统最常见的云计算用途是用于Web应用程序和数据访问服务。包括向用户提供观测和预报数据的数据服务(例如THREDDS(主题实时环境分布式数据服务)、ERDDAP(环境研究部的数据访问程序)和GeoServer)。IOOS在云上基于虚拟机和Docker容器部署THREDDS服务和ERDDAP服务。
云计算为IOOS提供的最重要的价值是其可靠性。加勒比区域观测子系统是综合海洋观测系统IOOS的一部分,2015年将其大部分网站和相关数据服务迁移到亚马逊AWS云平台。此举的目的是减轻波多黎各大学马亚圭斯分校的电网可靠性问题。事实证明,发电机功率不足会导致网络、数据流、网页访问和THREDDS服务器的运行不可靠。数据上云迁移后,加勒比区域观测子系统的中断次数大大减少,即使在2017年飓风季节期间,也能够提供基本的数据流、数据服务和网页访问等功能,近乎连续的正常运行,对于减灾救灾工作有重要的指导意义。
备份和冗余也是云计算的常见用例。自从玛丽亚飓风中恢复过来以来,加勒比区域观测子系统致力于开发和测试基于云的高性能计算(HPC)海洋模型,加勒比区域观测子系统的建模人员已经在亚马逊AWS云平台上进行了区域高分辨率的有限体积海洋模型(FVCOM)的试验,接下来要进行迁移的是其气象研究预报(WRF)实施、模拟近海波浪(SWAN)和SWAN海滩预报以及更新的区域海洋建模系统(ROMS)。
数据上云除了考虑成本因素等,商业云平台越来越多地提供新颖的服务和功能,这些功能很难在本地IT基础设施环境中复制。托管服务(软件即服务)可提供灵活性和可扩展性,以响应用户流量或其他指标的变化,而这些变化在自有系统和环境中不容易复制。
到目前为止,IOOS区域子系统采用云托管服务的好处如下:
- 本地可用的计算基础架构或电网可能不可靠。
- 云托管的运营成本可以更低。云托管的成本高度依赖于特定的应用程序,但是IOOS可以开发一套最佳实践来最终降低云托管的成本。
- 降低了硬件生命周期成本。云托管服务消除了对关键服务器和网络基础架构的定期更换。
- 云的可扩展性可以满足用户数据请求高峰的需求。
3.3 欧盟哥白尼计划+谷歌
哥白尼计划是欧盟的地球观测计划,它基于卫星和原位观测对外提供涵盖陆地、海洋、大气的免费数据信息。哥白尼计划主要由三部分组成:卫星观测、原位观测、数据服务。
第一部分卫星观测,是指欧洲航天局哨兵系列卫星收集到的卫星数据,哨兵系列卫星数据可以通过哥白尼(Copernicus)网站进行访问,可以使用Sentinel-2和Sentinel-3工具箱进行数据处理。另外,Google Earth Engine(GEE)和Google Cloud(GC)提供了简化的环境来在线访问和操作数据,使用Python API简化了GEE的访问和管理,该API通过GC Datalab与GEE服务器进行交互。DataLab允许使用Google数据中心内的虚拟机进行高级数据分析和可视化,并通过开源编码实现较高的处理速度。此外,Datalab还可以用于机器学习建模。
其中原位观测是指从欧洲各地不同的监测系统收集各类环境信息,如气象站、海洋浮标等,可以通过哥白尼海洋环境监测系统(CMEMS)访问这些数据。哥白尼海洋环境监测系统CMEMS建立于2015年,旨在提供一系列服务,以改善海洋领域四个核心领域的知识:海洋安全、沿海和海洋环境、海洋资源以及气候预报。
4 数据上云注意事项
4.1 成本计算
对云平台部署和本地部署的成本进行比较是一个比较复杂的问题,为了达到合理的比较,需要考虑一些因素,例如基础设施成本并非仅是购买硬件的成本,还需要包括房屋成本、运维人员成本等。由于大学由国家和其他各方面的支持,大学托管的系统的成本很便宜,但这是没有计算外部支持的,并非真实成本。
云平台用途不同也会影响估算成本,仅仅将数据存储在云端,很容易进行成本估算,2015年,Molthan介绍NASA在私有云和公有云部署天气预报研究模型(WRF)的研究,并下结论数据上云的成本是可接受的,尤其在发展中国家。
4.2 安全问题
数据进行上云迁移,安全问题依然是一个重要的考量,尤其是政府部门。其实,除非提供数据服务的本地部署与公共网络完全隔离,否则本地和云托管的逻辑访问要求非常相似。
5 用于观测和模型的云计算
5.1 实时数据管理和观测服务架构
尽管观测数据不一定是“大数据”,但是传感器观测数据通常可以分类为大数据,目前一些低频采样的传感器主要受通信带宽、数据采集处理系统等影响, 结合基于服务器的边缘计算和云平台的可扩展性,对海洋进行高频数据采集有望解决。
云平台降低与海洋观测系统相关的本地风险。通常,将传感器部署到海洋中,并通过数据中心和传感器进行通信传输数据。在极端天气事件(海洋观测数据对于决策至关重要)的情况下,由于断电、网络连接和其他与天气有关的因素,都有可能对本地数据中心的稳定性有一定的影响。
流数据处理是一种非常适合云平台的处理模型,它是一种技术概念,其重点是能够快速响应传入的数据,而不是批量处理分析数据。它可以简化为三个基本步骤:
- 将消息放到消息代理中;
- 分析通过代理传递的数据;
- 保存原始数据和质控后的数据。
用于海洋观测数据处理系统的示例云架构系统可以使用以下工作流程:
- 对数据进行质量控制,使用实时海洋数据质量保证(QARTOD)和其他质量控制软件来检测丢失、错误的数据。
- 根据预定义或动态条件向管理员和用户发出警报。
- 计算每个参数的日平均、周平均和月平均值。
- 将处理结果以及供应商提供的数据格式(例如AWS Redshift或BigTable)存储回处理流中,以进行其他分析。
- 将数据流导出成NetCDF文件,以通过访问服务进行归档和托管。
5.2 云计算建模
海洋建模的传统工作流程是在HPC集群上运行仿真,将计算结果下载到本地计算机,然后在本地分析和可视化。但是,随着海洋模型分辨率变得更高,正在产生越来越大量的数据。例如,最近对分辨率为1 km的全球海洋进行的为期一年的模拟产生1PB的数据结果。这些数据变得太大而无法在本地下载和分析。
云计算代表了一种新的操作方式,可以在其中存储大型数据集,在云中对所有数据集进行分析和可视化。数据无需离开云,任何人都可以有效访问,从而实现结果的可重复性。将分析和可视化迁移到云,意味着建模人员和其他研究人员仅需要轻量级的硬件和软件就可以访问数据集。
5.3 云计算存储
传统上,模型结果一般以为多维数据设计的二进制格式存储,例如NetCDF和分层数据格式(HDF)。这些格式使用户可以轻松地从数据集中提取所需的数据。还使提供商能够对数据进行分块和压缩,方便优化使用率和所需的存储空间。
尽管这些格式在传统文件系统上运行良好,但它们在云平台使用的对象存储方面面临挑战。尽管NetCDF和HDF文件可以简单地放置在对象存储中,然后由FUSE之类的系统作为文件系统进行访问,但是访问速度非常差,因为每次数据块访问都需要对元数据进行多次请求。这就产生使用云平台上NetCDF和HDF数据模型表示数据的新方法。例如,Zarr格式通过将每个块拆分为云存储中的单独对象,然后通过简单的JSON(JavaScript对象表示法)文件表示元数据,从而使对多维数据的访问变得高效。
有了云存储,对数据集的大小没有任何限制,并且数据会自动复制到不同的位置,从而防止数据丢失。在云上存储数据的一大好处是可以通过HTTP(超文本传输协议)访问存储盘,因此无需使用THREDDS或OPeNDAP(网络数据的开源项目)之类的Web服务就可以高效地访问数据。
5.4 云计算分析
允许数据框架(Spark、Dask)并行处理数据增强了对云平台上模型数据的分析。在一个处理器上花费100分钟的分析成本与在100个处理器上花费1分钟的分析成本相同。
5.5 云端可视化
在浏览器中,大型数据格网显示具有挑战性,但是诸如Datashader之类的新技术允许在多边形的数量较小时直接表示数据,而在多边形的数量较大时则表示为动态创建的图像(图2)。Signell和Pothina使用Pangeo框架和这些技术来分析和可视化云平台上的沿海海洋模型数据。
图2 900万节点格网上的飓风模拟
6. 机遇和挑战
随着海洋观测数据量和海洋数值输出量的持续增长,如何以及在何处有效存储这些数据的问题变得尤为重要。如前所述,商业云可以接受大量数据并将其有效存储在对象存储系统中,同时还启用了新的数据分析方法。撇开成本,将开放数据迁移到商业云平台提供明显的技术优势,但是我们必须考虑潜在的陷阱以及带来的好处。