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

相关文章

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

java中Optional的核心用法和最佳实践

《java中Optional的核心用法和最佳实践》Java8中Optional用于处理可能为null的值,减少空指针异常,:本文主要介绍java中Optional核心用法和最佳实践的相关资料,文中... 目录前言1. 创建 Optional 对象1.1 常规创建方式2. 访问 Optional 中的值2.1

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.