一种基于ETL技术的遥感云服务框架的设计与实现
来源:用户上传
作者:韩海涛
摘要:为改进传统遥感云服务框架中存在的性能问题,减少计算力资源的浪费,优化用户体验,利用ETL(Extraction Transformation Loading,抽取转换装载)技术对传统框架的用户业务处理模式进行了优化,将用户业务处理部分从虚拟设备转移到计算集群,由高性能计算节点统一处理,并通过流程引擎进行自动化管理和控制,最终,用户通过Web接口实现需求的定义和对服务的访问。经原型测试表明:改进框架实现了业务的自动化处理,并有效减少了I/O开支、提高了CPU利用率、提升了整体效率、优化了用户体验。
关键词:抽取转换装载;遥感;数据技术;云服务
中图分类号:TP702 文献标志码:A
文章编号:2095-5383(2020)02-0026-03
Abstract: In order to improve the performance problems existing in the traditional remote sensing cloud service framework, reduce the waste of computing power resources, and optimize the user experience, ETL (Extraction Transformation Loading) technology was used to optimize the user business processing mode of traditional framework. That is, the users business processing part was transferred from the virtual equipment to the computing cluster, which was processed by the high-performance computing node and was automatically managed and controlled by the process engine. Finally, users realize the definition of requirements and access to services through the web interface. The prototype test shows that the improved framework realizes the automatic processing of business, effectively reduces the I/O expenses, improves the CPU utilization, improves the overall efficiency and optimizes the user experience.
Keywords:
extraction transformation loading; remote sensing; data technology; cloud services
隨着成像、通信、航空航天等技术的发展,遥感技术也得到了飞跃式发展,遥感数据也越来越显示出数据量庞大、更新周期短、数据类型多样等大数据特征[1],而传统的单机、网格化处理方式,已经不能满足海量遥感数据的处理需求[2],因此,云计算技术在遥感产业中得到了广泛应用。现阶段,这些应用通常依托于由处理一般业务的云服务改进而来的框架[3],但这种框架在处理遥感业务时,面对庞大的数据量和复杂的业务逻辑往往不能很好地满足需求。为此,本文对业务处理的流程进行了优化,并利用ETL技术用户友好和自动化程度高的特点,对服务进行了重新架构,设计并实现了一种用户友好、高效、自动化的遥感云服务框架。
1 相关技术
1.1 遥感云服务
遥感云服务是基于云计算整合了大规模遥感数据资源和技术资源,基于互联网环境以按需共享的方式提供在线遥感应用服务[4]。因此,遥感云服务是可以充分利用云计算技术的优势大大降低遥感数据的处理和使用成本,并且实现资源整合和按需共享的服务模式[3]。遥感云服务中用户通过系统提供的虚拟设备,能够在基于互联网的轻量级设备上完成对海量数据的访问、处理、分析及共享,避免了本地存储和网络资源的浪费,降低了数据处理和使用成本。
1.2 ETL技术
在大型数据服务的构建过程中,需要将各种分布的、异构的数据源中的数据抽取后进行清洗、转换、集成,最后加载到数据库中,这个过程叫做抽取
转换装载(Extraction Transformation Loading,ETL)[5]。ETL是数据服务构建和使用过程中非常重要的一个步骤,ETL处理效率的高低、转换质量的好坏,直接影响着数据服务的建设和数据使用的有效性[5]。
ETL技术包含了与各种数据源的连接、异构数据的抽取、数据的清洗和转化等具体的数据技术、并发处理、自动化流程管理等一系列综合技术。具有规范、安全、自动化、用户友好等特点[6]。云服务中通常会把ETL相关模块作为数据工程工具集成到存储集群中,并开放接口供系统和用户调用,以此实现对数据与工具的封装。
2 系统架构与流程
2.1 系统工作流程
遥感云服务平台通常通过基于虚拟化(Virtualization)技术的资源分配方式为用户提供计存储、带宽、算力等资源。实现一种让用户租用1台运行在云端的高性能设备来处理业务的IaaS(Infrastructure-as-a-Service,基础设施即服务)。在单一的用户使用周期内,允许用户在虚拟设备上进行一个或多个业务的处理,在每个业务的处理中,根据用户需要需求,由虚拟设备请求并从存储节点获取数据,获取完成后在虚拟设备上对数据进行处理、分析,最终获取并存储处理结果[4]。 以此为基础,为避免数据的冗余传输,减少计算力资源的浪费,优化用户体验,充分利用硬件性能,通过创建一个高性能计算节点,以每个业务为单元,利用ETL技术了进行封装,对整体业务流程进行了进一步优化。
优化后,在完成系统部署,向用户提供服务之前,系统会向服务器申请创建一个高带宽、高算力的持久性高性能计算节点,该逻辑节点为遥感业务中大量图像处理及复杂计算提供主要算力。
如图1所示,框架优化后业务处理的过程需要经历3个阶段。第1阶段:当用户开始业务操作时,首先通过Web接口访问服务来定义算法、创建业务流程,然后将流程的配置参数和用户数据委托给高性能计算节点。第2阶段:计算节点按照业务流程,向存储节点请求数据,由存储节点对各类异构数据进行提取。在获取所有数据后,计算节点利用ETL工具进行数据清洗和装载,当数据全部载入成功,系统将按照用户定义的算法对数据进行处理和运算。第3阶段:数据处理完成后系统通过Web将结果反馈给用户,用户根据自身需求保存和输出最终结果。同时可以设置分享权限并将结果推送到存储节点,完成业务处理。
2.2 系统架构与模块功能
如图2所示,根据流程优化,系统总体架构被设计为3部分。
2.2.1 基础数据存储
在Linux存储集群的环境基础上,部署了该系统的提取工具。对于存储遥感数据的分布式文件系统、文件系统、结构化数据库、NOSQL数据库等不同的存储形式,提取工具为其配置了连接各种数据源的接口,用于访问各类不同的结构化或非结构化数据。根据数据的不同类型,系统预置了FTP、URI、数据访问对象、数据交换文件、自定义字节流等传输方式,用于向计算集群传输数据。
2.2.2 数据处理与运算
部署在计算集群上的计算节点利用Docker技术动态的处理各种业务逻辑,为每个业务实例分配系统资源,维护多个实例的并发安全。
静态资源由转换工具(Translator)、 载入工具(Loader)以及遥感数据处理所需的各种工具构成,可以被各个业务实例使用。
以此为基础,计算节点创建的每个业务实例依托流程管理工具,控制各模块按照流程有序执行。
通信模块负责流程各个阶段中业务实例与存储节点或用户进行一对一的交互和数据的传输。
Nginx服务独立于通信模块,用于解决计算节点与用户一对多通信问题,实现业务初始化信息的接收与最终处理结果的发布。
2.2.3 用户访问接口
用户通过Web入口可登录访问服务。在用户界面中可使用图形或XML文本的形式来定义算法和需求。
流程解析器会根据用户定义的需求将其解析为能够被计算节点接受的格式,并与用户数据一起打包发送到计算节点,开启业务流程。
3 原型系统实现与测试
为测试原型系统性能,在2台配置了24 GB内存,24核CPU,1TB硬盘空间,操作系统为64位CentOS7的物理主机上,通过Docker技術先后模拟了云服务运行的2种框架。使用500 GB经IMAPP预处理软件包处理生成的MODIS 1B数据为测试数据,以“从文件系统查找数据文件,提取其元数据后生成快视图并将快视图传输给用户”的简单业务流程为测试用例,进行多用户并发测试,来对比2种服务框架的性能。
在传统框架下,系统会在提供运算服务的主机上,为用户创建满足数据处理需求的固定大小的虚拟设备,用户在虚拟设备上利用Python执行测试用例,每次执行完成后系统会将虚拟设备初始化后分配给下一名用户。
在新的框架下,系统仅会分配一个满足Web访问需求的虚拟设备,让多个用户通过Web执行用例。
经3轮测试,测试时间段内系统资源的总体占用对比情况如表1所示。
在高并发状态下,2种框架内存使用率都较高。由于虚拟设备的网络带宽限制,传统框架数据读写量更大,拖慢了整体效率。新框架下CPU空闲率低、利用率较高, 相对传统框架会有更少的资源浪费。
4 结语
本文设计并实现了一种基于ETL技术的遥感云服务框架。ETL技术不仅可以为数据的规范化管理提供支撑,更可以为用户业务的自动化管理提供便利,图形化的需求定义方式也能大大降低系统的使用门槛。将ETL技术应用到遥感云服务中,不仅规范了遥感数据的管理,还为用户提供更加友好的交互方式。同时对服务框架的优化,在保证系统运行效率的前提下,有效提高了系统资源的利用率,避免了浪费。使遥感云服务能更多、更好地服务用户。
最后,由于系统的实现处于原型阶段,其稳定性及扩展性仍存在一些问题,交互方式也需进行优化,对此本文作者将会做进一步的研究和实验。
参考文献:
[1]朱建章, 石强, 陈凤娥,等. 遥感大数据研究现状与发展趋势[J].中国图象图形学报, 2016, 21(11):1425-1439.
[2]史园莉, 申文明, 熊文成,等. 遥感数据集群处理作业调度管理系统研究[J]. 计算机工程与应用, 2012, 48(25):77-82.
[3]张品,张海明,黎建辉.一种基于Linux容器技术的大规模遥感数据云服务平台[J].科研信息化技术与应用,2015,6(2):47-55.
[4]任伏虎, 王晋年. 遥感云服务平台技术研究与实验[J]. 遥感学报, 2012(6):221-236.
[5]王晓伟. 面向大数据的ETL设计与实现[D].武汉:华中科技大学,2013.
[6]汪洋,韩宁.基于开源代码的ETL工具的实现[J].微型机与应用,2016,35(24):19-21.
转载注明来源:https://www.xzbu.com/1/view-15256530.htm