GBASE南大通用-TeraData迁移GBase 8a PoC实践

2023-12-28 11:28

本文主要是介绍GBASE南大通用-TeraData迁移GBase 8a PoC实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据库迁移,考察的是数据库厂商的配套工具、方法论、实施经验,不仅仅要求转换成功率高,转换效率高,也要求转换后可执行,执行结果要准确。近几年,GBase完成了100+用户TeraData等国外数据库替换迁移,积累了多个项目的迁移经验,以转换高、精、准而收到合作伙伴或厂商的好评。

以2022年某金融用户的POC测试为例:转换内容包括DDL、视图、批量Perl脚本,转换的数量在PoC中也是算是偏多的,包括600多个DDL、视图,超过100个Perl脚本。最终转换成功率、转换成功率均考核达标,DDL、视图转换成功率达到99% ,Perl脚本的转换成功率要求达到85%,且即转即用,不能做任何修改,转完即跑,跑则能对。这种转即用的迁移,做过数据库迁移的厂商都知道这意味的什么,那种靠铺众多人力手动迁移的情况不能也不会发生在Teradata到GBase 8a迁移产品上。

数据库系统迁移,包括如下的几部分核心工作,从Teradata到GBase 8a的迁移也遵循此规则,主要步骤按照先后次序为:

  • 从Teradata按照要求导出数据,导出要求数据的列分隔符、包围符、空串与NULL值的区分、字符集等指标要提前规划;

  • 从Teradata数据库对象的导出,包括DDL、视图、函数等;

  • 客制化GBase 8a的迁移工具,最大化覆盖贴合于客户特点的编写语法写作特点,最大化的提升转换成功率,客制化时间可控制在3天到5天内完成。

  • 在GBase侧建立数据库对象;

  • 根据Perl脚本中的SQL语句,使用工具来重建数据分布键值,默认采用原Teradata中的index作为分布键;

  • 导入GBase 8a从Teradata落地后的文本文件,并注意左空格的保留,注意日期的存储格式,注意大小写不敏感等信息;

  • 迁移Perl脚本到GBase 8a;

  • 迁移后处理结果Teradata于GBase 8a结果比对;

  • 迁移到GBase 8a后性能极致性优化;

  • Teradata于GBase 8a的并行运行,确保稳定、数据无误;

  • 正式切换到GBase 8a,完成数据库系统的迁移;

在本次的POC中,由于GBase 8a与Teradata的高度兼容性,涉及到迁移内容不多,如下面两个部分的罗列,这些迁移都通过工具自动完成,迁移成功后,可直接运行。

01 DDL、视图迁移

该部分迁移,主要包括表类型关键字的处理,字段类型的处理,字段约束、字符集的处理、以及Teradata其他DDL特殊数据处理内容,具体为:

表类型:CREATE [MULTI]SET TABLE直接改为CREATE TABLE,CREATE GLOBAL TEMPORARY TABLE改为GBase的物理表,CREATE VOLATILE TABLE 是SESSION级临时表,改为GBase TEMPORARY表;

常见数据类型:99%可以通用,cHAR、VARCHAR、DATETIME、DATE、TIME、TIMESTAMP、DECIMAL、INT等;

字符集:迁移成统一的字符集,可以是GBK、UTF8等GBase支持的字符集,包括GBK、UTF8、UTF8MB4、GB18030等;

大小写不敏感:关键字UPPERCASE、NO CASESPECIFIC直接去除并记录表、字段信息,同时在脚本中对应字段的比较操作进行UPPER或者LOWER操作;

其他表信息:需要去除,包括FALLBACK、JOURNAL、CHECKSUM、MERGERBLOCKRATIO、FREESPACE等信息。

PRIMARY INDEX信息:转化为GBase 8a的分布键;

COMPRESS压缩信息:直接去除,改为表级的默认中度压缩,不带副本可以达到4.4倍压缩;

TITLE注释:改为COMMENT关键字;

02 脚本迁移

主要涉及语法、函数的处理,该去除的去除,该替换的替换,由于GBase 8a也是关系型数据库,支持标准的SQL,所以超过90%的SQL语法可以不用任何修改而直接使用。包括如下内容:

缺少的函数:NVL2、RANK,其中NVL2函数用UDF函数替换,RANK改为RANK OVER,

替换的函数:CHAR、CHARACTER函数对应GBase 8a的Length函数,ZEROIF、IFZERO函数替换GBase的IFNULL、NULLIF,FORMAT的用法在TD中比较广泛,迁移到8a时需要根据具体的不同用法进行对应修改。

排序顺序及NULL空值的位置:

DESC: TD空排在最后面,GBase 8a空排在最前面(迁移时要加NULLS LAST)

ASC: TD空排在最前面,GBase 8a空排在最后面(迁移时要加NULLS FIRST)

日期格式化处理:主要用到GBase的DATE_FORMAT、STR_TO_DATE、DATE函数来处理,均可以通过转换工具自动转换。

别名依赖:目前GBase支持投影列中的别名,但对于WHERE条件、OLAP中的别名还需转换工具进行替换。

总括上述技术迁移点,从Teradata到GBase的迁移,通过工具自动完成迁移后,即可完成差不多超过95%的工作量,再对极少数工具没有覆盖且语法特点毫无规律的内容进行手动修改完成整体迁移。基于丰富的迁移经验及高精度的转换工具,GBase 8a产品可以说在替换Teradata数据库方面已经非常成熟,对于迫切替换Teradata的用户可以随时联系GBase 8a,一流服务在等着你。

关于GBase 8a   

GBase 8a是南大通用自主研发的,面向海量数据查询分析应用领域的一款高性能国产分布式逻辑数据仓库,用于满足各个数据密集型行业日益增大的数据查询、数据统计、数据分析、数据挖掘和数据备份等数据存储、管理和处理需求,可用做数据仓库系统、BI系统和决策支持系统的承载数据库。产品主要应用在金融、电信、政企、能源、安全等拥有海量业务数据的行业得到规模化应用。

这篇关于GBASE南大通用-TeraData迁移GBase 8a PoC实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

SpringBoot整合(ES)ElasticSearch7.8实践

《SpringBoot整合(ES)ElasticSearch7.8实践》本文详细介绍了SpringBoot整合ElasticSearch7.8的教程,涵盖依赖添加、客户端初始化、索引创建与获取、批量插... 目录SpringBoot整合ElasticSearch7.8添加依赖初始化创建SpringBoot项

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口