我想将数据从 MsSQL 导入到运行自由格式查询的 HBase,该查询在我想要分割的键上有一个别名。例如我的查询是:
SELECT convert(varchar,Table1.Field1) + '_' + Table2.field1 AS 'xyz'
FROM Table1
INNER JOIN Table2
ON Table1.field3 = Table2.field4
WHERE $CONDITIONS
我想通过这个别名字段拆分工作单元。因此,在我的 sqoop 查询中,我有 --split-by 'xyz'
选项。但是,这行不通。我得到:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException:
Ambiguous column name 'xyz'.
那么,如何让 sqoop 使用这个别名选择字段呢?
最佳答案
这是 SQL-Server 的限制。它不允许在别名列上使用 GROUP BY。
通过以下方式重写查询有帮助:
SELECT xyz FROM
(
SELECT convert(varchar,Table1.Field1) + '_' + Table2.field1 AS 'xyz'
FROM Table1
INNER JOIN Table2
ON Table1.field3 = Table2.field4
) as sub
WHERE $CONDITIONS
关于sql-server - Sqoop 自由格式查询按别名分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13248669/