2

分割するキーにエイリアスを持つ自由形式のクエリを実行して、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を機能させるにはどうすればよいですか?

4

1 に答える 1

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
于 2012-11-09T15:56:23.553 に答える