Teradata数据库调研及迁移KADB建议(九)

  • Teradata迁移Greenplum可行性分析
  1. 概述

Teradata和Greenplum都属于MPP数据库,熟悉Teradata的用户可以快速掌握Greenplum。同时,两者的语法非常接近、生态系统高度重合,这也极大地降低了迁移的难度和过程。另外一方面,Greenplum相比Teradata更加开放,产品基于PostgreSQL完全开源,不需要专有硬件,大大降低了数据仓库构建的软硬件成本。

从软件架构上看,Teradata同样采用无共享(Shared Nothing)大规模并行处理( MPP)架构。主要包括解析引擎(Parsing Engine,PE)、计算引擎 (Access Module Processor,AMP)、消息通信层 (Bynet)三个模块。其中PE模块相当于Greenplum的 master节点,负责处理用户连接、SQL的解析、分发和最终查询结果的输出;AMP模块 相当于Greenplum 的segment节点,负责具体数据的计算工作;Bynet模块相当于Greenplum的interconnect部分,负责整个网络的通信和数据在不同节点的传输。此外,VDisk相当于Greenplum segment节点的本地存储。可见,Teradata在架构上和Greenplum基本一致,主要区别是在其对应的硬件部分,如Bynet是专门的硬件网络设备,VDisk部分对应的底层存储一般是通过共享存储划分逻辑单元号(LUN)的方式实现。

因为Greenplum和Teradata在架构上相似,且都支持ANSI SQL标准,因此两个产品中大量语句的语法都一致或者高度相似,即使有不一样的语法或者概念,也能在另一个产品中找到对应的语法或者概念。例如,对于create table命令,两者的语法基本一样;如果创建表时划分分区,两者都使用partition by。但对于数据分布的控制,Teradata使用primary index, 而Greenplum使用distributed by。对于大多数Teradata特有的概念和语法,迁移到Greenplum时可以忽略,极个别的情形下需要加以改写。

Greenplum和Teradata在工具链和生态系统上也存在着许多相似性。如下表所示,Teradata中常用的库和工具在Greenplum都有对应的使用方式和工具。所有常见的BI工具都同时内置支持Teradata和Greenplum。所以,使用商业智能(BI)工具的用户在迁移后依然可以使用自己熟悉的工具。

类型

Teradata

Greenplum

迁移说明

ODBC/JDBC

支持

支持

_

BI前端展现

工具

支持所有BI前端工具

支持所有BI前端工具

通过ODBC或JDBC标准访问DW,改动量很小或没有;

LOAD工具

fastload/ multiload/ tpump

外部表导入、COPY等工具

采用工具对ETL脚本使用到的部分
批量自动修改

UNLOAD工具

fastexport

外部表导出、COPY等工具

采用工具对ETL脚本使用到的部分
批量自动修改

命令执行

客户端

BTEQ

PSQL

采用工具对ETL脚本使用到的部分
批量自动修改

SQL

DML语法

支持ANSI SQL

支持ANSI SQL

Greenplum和Teradata的语法基本相同。Teradata有少量特殊语法或函数(如事务BT/ET、OLAP的csum,rank、qualify等、函数如char),Greenplum都有相对应的甚至更强大的函数,只是需要修改SQL中的语法。工作量不大

SQL

语法DDL

使用PRIMARY INDEX、PPI等

使用Distribution分布数据,使用partition做表分区

DDL语法基本相同。需要将Teradata的PRIMARY INDEX改成Distribution key,PPI改成表分区

备份与恢复

采用NETVULT+archive工具

CRONTAB调度器+ gpbackup/

gprestore

实现数据库的自动备份

系统监控等管理工具

Teradata MANAGE

Greenplum Command Center

_

  1. 迁移流程

Teradata迁移至Greenplum的总体流程如下图所示,主要分为历史数据迁移、日常加工流程迁移、应用接口迁移及管理工具迁移几个阶段。

1. 历史数据迁移

该阶段包括如下步骤:

在Teradata数据库中,按规定分隔符及字符编码将历史数据导成文本文件,存放于Greenplum数据库网络相通的ETL服务器本地磁盘或所连NAS上,确保Greenplum数据库通过gpfidst协议的外部表能读取数据文件。从Teradata导出DDL脚本,按照Greenplum语法批量修改脚本,确保在Greenplum中能成功创建所有用户表。

2. 日常加工流程迁移

该阶段将ETL查询加工语句按Greenplum的DML语法进行转换,并根据Teradata与Greenplum函数对照表替换相关函数,转换ETL连接数据库方式。重新配置加工作业,历史数据迁移成功后,启动日常ETL作业。

3. 应用接口迁移

在该阶段,由于Greenplum数据库支持ODBC/JDBC,商业智能前端展现等工具可通过ODBC或JDBC标准访问数据仓库,改动网络连接IP等即可。   

4. 管理工具部署

该阶段包括以下步骤:

部署Greenplum备份及恢复工具,定期备份数据及定期进行恢复演练。

部署相关管理工具,如Greenplum Command Center。

在上述各个阶段中,涉及到的主要迁移任务如下表所示。以下为各阶段的主要工作。

迁移任务

任务简述

数据卸载

从Teradata卸载抽取历史数据

DDL导出

从Teradata导出表DDL脚本

DDL脚本转换迁移

按Greenplum语法对Teradata版DDL(包括表,索引,视图)脚本进行转换

数据加载

选择Greenplum数据加载方式,如外部表或者copy工具,准备加载脚本,进而进行数据加载

ETL工具脚本转换迁移

建立Greenplum到ETL服务器的网络连接,对数据加工模块脚本按Greenplum语法进行局部修改,查询语句转换及存储过程转换等

查询语句转换迁移

按Greenplum语法规则及特性修改转换及优化查询语句

存储过程转换迁移

按Greenplum语法规则及特性修改转换及优化Teradata及用户自定义函数,存储过程等

资源负载管理迁移

根据Teradata资源负载管理确定Greenplum用户及资源组或者资源队列

安全及权限管理迁移

迁移用户及组等角色的访问权限及数据库对象权限

BI工具接口迁移

建立Greenplum到BI前端应用连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值