【发布时间】:2017-06-16 02:35:01
【问题描述】:
我有一个项目,我必须在 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。如果这是执行此过程的正确方法,或者是否有任何其他最佳方法来执行此操作,请告诉我?
【问题讨论】:
标签: hadoop hive teradata sqoop