sql-server - Sqoop 自由格式查询按别名分割

标签 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 使用这个别名选择字段呢?

最佳答案

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

相关文章:

java - 无法在Eclipse中使用Java访问hbase

hadoop - 将参数传递给 sqoop 作业

mysql - 是否可以使用sqoop或flume将数据从web服务器导入到MYSQL?

sql-server - Node.js MSSQL tedius ConnectionError : Failed to connect to localhost:1433 - connect ECONNREFUSED

sql-server - SQL Server : Date-time millisec AM/PM casting

sql-server - 如何连接长 nvarchar(max) 行以构建动态 T-SQL

c# - 如何在 Guid/UNIQUEIDENTIFIER (SQL Server) 中解释 #

hadoop - HBase LZO表扫描导致RegionServer关闭

Sqoop 将整数作为字符串导入

connection-pooling - HBase HTablePool : correct usage