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

本文详细比较了Teradata和Greenplum在SQL操作上的差异,包括函数调用、Delete、Update、Insert等,以及数据加载工具的性能优化建议。特别指出部分Teradata特有函数在Greenplum中的替代和转换方法。
摘要由CSDN通过智能技术生成

调用函数区别

 在查询中调用函数,绝大多数的Teradata支持的标准化函数Greenplum都支持。对于部分Teradata特有的函数,Greenplum虽然没有相同的函数名,但是有相应的函数或者解决方式,请参考后面04 函数转换的内容进行相应转换。

 注意:该转换需要手动搜索脚本进行转换。

 6. Delete

 (1)在不关联其他表,本地根据条件删除记录时,Teradata与Greenplum的语法相同,无须转换;需要关联其他表删除符合条件的记录时,Teradata与Greenplum如果使用子查询的方式,则语法相同;如果通过直接连接的方式,则语法不同,需要进行相应的转换。Greenplum从目标表删除符合条件记录语句的语法如下:

DELETE FROM [ONLY] table [[AS] alias]

[USING usinglist]

[WHERE condition]

其中:

table:需要删除记录的目标表名。

alias:需要删除记录的目标表名的别名。

usinglist:关联其他表筛选出所要删除记录的子集。

condition:筛选出所要删除记录的条件。

 转换规则为:子查询的关联方式无须转换,通过表连接的方式,Greenplum需要通过USING关键字来申明连接表表名。转换示例如下:

(2)在Teradata中,删除所有数据可使用DELETE FORM TABLE,该方式在Greenplum中是不推荐。Greenplum采用TRUNCATE的方式来完成对整表的删除,语法如下:

TRUNCATE TABLE schemaname.tablename;

注意:该转换需要手动搜索脚本进行手工转换。

7. Update

Teradata数据库的UPDATE操作与Greenplum基本相同,但是关联表进行更新时,Teradata的FROM子句在前,而SET子句在后;而Greenplum刚好相反,且Teradata需要在FROM子句声明更新表及被关联表,Greenplum只需要声明被关联表,更新表则在UPDATE关键字后面直接申明,如下图所示:

注意:该转换需要手动搜索脚本进行转换。

8. Insert

 Teradata与Greenplum在INSERT操作语法上没有任何区别,其中Teradata的INSERT-SELECT方式在Greenplum中也支持,无须进行转换。

9. 其他转换

10. 数据加载转换

Greenplum有两种加载数据工具,包括外部表或者COPY工具。一般来说,如果加载数据量较小时,Greenplum推荐使用COPY工具;但是如果批量数据或者数据量较大时,推荐使用外部表的模式,因为外部表的模式为通过节点并行加载,而COPY则是通过Master主机非并行加载,外部表的加载速度比COPY快N倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值