我有一个项目,我必须在Teradata上运行300行的SQL查询。 Sql查询基本上创建了一个表,并使用来自其他表的一些更新,它会将数据插入到最后创建的表中,有一个select语句基本上会将数据拉到我们需要的列中。
我的问题是如何从Hadoop运行300行?
我尝试使用 sqoop eval ,它看起来像sqoop eval -libjars /var/lib/sqoop/terajdbc4.jar,/var/lib/sqoop/tdgssconfig.jar --driver com.teradata.jdbc.TeraDriver --connect (connection parameters) --query "300line of query"
它将这个错误抛给了我
WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
17/01/30 15:05:53 INFO manager.SqlManager: Using default fetchSize of 1000
17/01/30 15:05:54 WARN tool.EvalSqlTool: SQL exception executing statement: java.sql.SQLException: [Teradata Database] [TeraJDBC 15.10.00.14] [Error 3576] [SQLState 25000] Data definition not valid unless solitary.
.
什么是孤独的?
我的计划是通过sqoop eval运行查询并使用sqoop import我将表导入Hadoop。建议我,如果这是进行此过程的正确方法,或者是否有其他最佳方法可以做到这一点?