Teradata到GBase 8a迁移总结

Teradata到GBase 8a迁移总结

目录

1 DDL语法相关

1.1 字段类型

1.2 建表语句

1.2.1 表类型

1.2.2 表选项

1.2.3 列选项

1.2.4 约束

1.2.5 分布键

1.2.6 导出表(Derived Table)

1.3 复制表结构与数据

2 DML语法相关

2.1 简写

2.2 关联update

3 函数的使用

3.1 同名且用法相同的函数

3.1.1 ORDER BY

3.1.2 CASE WHEN

3.1.3 COALESCE函数

3.1.4 TRIM函数

3.1.5 EXTRACT函数

3.1.6 ADD_MONTHS函数

3.1.7 ROW_NUMBER开窗函数

3.1.8 ABS函数

3.1.9 EXP函数

3.1.10 LN函数

3.1.11 SQRT函数

3.1.12 SUBSTRING函数

3.1.13 SUBSTR函数

3.2 同名用法不同的函数

3.2.1 CAST对各种类型的转换

3.2.2 RANK函数

3.3 不同名函数的等价改法

3.3.1 求幂运算

3.3.2 TD中的LOG函数

3.3.3 TD中ZEROIFNULL函数

3.3.4 TD中NULLIFZERO函数

3.3.5 TD中的DATE和TIME函数

3.3.6 TD中的INDEX函数

3.3.7 TD中FORMAT短语

4 空串处理

4.1 数值、时间类型字段插入空串

4.1.1 int类型插空串

4.1.2 decimal类型插空串

4.1.3 time类型插空串

4.1.4 timestamp 类型插空串

4.1.5 date类型插空串

4.2 字符类型空串、空格的区别

5 不同类型字段的数据交换和关联

5.1 int和date字段的交互和关联

5.2 int/decimal和varchar字段的关联

6 超范围数据的处理

6.1 decimal类型插入超范围数据

6.2 字符类型插入超范围数据

7 SQL语法上的使用差异

7.1 字符型的列等于数值时的强转

7.2 别名依赖

7.3 TD中sql语句以’;'开始的含义

7.4 TD中的WITH RECURSIVE…递归语法

7.5 TD中的QUALIFY语句

8 开窗函数

9 UDF

1 DDL语法相关
本章节主要描述Teradata建表涉及到的相关内容与GBase 8a的差异;Teradata建表语句中包含较多的表选项和列选项,且支持通用的约束,而GBase 8a在这方面要相对简约些。在无文档参考的情况下,一般都是将GBase 8a不支持的全部去掉即可。

1.1 字段类型
Teradata中字段类型与GBase 8a的字段类型对照表如下,供迁移时参考。

数据类型

Teradata

GBase 8a

数值型

DECIMAL(n,m)/DEC(n,m)

DECIMAL(n,m)

NUMERIC(n,m)

NUMERIC(n,m)

BYTEINT范围(-128~127)

TINYINT范围(-127~127)

SMALLINT范围(-32768~32767)

SMALLINT范围(-32767~32767)

INTEGER/INT范围(-2147483648~2147483647)

INTEGER/INT范围(-2147483647~2147483647)

BIGINT范围(-9233372036854775808~9233372036854775807)

BIGINT范围(-9223372036854

775806~9223372036854775806)

REAL

REAL

FLOAT

FLOAT

DOUBLE PRECISION

DOUBLE/DOUBLE PRECISION

字符型

CHAR(n)/CHARACTER(n) 范围(1~64000)

CHAR(n) 范围(1~255)

VARCHAR(n)/CHAR VARYING(n) 范围(1~64000)

VARCHAR(n) 范围(1~10922)

LONG VARCHAR

VARCHAR(10922)/LONGTEXT

GRAPHIC(n) 范围(1~64000)

CHAR(n) 范围(1~255)

VARGRAPHIC(n) 范围(1~64000)

VARCHAR(n) 范围(1~10922)

LONG VARGRAPHIC

VARCHAR(10922)/LONGTEXT

CLOB

VARCHAR(10922)/LONGTEXT

二进制

BYTE(n)

BLOB/LONG BLOB

VARBYTE(n)

BLOB/LONG BLOB

BLOB

BLOB/LONG BLOB

日期时间型

DATE

DATE

TIME

TIME

TIMESTAMP

DATETIME

1.2 建表语句
1.2.1 表类型
Teradata中的表类型与GBase 8a的表类型对照表如下,供迁移时参考。

Teradata

Teradata描述

GBase 8a

GBase 8a描述

CREATE SET TABLE

普通表,不允许重复记录

CREATE TABLE

普通表,允许重复记录

CREATE MULTISET TABLE

普通表,允许重复记录

CREATE TABLE

普通表,允许重复记录

CREATE GLOBAL TEMPORARY TABLE

全局临时表,特点:

①可以被多个用户共享;

②每个用户会话只能看到自己的数据;

③会话(session)结束时,表的数据被丢掉;

④在数据字典中创建并保持表的定义。

CREATE TABLE

普通表,允许重复记录

CREATE VOLATILE TABLE

可变临时表,特点:

①会话级的表,存在于整个会话期间,会话结束表自动删除;

②不使用数据字典;

③一个会话中,最多有64个可变临时表;

④每个可变临时表必须有唯一的名称。

CREATE TEMPORARY TABLE

临时表,特点:

①会话级的表,存在于整个会话期间,会话结束表自动删除;

1.2.2 表选项
Teradata的表选项是GBase 8a所不支持的,迁移时直接去掉即可;对照表如下,供迁移时参考。

Teradata

Teradata描述

GBase 8a

GBase 8a描述

FALLBACK/NO FALLBACK

是否使用FALLBACK保护机制

JOURNAL/NO JOURNAL

有无流水日志

BEFORE JOURNAL /NO BEFORE JOURNAL

有无前项流水日志,数据变化前

AFTER JOURNAL/NO AFTER JOURNAL

有无后项流水日志,数据变化后

CHECKSUM = DEFAULT

CHECKSUM 是用来校验数据是否损坏的。DEFAULT是缺省项,可以再DBS程序中设置。不过,一般情况下DEFAULT为NONE选项,NONE选项不进行CHECKSUM计算,所以对性能没有任何印象

FREESPACE = 10 PERCENT

FREESPACE用来定义在每个磁盘柱面上保留的空间(0-75%)

DATABLOCKSIZE = 16384 BYTES

DATABLOCKSIZE用来指定数据块大小,最小的数据块为6144字节,最大的数据块是32256字节

DEFAULT MERGEBLOCKRATIO

默认合并块比

1.2.3 列选项
Teradata建表时的列选项与GBase 8a的列选项对照表如下,供迁移时参考。

Teradata

Teradata描述

GBase 8a

GBase 8a描述

DEFAULT

当字段无数据时用默认值来替代NULL

DEFAULT

当字段无数据时用默认值来替代NULL

WITH DEFAULT

用字段的系统默认值替换NULL

FORMAT

缺省的显示格式

TITLE

缺省的列标题

COMMENT

缺省的列标题

NOT NULL

不允许空值

NOT NULL

不允许空值

CASESPECIFIC

字母大小写敏感

UPPERCASE

字母大小写不敏感,内部用大写字母存储

COMPRESS

压缩值为NULL的字段存储空间为0

COMPRESS NULL

压缩值为NULL的字段存储空间为0

COMPRESS

压缩值为NULL和指定值的字段存储空间为0

CHARACTER SET LATIN

指定字段存储字符集

1.2.4 约束
Teradata建表时的约束项与GBase 8a的约束项对照表如下,供迁移时参考。

Teradata

Teradata描述

GBase 8a

GBase 8a描述

CONSTRAINT

约束名称

PRIMARY KEY

主键,非空,无重复值

PRIMARY K

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值