APP下载

异地数据中心的数据同步与调度系统设计

2021-04-20方志宁张海滨冯雷葛永东

电子技术与软件工程 2021年3期
关键词:数据中心加密传输

方志宁 张海滨 冯雷 葛永东

(国电电力发展股份有限公司科技与信息管理部 北京市 100101)

1 引言

随着工业制造企业在自动化、信息化、数字化建设方面不断发展,以大数据、人工智能为代表的新技术在工业制造企业得到了广泛应用,这将更好地支撑企业战略发展需求,提高企业创新能力,并为企业发展提供强大动力,为建设智慧企业提供有力技术保障。文献[1]中对大数据、云计算作为基础设施的优势进行了研究,这也是新一代数据中心的发展趋势,在此背景下某集团化公司信息化建设也得到了良好的发展,公司本部及分布在全国各地的所属各单位相继建设了以大数据技术为基础架构的数据中心,为上层业务应用创新提供坚实的基础。

目前,随着分布在全国各地的所属各单位数据中心的不断建立,每个数据中心也成了一个一个的信息孤岛,没有共享的基础和条件。各数据中心数据得不到有效共享,浪费大量的人力物力,与信息化提高效率减轻劳动强度的初衷还有差距,导致数据对于业务的支撑作用还不够明显。因此需要汇集并沉淀业务数据,进行跨中心的数据融合、标准化,形成企业数据资产,并提供数据服务能力,为业务应用创新赋能。

针对上述现状,文献[2]提出了数据访问与位置、平台、应用无关的解决方案,文献[3]提出了基于数据平台的所在行业的市场数据整合的方案,文献[4-7]也从不同的角度提出了系统间数据共享交换的技术,也有针对应用级开发数据交互功能以实现数据共享。上述的研究对所在行业领域的数据交互进行了探讨,或是针对具体业务场景提出了数据交互技术,但在海量数据同步传输、数据安全、监控等方面没有提出有效的解决方法。

因此,在所在行业数据交换共享的场景虽然有针对不同场景数据共享的方案与技术,但在异地数据中心之间的数据同步传输需要考虑数据量大、带宽、数据点选、时效性等各种因素,因此异地数据中心的数据同步传输系统在此背景和需求下,通过采用分布式大数据核心技术设计并实现跨数据中心的数据同步传输系统,解决异地数据中心的数据融合与同步难的问题。

某集团化公司本部及分布在全国各地的所属各单位的数据中心作为试点工程,已将异地数据中心的数据同步传输系统(以下简称:数据传输系统)投入运行,通过数据同步传输系统,公司本部可以实现与所属各单位数据中心数据共享,为公司本部和各厂站实现办公协同化、信息网络化、业务电子化、决策分析数字化提供数据基础。通过数据的汇聚、融合、共享、分发、应用,从单向输出到双向互动,企业的社交属性充分发挥,数据共享和融合将带来多领域协作、跨界创新的多重效应。新价值的创造,将为企业赋能,使其在不断变幻的市场中保持长盛不衰并保有持续竞争力。

2 系统总体设计

数据同步传输系统总体架构设计如图1,整个系统以分布式大数据技术为基础架构,整体架构分为三部分:数据传输软件、数据传输管控、基础大数据平台。

数据传输软件层以大数据技术Apache Nifi 作为数据同步传输的核心技术,结合Hadoop、Spark、Flink、Hive、Impala、Kudu 等大数据技术栈,充分发挥大数据分布式处理技术的优势,实现数据获取、数据过滤、数据清洗、数据路由、数据压缩、加密等功能,并支持从不同的数据中心的数据存储系统中实时或离线批量的方式进行数据同步传输,通过Apache Nifi 解决了数据源多样性、网络安全以及传输速率等问题。

图1:系统总体架构

数据传输管控层是一个基于Web 的管理系统,后台调用Apache Nifi 的REST API,实现数据的传输功能。用户可以在界面上添加数据中心的配置文件,创建用于跨数据中心的数据传输的数据流,并且可以在数据流中配置该数据流的运行频次和数据传输的带宽,简单易用,同时也屏蔽了用户对于Apache Nifi 的学习和使用成本,用户可以按需点选所需要传输的数据。数据传输管控系统分为几个核心模块:系统监控、数据流管理、模板管理、站点管理等。通过数据传输管控系统解决了管理和维护的问题。用户通过界面可视化的操作,即可实现异地的、跨数据中心的数据传输的需求。

基础大数据平台主要是基于Hadoop 大数据相关技术承载数据的存储、计算和分析等功能,作为一个统一的数据存储和计算平台,通过数据传输软件实时或离线批量同步过来的数据会统一汇聚在基础大数据平台,以便进一步的对数据进行加工处理。

基于以上整体架构,数据同步传输系统的数据同步传输示意图如图2 所示。

数据传输管控平台与数据传输软件系统部署在某集团化公司本部,数据中心管理员或业务人员通过登陆数据传输管控平台配置数据同步传输的操作指令,配置完成后数据传输软件系统接受到对应的操作指令后会将指令通过传输软件的代理Agent 同步到对应的异地数据中心,异地数据数据中心解析指令后,将需要同步的数据通过Agent 与数据传输软件系统进行数据同步传输,实现异地数据中心的数据同步传输,网络层通过内部的专线,以便满足数据传输的带宽,以及数据安全及传输监控的需求。

3 关键技术

数据传输系统是采用了分布式大数据技术为核心技术的平台,支撑海量实时数据、关系数据以及其他数据的安全传输通道,将各厂站数据中心数据同步传输到公司本部数据中心的基础大数据平台。并将数据重要程度划分优先级,经过压缩、加密的安全传输方式,传送到公司本部数据中心进行汇聚、下发等,由本部数据中心的大数据平台进行统一的资源管理和调度。为确保数据传输系统能够满足各类业务数据的采集、传输、汇总、下发的功能、性能、安全性要求,数据传输系统的实现需支持:数据压缩、数据加密、数据校验、断点续传、异步传输、安全认证。

近些年以来,数据流传输与处理一直是数据同步架构中的痛点之一[8]。而现在有越来越多事物的兴起让企业开始重视数据流传输及处理,包括:面向服务的体系结构(SOA)[9],API[10],物联网IOT[11]和大数据[12-13]。此外,合规性,隐私性和安全性所需的严格程度也在不断提高。对于这些新技术或概念,数据流同步传输的需求大致相同,主要区别在于复杂性,适应业务变化的速度,以及大规模边缘用例。数据传输系统旨在帮助解决这些现代数据流同步传输的挑战。

3.1 数据同步传输技术

文中在系统总体设计章节有介绍,数据传输系统主要基于分布式大数据技术实现,其中Apache NiFi 作为传输软件的核心,Apache Nifi 通过有效地使用专用的预写日志和内容存储库实现数据传输的可靠性。它们一起被设计成能够支持非常高的事务率、有效的负载扩展、写时复制和发挥传统磁盘读写的优势。

数据传输软件支持缓冲所有排队的数据,以及在这些队列达到指定的限制时提供反压力的能力,或者在数据达到指定的生命周期时提供反压力。并支持在队列中检索数据设置一个或多个优先级方案。

在异地数据中心的数据同步传输的技术实现上,数据是核心,因此不能容忍数据损失的。有些场景必须在几秒钟内被处理和交付才有价值。数据传输系统采用的Apache Nifi 支持这些细粒度数据传输的特定配置。并且能够可视化的方式对这些数据同步传输流进行配置,并将传输指令进行语义转换来进行描述,可以极大地降低复杂性并识别需要简化的处理流程。数据传输系统不仅能够可视化地建立数据流,而且能够实时地建立数据流。如果对数据流进行更改,则更改将立即生效。更改是细粒度的,并且与受影响的组件隔离,不需要停止整个数据同步传输流来进行某些特定的修改。

数据同步传输流往往是高度面向模式的,虽然解决问题通常有许多不同的方法,但能够共享这些设计好的通用的模式将大有帮助。为此数据传输系统提供的模板允许主题专家构建和发布他们的数据同步传输流的设计,并让其他人从中受益和协作。数据传输系统采用的Apache Nifi 能够自动记录、索引和提供可用的源系统数据,因为数据在系统中传输流动、转换。这些信息对于支持合规性、故障排除、优化等场景非常重要。

数据传输系统的数据存储库被设计成历史的滚动缓冲区。只有在数据存储库过期或需要空间时才会删除数据。这与数据来源功能相结合,为在对象生命周期的特定点查找数据、下载数据和重放操作提供了非常有用的基础。

另外是数据安全,数据同步传输流中的数据传输通过使用加密的协议(如双向SSL)提供安全的交换。此外,数据传输系统允许对数据进行加密和解密,并使用发送方/接收方等式两边的共享密钥。也支持双向SSL 身份验证,并提供可插拔的授权,以便在特定级别(只读、管理员)上正确控制用户的访问权限。如果用户将敏感属性(如密码)在网络中传输,则会立即对服务器端进行加密,即使以加密的形式也不会在客户端再次公开。给定数据的权限级别应用于每个组件,允许管理用户具有细粒度级别的访问控制。这意味着数据传输系统能够处理一个或多个组织的需求。与隔离的拓扑相比,多租户授权支持自服务的数据同步传输流管理模型,允许每个团队或组织在完全了解数据同步传输流的情况下进行管理。

数据传输系统的核心是为扩展而构建的,因此一个数据同步传输流程可以在其上以可预测和可重复的方式执行和交互。支持的扩展点包括:处理器、控制器服务、任务报告、优先级排序器和自定义用户界面。对于任何基于组件的系统,随着规模的扩张,组件之间的依赖会越来越错综复杂。为了解决这个问题,数据传输系统采用的Apache NiFi 通过提供自定义类装载器模型,来确保每个扩展组件之间的约束关系被限制在非常有限的程度。因此,在创建扩展组件时,就不用再过多关注其是否会与其他组件产生冲突。

3.2 实时数据同步传输

实时数据传输支持按需点选功能,支持界面上选择需要的字段,数据传输系统对数据进行裁剪,传输点选所需的数据。通过从源端Kafka 消费数据,按照点选规则裁剪的数据推送到目标集群的Kafka,实现数据同步。如图3 所示。

图2:数据传输示意图

图3:实时数据同步

数据传输系统可以通过对接Kafka 的方式实现实时数据的传输,并可以通过集群的模式提高实时数据传输的效率及性能。实时数据传输架构中,数据传输系统充当Kafka 集群的生产者和消费者,获取源端数据做为生产者发布到Kafka 集群中,本部数据中心的大数据平台实时计算引擎如Spark Streaming 或Flink 对Kafka 数据进行实时数据处理,处理完的数据即可写入大数据平台HDFS 或HBase 等存储,同时也可以写入Kafka 集群,写回至Kafka 集群的数据会被数据传输系统消费,并将数据传输至其他厂站数据中心的大数据平台的HDFS、HBase 或Kudu 中。在数据传输系统中配置数据传输,可以通过数据传输系统的可视化图形用户界面,通过拖拉拽的方式构建数据传输流程。系统底层采用的Apache NiFi 是高度并发的,其内部封装了相关的复杂性。处理器提供了高级抽象,屏蔽了并行编程固有的复杂性。处理器会同时运行,并且可以跨越一个处理器的多个线程来应对高负载。通过Apache NiFi 方便地保护了数据传输管道免受并发复杂性的影响

3.3 批量数据同步传输

离线数据传输支持对接HDFS、Hive、Impala等大数据技术组件,根据用户所选择的HDFS 数据目录、Hive 库/表/字段、或SQL 语句,将获取到的结构化或非结构化数据同步传输到某集团化公司本部数据中心。数据传输系统能够灵活配置并行度,通过设置并行度提高数据传输吞吐,保障数据传输效率。

离线数据(又称为历史数据)存储在HDFS、Hive 中,并通过Hive/Impala 进行查询,表数据较多,存量数据较大,通常为GB 级别。而每日数据增量较小,MB 级别。可支持一次全量同步、定时调度或者每日增量的方式进行传输。

3.3.1 关系型数据传输

数据传输系统通过内置关系型数据集成插件,支持Oracle、DB2、SqlServer、Mysql 等常用的数据库,通过连接关系型数据库获取数据,并对数据做简单转换及清洗,然后将数据传输至本部数据中心的大数据平台Hive 中。

3.3.2 半/非结构化数据传输

数据传输系统通过SFTP 连接器,或HDFS 连接器将半结构化或非结构化数据传输同步公司本部数据中心的大数据平台HDFS中,传输过程中可以根据需求对数据进行简单清洗、转换等。并支持并行模式,获取源端数据并行同步传输。

3.4 数据传输流量控制

异地数据中心的数据传输,会涉及到数据中心之间的数据链路带宽不够的问题,为了不影响异地数据中心之间的正常网络通信,需要控制数据同步传输的流量。

通过在数据传输系统中使用Apache Nifi 的ControlRate 处理器,在应用层面控制数据传输的速率,无需涉及网络层面的调整。ControlRate 处理器包含两种数据传输速率控制方式:

(1)单位时间内传输的数据量大小。可配置的时间范围有秒、分、小时、天等;可配置的传输速率有B、KB、MB、GB、TB。

(2)单位时间内传输的数据条数。可配置的时间范围有秒、分、小时、天等;输入整数可配置在该单位时间最大传输的数据条数。

3.5 数据传输管控

3.5.1 数据压缩

数据传输系统在保证数据完整性的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。数据压缩方式支持:NONE、DEFAULT、BZIP、GZIP、LZ4、LZO、SNAPPY、AUTOMATIC 等。

3.5.2 数据加密

数据传输系统支持的数据加密算法包括对称加密和非对称加密,满足跨Internet 数据传输必须进行数据加密处理的需求,以及数据加密机制必须符合国家信息安全等保三级防护要求。系统支持的对称加密采用了包括DES、3DES 等算法。非对称加密至少包括RSA、Elgamal、ECC(椭圆曲线加密算法)等。加密秘钥由管理人员进行线下生成并分发,提供密码定期更新机制。秘钥及加密算法需采用加密形式保存,并不以明文分发。数据加密的效率不影响数据传输效率,加密速度高于数据生成速度。

3.5.3 数据校验

系统支持数据传输校验,通过数据签名等算法验证确保数据的完整性,包括:数据校验及时发现数据传输过程发生的插入、修改、删除情况。数据校验采用单向数据摘要算法,通过秘钥生成数据摘要,数据摘要算法包括MD5、SHA-1 算法等。校验信息与上传数据一并发送,并形成对应关系。对于数据校验不成功的数据自动提交数据源重新上传并校验,对于反复校验失败的情况提交管理员处理。数据校验算法的性能不影响数据传输效率,校验速度高于数据生成速度。

3.5.4 断点续传

系统支持传输中断后自动断点续传,以保证数据传输过程中保持较高的传输效率,包括:数据传输过程中,传输平台记录当前已经上传的位置标记,当传输过程中出现异常情况造成传输中断时,系统可通过断点位置接续传输。将源文件按长度合理为分为N 块文件,然后开辟N 个线程,每个线程传输一块,传输完成后合并所有线程文件。断点续传功能提供N 个断点并发的能力,最大限度提升传输效率。系统断点续传支持ftp、http、https 等协议,支持WebService 断点续传。

3.5.5 传输任务调度

数据传输系统提供统一的数据同步传输任务创建、任务分发、任务调度管理功能,以实现数据传输任务任意调度的能力。用户可以创建简单、复杂的数据流,将厂站数据全量、增量或者实时同步传输到本部大数据平台。平台支持任务的调度方式包括:单次的同步传输任务、周期性的同步传输任务、定时同步传输任务、实时同步传输任务。任务调度提交后,对当前正在执行的任务,系统提供对任务的暂停、恢复、停止功能。对已经执行完成的历史任务,系统提供再次执行、删除历史任务记录功能。通过系统提供的调度功能可以满足用户任意调度同步传输数据的需求。

4 实际应用

数据传输系统已经在某集团化公司本部和所属火电试点企业、所属新能源试点企业上线运行,在公司本部部署基础大数据平台、数据传输管控平台和数据传输软件系统,在所属火电试点企业、所属新能源试点企业分别部署一套数据传输软件Agent 节点用于对接厂站数据中心。系统部署上线后,对接所属火电试点企业和所属新能源试点企业两个电厂数据中心的业务及数据如下:

4.1 所属火电试点企业数据同步

所属火电试点企业需要对接的数据源包括实时数据和非实时数据,包含实时数据的有DCS、NCS 系统等生成类数据;关系型数据有OA、EAM 资产管理系统和燃料管理系统等;其他包含半非实时、半结构化数据的有智能跑冒滴漏系统、数字化煤场、智能巡检机器人系统、燃料全过程管控系统(无人值守)、OA、EAM 资产管理系统、燃料管理系统和人员定位系统。

实时数据存储在两类组件Kafka 和关系型数据库里。消息队列Kafka 的数据通过实时消费的方式同步到本部基础大数据平台,由于Kakfa 一天存入的数据量有8.64 亿条,全量同步对带宽的要求太高,所以本部可以通过点选调度的方式同步所需要的数据。关系型数据库通过增量同步的方式,采用实时读取数据库写入日志的方式来实时同步关系型数据库数据。关系型数据库每单位每天需要实时同步的数据一天大概10MB 左右。非实时数据通过在数据传输系统配置每天定时跑批的方式进行同步,一般在晚上系统负载低的时候进行。

4.2 所属新能源试点企业数据同步

所属新能源试点企业主要同步风机、电气和光伏的数据。实时数据会推送到Kafka,通过实时消费的方式同步到本部基础大数据平台,Kafka 的存入数据很大,也需要采用点选调度的方式按需同步数据。Kafka 的数据会在下属单位数据中心被消费存储到KUDU中,按天进行分区,历史数据同步通过选择时间段进行批量同步。

项目上线后稳定运行,完成所属试点企业两个分布在不同地区的数据中心与北京总部的数据同步传输,实现下属单位数据中心与公司本部数据中心互联互通,为后续其他单位数据中心接入打下了坚实的基础,为实现公司实现智慧企业建设奠定了坚实的数据基础。

5 结语

本文介绍的异地数据中心的数据同步调度系统基于分布式大数据相关技术来设计与实现,旨在解决异地数据中心的数据同步传输问题,针对数据量大、按需点选、任意调度、数据安全、传输速率与带宽控制、数据传输监控等技术上的问题提供了实现方案,并结合在线可视化操作方式,简化数据同步调度操作的复杂度,可以非常直观的同步调度消费所需数据,从而提高了数据的利用率,提升了业务效率。

目前数据同步与调度系统已在某某集团化公司本部及所属试点企业投入试运行,在两个不同区域的下属单位陆续接入了大量的风机设备数据、运营数据等,满足了数据共享的需求,后续会陆续接入更多单位的数据,实现公司本部与下属各单位数据的共享,满足更多的业务需求。

异地数据中心的数据同步与调度系统目前主要针对海量数据的实时及批量数据同步与调度的技术方案,但在数据传输管控、数据断点续传、异步传输、数据目录分类等方面依然存在需要进一步提升的地方,后续需要进一步的深入研究。

猜你喜欢

数据中心加密传输
酒泉云计算大数据中心
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
一种基于熵的混沌加密小波变换水印算法
关于无线电力传输的探究
民航绿色云数据中心PUE控制
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
认证加密的研究进展
基于云计算的交通运输数据中心实现与应用
基于ECC加密的电子商务系统