Database 使用Sqoop从Sybase导入数据的问题

Database 使用Sqoop从Sybase导入数据的问题,database,jdbc,hadoop,sybase,sqoop,Database,Jdbc,Hadoop,Sybase,Sqoop,我正在尝试使用Sqoop从Sybase导入数据。从日志中,我可以说我已经成功地管理了一次连接。 但是我的工作失败了,因为Sybase给了我一些Sql异常。我主要不是在Sybase上工作所以 由于这个错误,我无法找出太多。我的资料来源中只有一个在Sybase 我使用了以下命令: sqoop import --verbose \ --driver com.sybase.jdbc3.jdbc.SybDriver \ --connect jdbc:sybase:Tds:nyhostx123.sm.com

我正在尝试使用Sqoop从Sybase导入数据。从日志中,我可以说我已经成功地管理了一次连接。 但是我的工作失败了,因为Sybase给了我一些Sql异常。我主要不是在Sybase上工作所以 由于这个错误,我无法找出太多。我的资料来源中只有一个在Sybase

我使用了以下命令:

sqoop import --verbose \
--driver com.sybase.jdbc3.jdbc.SybDriver \
--connect jdbc:sybase:Tds:nyhostx123.sm.com:13290/DATABASE=tempdb \
--table tempdb..mit \
--split-by sipid \
--fields-terminated-by ',' \
--target-dir /home/DEVTEST/sqoop_mit \
--username user01 \
-m 1 \
-P
错误片段:

13/03/14 07:36:19 INFO mapred.JobClient: Running job: job_201301151126_25936
13/03/14 07:36:20 INFO mapred.JobClient:  map 0% reduce 0%
13/03/14 07:36:27 INFO mapred.JobClient: Task Id : attempt_201301151126_25936_m_000000_0, Status : FAILED
java.io.IOException: SQLException in nextKeyValue
        at org.apache.sqoop.mapreduce.db.DBRecordReader.nextKeyValue(DBRecordReader.java:265)
        at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:456)
        at org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)
        at org.apache.sqoop.mapreduce.AutoProgressMapper.run(AutoProgressMapper.java:182)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:647)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:323)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:266)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1278)
        at org.apache.hadoop.mapred.Child.main(Child.java:260)
Caused by: com.sybase.jdbc3.jdbc.SybSQLException: Incorrect syntax near '.'.

        at com.sybase.jdbc3.tds.Tds.a(Unknown Source)
        at
attempt_201301151126_25936_m_000000_0: log4j:WARN No appenders could be found for logger (org.apache.hadoop.hdfs.DFSClient).
attempt_201301151126_25936_m_000000_0: log4j:WARN Please initialize the log4j system properly.
13/03/14 07:36:33 INFO mapred.JobClient: Task Id : attempt_201301151126_25936_m_000000_1, Status : FAILED
java.io.IOException: SQLException in nextKeyValue

我相信问题出在--表参数中。Sqoop需要纯表名,但您似乎传递了额外的值“tempdb..”(我猜它是一个db名?)。你介意只用“-table mit”试试吗?

我也试过这个选项。(-表mit)。但是,Sqoop没有认出那张桌子。我收到错误消息“找不到mit。请指定owner.objectname或使用sp_帮助检查对象是否存在(sp_帮助可能会产生大量输出)。”当您登录数据库并手动发出“sp_帮助mit”时会发生什么在tempdb数据库中?sqoop import--verbose--driver com.sybase.jdbc3.jdbc.SybDriver--connect jdbc:sybase:ddd:ny0xxwxx.rr.com:13290/doy/interfaces--query“select*from tempdb..dd_indic where\$CONDITIONS”--字段以“,'--target dir/TTS/DEVTEST/try_indic--username-muniretail-m1-P我告诉了错误的数据库。其余的都可以。这是针对Sybase ASA/SQLAnywhere还是ASE的?什么版本?