从 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

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

springboot依靠security实现digest认证的实践

《springboot依靠security实现digest认证的实践》HTTP摘要认证通过加密参数(如nonce、response)验证身份,避免明文传输,但存在密码存储风险,相比基本认证更安全,却因... 目录概述参数Demopom.XML依赖Digest1Application.JavaMyPasswo

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Java 结构化并发Structured Concurrency实践举例

《Java结构化并发StructuredConcurrency实践举例》Java21结构化并发通过作用域和任务句柄统一管理并发生命周期,解决线程泄漏与任务追踪问题,提升代码安全性和可观测性,其核心... 目录一、结构化并发的核心概念与设计目标二、结构化并发的核心组件(一)作用域(Scopes)(二)任务句柄

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程