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的主要内容,如果未能解决你的问题,请参考以下文章

mysql迁移mpp数据库Greenplum

计算从 Greenplum 到 hive 迁移的整数计算能力

在从 Postgres 9.4 到 Greenplum 的数据迁移过程中,我应该如何处理我的 UNIQUE 约束

支持greenplum string_agg 转换成hivesql

如何将oracle数据迁移到greenplum数据库

Greenplum迁移指南