【问题标题】:Soop import Mssql IncrementalSoop 导入 Mssql 增量
【发布时间】:2014-07-16 15:47:49
【问题描述】:

当我尝试使用 sqoop 从 mssql 导入时出现错误。我在日期时间字段上使用 lastmodified 选项进行增量导入。 当 sqoop 生成边界 vals 查询(SELECT MIN([CODE_ID]), MAX([CODE_ID]) FROM [tablename] WHERE ( [DATETIME_COLUM] >= '2000-01-01' AND [DATETIME_COLUMN] < '2014-05-27 18:13:47.073'), 我收到一个错误,因为日期时间格式不正确。

错误:
引起:com.microsoft.sqlserver.jdbc.SQLServerException: convert char to datetime 错误。

我可以指定 sqoop 日期时间格式吗?

这是我的命令:

sqoop import --connect 'jdbc:sqlserver://;databasename=XXX;username=XXX;password=XXX' --table 'tablename' --hbase-table Table --column-family OFE --hbase-row-key CODE_ID --增量 lastmodified --check-column DATETIME_COLUMN --last-value '2000-01-01'

【问题讨论】:

    标签: sql-server datetime sqoop


    【解决方案1】:

    我找到了自己的解决方案,所以我分享它。 问题是我的mssql数据库是法语格式的,所以解决sqoop查询导入的问题是在查询中添加之前的日期时间格式。所以正确的命令是:

        sqoop import -connect 'jdbc:sqlserver://;databasename=;username=sa;password=;'  
        -query 'SET DATEFORMAT ymd;select * from table where $CONDITIONS'  
        -incremental lastmodified -check-column DATE –last-value '2000-01-01'
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2012-12-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多