从北京到南京:偶数在能源行业的数据迁移实践

2023-10-25 11:01

本文主要是介绍从北京到南京:偶数在能源行业的数据迁移实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

能源行业的数字化转型

当前,大数据技术在以电力为代表的能源行业不断推进,同时,分布式能源、储能、电网技术不断改进,电力行业的数字化转型充满了机遇和挑战。

一方面,电力行业本身自动化程度高、信息化基础好、系统完备,电力企业在数字化转型上,更加关注通过物联网、大数据、人工智能等新技术的应用挖掘数据的价值。另一方面,在信息化建设和数字化转型的过程中,智能传感器生态链尚不完善,海量数据闲置无法发挥价值,错综复杂的系统形成信息孤岛无法有效融合。

因此,为了充分挖掘,实现数据价值,电力企业首先要考虑如何实现数据的高效整合,以及如何形成数据资产。

在这个背景下,偶数科技为国内某大型能源集团进行了数据迁移并成功实现了大数据底座的优化升级。


平台升级改造迫在眉睫

2023年,该能源集团数据中心在经过多年的使用后即将进行升级改造。由于业务调整,数据中心的地理位置也随之变更,需要将原北京数据中心迁移至南京的新数据中心。同时,当前数据平台系统已经遇到瓶颈,无法有效满足业务需求,亟需对管理架构进行升级改造。


平台技术瓶颈定位

1. 平台拓展能力受限,当前集群规模已达到上限,形成性能瓶颈,如果拓展节点就需要增加新的集群,不仅系统变得复杂,管理维护也变得异常困难。2. 平台数据更新能力受制约,需要原生支持 HDFS 存储上的 Update/Delete 操作。3. 原平台达到性能瓶颈,需要新平台能大幅改善数据库系统插入和查询的性能。


核心组件选型

在对现有分析型国产数据库进行横向调研和测评后,该能源集团对 OushuDB 新产品特性产生了极大的兴趣和期待。一方面是 OushuDB 产品本身对 HDFS 操作的灵活支持,另一方面客户非常认可偶数自研存储的性能及其可插拔存储架构。经过多轮的沟通和测试,确定了以 OushuDB 为核心的数据平台解决方案,并正式进入了数据迁移改造阶段。


整体迁移方案

由于北京数据中心原来的服务器机型老旧,不兼容南京数据中心即将搭建的新集群,因此本次迁移通过搭建临时集群的方式,在北京数据中心将原有数据文件同步至临时集群,再将临时集群搬迁至南京数据中心,临时集群和南京集群组建新的OushuDB 集群,导入备份数据。最后补录迁移期间数据,完成整体迁移。

平台迁移时间线

迁移实施过程

本次大数据平台搬迁实施总体目标是完成大数据平台由北京机房搬迁至南京机房,本次迁移分为两个主要步骤,第一是北京机房的数据备份,迁移至南京机房,第二是新集群的部署和系统及数据验证,再进行业务切换。

北京机房搭建临时集群

为了保证搬迁效率和控制成本,在搭建临时大数据集群时采用规模最小原则,根据数据实际情况,本次项目使用了5台服务器以支撑数据迁移。

在临时集群搭建完毕后,通过数据快照的方式,将北京机房通过万兆局域网进行跨集群数据迁移,数据由原大数据平台迁移至新集群环境。

临时集群搬迁

待北京机房新大数据新集群数据迁移完成后,将新集群下电搬迁至南京机房。将5个节点新集群下架,通过物流运输的方式,将5个节点组成的临时集群搬迁至南京机房。

南京机房集群部署及运行

同步进行部署在虚拟化集群的大数据平台应用功能迁移,新集群重新加电启动,进行系统和数据验证后,依托广域网络完成增量数据迁移,完成系统功能和数据验证。

1. 在南京机房上架新服务器

将10台服务器进行上架。设备网络互联、设备电源连接、打印标签。服务器安装操作系统,网络设备配置、调试;

2. 大数据平台虚拟化应用部署

在南京机房虚拟化集群部署大数据平台的各应用及服务;

3. 新大数据集群搬迁及扩容

待5节点集群迁移至南京机房,进行设备网络互联、设备电源连接、打印标签、启动设备,对集群平台进行功能验证,并将南京机房现有的服务器10台纳入新大数据集群,形成15节点集群;

4. 增量数据同步,新、旧集群并列运行

通过大数据平台数据补招和离线文件导入功能,将大数据搬迁期间增量运行数据迁移至新集群,并进行新集群业务功能验证;核实数据无问题后,将剩余相关业务整体切换至南京机房大数据集群。


平台能力提升
布局实时分析和人工智能

通过本次数据迁移,该客户不仅实现了从北京机房到南京机房无损、平稳的数据搬迁,同时还通过这次契机实现了大数据平台的升级,并在以下几个方面得到了显著提升。

1. 平台性能大幅提升,更换采用新一代向量化执行引擎,让硬件资源得以充分释放,减少了业务分析的延迟。2. 平台可靠性得到有力保障,通过多活主节点保证更高的系统可用性,规避单主节点的故障风险。3. 平台动态水平扩展,通过存算分离、可拓展技术架构解决了集群规模受限的长期困扰。4. 共享一份数据,解决数据孤岛,减少冗余。通过开放的存储格式让所有数据形成统一的一份数据,减少了不同集群之间底层数据存储不兼容的问题。

除了以上平台能力建设的大幅提升,该客户基于平台开放格式的统一数据存储,还可以选用和优化不同大数据组件(如处理结构化数据、非结构化数据和流式数据的不同计算引擎),可落地的多引擎融合能力,让该客户在能源领域提早布局实时分析和人工智能,抓住数字化转型先机。

这篇关于从北京到南京:偶数在能源行业的数据迁移实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/282125

相关文章

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行