Sqoop自由格式查询按别名拆分

时间:2012-11-06 10:04:28

标签: sql-server hbase sqoop

我想将数据从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工作?

1 个答案:

答案 0 :(得分:2)

这是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