GreenPlum SQL 语句迁移到 HiveSQL
Posted
技术标签:
【中文标题】GreenPlum SQL 语句迁移到 HiveSQL【英文标题】:GreenPlum SQL statement migration into HiveSQL 【发布时间】:2021-09-22 07:53:22 【问题描述】:我们正在将 Greenplum 迁移到 HiveSQL,请帮助我,因为下面的语句需要转换。请帮助我们。
GREENPLUM - ||trim(to_char(sum(revenue),'9,999,999,999'))
hive 将不支持to_char
,因此我们必须在 hive 中放入相等的属性。
【问题讨论】:
【参考方案1】:您可以使用cast(col as STRING)
转换为char 并使用format_number(146452664,0)
在hive 中显示为逗号分隔值。
这里你的 sql 应该是这样的 -
SUBSTR(cast( format_number(sum(revenue)),0) as string),1,13)
我最后使用了一个子字符串来只得到 10 个整数。
【讨论】:
lpad(hex_to_int(lac),5,'0')|| --如何转换这个,尤其是 hex_to_int 您可以使用conv(string, int_from_base, int_to_base)
。这会将字符串从一个碱基转换为另一个碱基。像conv('hexval',16,10)
将返回整数。您也可以在 google 中看到一些示例。
但是如果我们用 conv 添加 lpad,它会抛出错误。是必需的,否则我们只能使用 conv 。请帮帮我
('41405'||lpad(Conv(lac,5,0))||lpad(Conv(ci,5,0)) --这个我试过了,但没用
SUBSTR(cast( format_number(sum(revenue)),0) as string),1,13) --此函数不起作用并抛出 EOF 错误以上是关于GreenPlum SQL 语句迁移到 HiveSQL的主要内容,如果未能解决你的问题,请参考以下文章
计算从 Greenplum 到 hive 迁移的整数计算能力
在从 Postgres 9.4 到 Greenplum 的数据迁移过程中,我应该如何处理我的 UNIQUE 约束