从 Greenplum 到 YMatrix,某头部动力电池厂商核心业务数据的迁移实践

本文主要是介绍从 Greenplum 到 YMatrix,某头部动力电池厂商核心业务数据的迁移实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

随着数字化浪潮的不断深入,近年来企业对于数据库的功能诉求不断多元化,同时数据量大幅增长,包括 Greenplum 在内的许多原有的数据库技术应对起来日渐捉襟见肘,一些大型企业替换和升级数据库的需求愈发迫切。

本文将为大家完整介绍,包括前期决策、迁移实施以及最终收益在内的某国内头部动力电池厂商核心业务数据从 Greenplum 向 YMatrix 迁移的详细案例。

01 业务需求

作为头部的动力电池厂商,该企业近年来业务增长迅猛,其生产的动力电池被全球大量的新能源汽车厂商广泛采用,市场占有率高,产量很大,也因此,每天供应链、生产、销售等部门产生海量数据,体量十分庞大,原有 Greenplum 集群应对日渐吃力。

为缓解原数据集群的压力,提高支持决策部门的业务数据报表生成效率,该厂商将核心业务数据从庞大繁杂的数据库集群当中抽离出来,组建了独立的企业大数据平台,用于汇聚企业各个数字化平台所产生的核心数据以支持决策分析。目前,平台接入了企业内部在各地区的数字化报表、研发数据、质量控制、审计信息、工厂信息、人脸识别与人员权限、客户档案管理、运输管理、业务流程管控、售后等核心业务及产研系统,并为各类报表生成提供统一接口,该大数据平台已经成为企业内部经营管理信息获取的最重要的系统之一。

近年来,随着业务的扩张,不断有新业务被迁移到系统当中,数据体量和并发数不断增多,且时刻有大量的核心数据输入,这对数据库的写入和查询性能提出了更高的要求;而原有 Greenplum 集群性能有限,随着数据和业务的增长,原有数据查询时的执行明显变慢,甚至有偶发的报表无法查看的情况,已经严重影响到企业的正常运营。

因此,该企业亟需将原大数据平台升级,将 Greenplum 更换为性能更高的数据库产品,从而提高生成各类数据报表的效率,更好的为决策层提供实时的数据支撑。除此之外,企业希望在更换数据库提高性能表现的同时,尽可能避免过大的系统改动和重构,从而降低数据库迁移所带来的业务影响。因此,另一大需求是沿用原有技术栈和应用,减少下层数据入库和上层应用的逻辑改动,实现业务侧和技术侧的平稳过渡。

02 数据库选型

企业针对市场上的诸多不同数据库产品进行了深入考察, YMatrix 以强大的分析性能,融合的产品能力初步胜出。在进一步的使用真实数据的性能对比测试中,与原有的 Greenplum 集群相比,YMatrix 显现出了明显的性能、功能上的优势;除此之外,企业还进行了 TPC-H、TPC-DS 等专业的基准测试,结果显示 YMatrix 在数仓模型的分析场景中性能表示是 Greenplum 6 的 4 倍以上。

另一方面,YMatrix 源自 Greenplum,几乎兼容所有 Greenplum 的功能和语法,并在 Greenplum 的基础上明显提升了时序数据写入查询、多节点高并发等能力,丰富了数据压缩等功能,并提供中文图形化管理组件,提升了数据库的易用性,不仅可以做到业务侧和技术侧的平滑迁移,还能够在未来进一步降低运维成本。

经过审慎的评估和测试,该电池厂商最终开始着手推进核心业务从 Greenplum 到 YMatrix 的迁移。

03 核心业务数据的迁移过程

1. 环境准备

此次迁移包括全量和部分增量数据,数据量总计 20TB 左右,其中大多数数据是业务的核心数据,承担着为业务决策赋能的关键角色。因此,在迁移之前,针对业务方和迁移环境的充分的了解和准备十分必要,务求将迁移时对上下游的影响降至最低。

  • 首先,将生产环境中的数据进行备份,梳理出详细的 DDL 脚本并实现脚本化,做好应急预案,确保迁移失败时可快速还原,提前应对数据库迁移对业务所带来的风险;
  • 其次,准备好目标集群的软件环境,如安装 YMatrix 数据库,安装 Grafana 等必备监控软件等;
  • 同时,做好和业务的实施前沟通,规范迁移期间的注意事项,避免在迁移实施期间业务侧执行任何 DDL,包括创建对象、修改对象、添加字段、删除字段等操作,严格禁止执行 CREATE、ALTER、TRUNCATE、DROP 动作;
  • 随后,根据既定方案,将库中原有的两张大表改变两张 3 个月周期的分区表并进行核对,再将表中数据全量同步到数据湖集群上进行备份;
  • 最后,停止全部在平台上所运行的非关键业务。

2. 执行迁移

迁移过程中,最新开发的数据迁移工具 MatrixShift 发挥了重要作用。

作为 YMatrix 实现全库数据迁移的工具,MatrixShift 目前支持全量迁移、增量迁移、条件迁移、多样数据分布策略等功能,且能够提供表级的迁移进度输出,并实时检查迁移的正确性,大幅提高了 从 Greenplum 向 YMatrix 迁移的效率、安全性和自动化程度。

在迁移过程中,首先通过图形化管理工具 MatrixUI 初始化 YMatrix 数据库集群,修改数据库参数、内核参数、网卡参数,然后开启资源组配置。随后配置监控,使用 pg_dumpall 来迁移用户信息和 DDL。最后,也是最重要的步骤,执行 MatrixShift 对全量数据执行平行迁移。

在迁移过程中,由于持续有新数据写入,在完成全量数据迁移后,需要对该部分增量数据进行迁移。为确保核心业务安全,迁移需按照业务的优先级逐步完成。因此,在数据迁移结束后 YMatrix 和 Greenplum 会并行运行一段时间,确认数据迁移完毕并进行数据校验,随后在 YMatrix 集群中重新创建索引并全库执行 ANALYZE 命令更新统计信息,无误后最终停止 Greenplum 集群。

3.持续跟踪

在迁移完成后,修改 YMatrix 集群端口,确保与原 Greenplum 的端口一致以保障原有应用无缝切换,接着恢复业务访问并观察业务运行情况。持续跟踪 30 分钟,确认数据库日志和业务侧均无异常,逐步恢复数据写入业务,并持续跟踪数小时,确保数据库的稳定运行,最终完成将该大数据平台的核心数据由 Greenplum 到 YMatrix 的迁移任务。

04 最终收益

该企业的大数据平台在迁移至 YMatrix 集群之后,查询性能较原先提升了数倍;同时,在整体系统的访问量和数据量都比之前增加了一个数量级的情况下,集群依然表现稳定,可以完全满足业务侧需求。

切身体会了 YMatrix 的出色性能表现,对原有技术栈良好的兼容性,以及迁移过程中的平稳高效,该电池厂商也正考虑逐渐将更多的业务迁移到 YMatrix 数据库集群当中,以支持更多的新业务和新需求,进一步提升业务敏捷度。

1. 打造以 YMatrix 为核心的业务集群

在迁移完成后,YMatrix 数据库集群在整个大数据平台的业务架构中处于中心位置,向上可全面承接各类业务需求,向下可支持各类型数据库的存储、汇集、统一管理等操作。而作为超融合数据库,面对来自业务侧多样的数据类型,YMatrix 可以通过融合结构化与非结构化数据类型,一站式支持不同业务场景所需的数据,以一款数据库接入多种类型数据,进一步降低企业的运维成本。

2. 无感扩容

为应对未来大数据平台数据量持续增长的问题,YMatrix 支持在线平滑扩容(扩容期间读写业务不受任何影响),线上用户无感知,企业可以随时进行按需扩容,使该大数据平台架构具备了弹性延展的能力,为企业数据平台的发展留足更多空间。

3. 性能优越

基于自身高性能写入、高性能分析、高并发查询等关键能力,YMatrix 集群利用分布式的优势,在计算时最大化使用系统的资源并行处理查询,发挥了集群的最高性能,使业务查询速度得到了显著提升,进而保持企业的核心竞争力。

05 总结

过去,一些海外商业数据库一直是国内金融、制造等领域的首选;但随着企业业务扩张和数字化转型不断深入,企业对于数据库性能、功能的需求不断提高且愈发多元,一些传统数据库已无法满足企业不断增长的数据需求,对企业发展的掣肘效应非常明显。因此,“升级”和“迁移”这两个关键词,正在越来越多出现在各类企业的 IT 设施发展规划中。

在本次动力电池厂商核心数据迁移的项目中,YMatrix 在迁移与性能提升层面起到了至关重要的作用。接下来,该动力电池厂商将会继续推进原有系统向 YMatrix 迁移的规划,继续拓宽与 YMatrix 的合作场景,打造更加统一、高效的集团级核心数据治理平台,用数据为企业发展提供先机。

本文为 YMatrix 原创内容,未经允许不得转载。

欲了解更多超融合时序数据库相关信息,请访问 “YMatrix 超融合数据库” 官方网站

这篇关于从 Greenplum 到 YMatrix,某头部动力电池厂商核心业务数据的迁移实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

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

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

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

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