背景: 我们的团队正在将 Cloudera 升级到 6.1.1,我的任务是确定如何处理跨数据类型的隐式数据类型转换丢失。有关相关发行说明的详细信息,请参见下面的链接。
这个问题不仅会影响 UNION ALL 查询,而且还有一个函数可以对不同数据类型的列(即 STRING 到 BIGINT)执行比较。
该小组已决定我们不希望更改基础表元数据。因此解决方案是通过使用 CAST() 函数转换数据来允许潜在的数据丢失。在 UNION ALL 的情况下,我们强制转换为目标表的元数据。但是,在执行比较时,我试图确定执行比较的最简单和最简单的方法,而不会得到错误的结果。
问题:
执行比较时,我可以简单地将所有内容转换为 STRING 或 VARCHAR() 吗?是否存在任何可能导致错误结果的潜在问题?
更新: 如果这种方法有问题,是否有正确的解决方案来处理这个问题?
注意:这是我第一次使用 Hadoop/HIVE,我了解到我在 RDBMS 领域所知道的一切并不总是适用。