Sqoop teradata table 具有相同的列标题
Sqoop teradata table whith same columns title
我使用 Sqoop 将数据从 teradate 导入到 Hadoop 集群时出错。
我的 tera table 有 2 个等效的列标题(不是列名称)。在我的 sqoop 作业中是否有一种自动使用 col name 而不是 col title 的方法?
我试过使用 "Select * from table" 作为查询但不起作用。
而且我无法更改 teradata 中的列标题。
这是我的工作代码:
sqoop job -Dmapred.job.queue.name=shortduration \
--create inc_My_Table \
-- import \
--connect jdbc:teradata://RCT/DATABASE=DWHBIG \
--driver com.teradata.jdbc.TeraDriver \
--username MBIGDATA -P \
--query "select a.* from My_Table a where $CONDITIONS" \
--target-dir /data/source/fb/$i \
--check-column DAT_MAJ_DWH \
--incremental append \
--last-value 2001-01-01 \
--split-by ID
有什么想法吗?谢谢
我终于找到了解决办法。我使用 AS
SQL 命令为导致问题的列设置了别名!
自 Teradata JDBC Driver 16.00.00.28 起,您可以使用连接 URL 参数 COLUMN_NAME 将 getColumnName 和 getColumnLabel 的行为控制为 return 列名称、列标题或 As-clause 名称,这应该可以解决您的问题。
- COLUMN_NAME=OFF(默认值)指定
ResultSetMetaData.getColumnName 方法应该 return AS-clause
名称(如果可用)或列名(如果可用)或列
标题,并指定 ResultSetMetaData.getColumnLabel 方法
应该 return 列标题。
- COLUMN_NAME=ON 指定当StatementInfo包裹支持是
可用,ResultSetMetaData.getColumnName 方法应该 return
列名(如果可用),并指定
ResultSetMetaData.getColumnLabel 方法应该 return AS-clause
名称(如果可用)或列名(如果可用)或列
标题。当 StatementInfo parcel 支持是
不可用。
我使用 Sqoop 将数据从 teradate 导入到 Hadoop 集群时出错。
我的 tera table 有 2 个等效的列标题(不是列名称)。在我的 sqoop 作业中是否有一种自动使用 col name 而不是 col title 的方法?
我试过使用 "Select * from table" 作为查询但不起作用。
而且我无法更改 teradata 中的列标题。
这是我的工作代码:
sqoop job -Dmapred.job.queue.name=shortduration \
--create inc_My_Table \
-- import \
--connect jdbc:teradata://RCT/DATABASE=DWHBIG \
--driver com.teradata.jdbc.TeraDriver \
--username MBIGDATA -P \
--query "select a.* from My_Table a where $CONDITIONS" \
--target-dir /data/source/fb/$i \
--check-column DAT_MAJ_DWH \
--incremental append \
--last-value 2001-01-01 \
--split-by ID
有什么想法吗?谢谢
我终于找到了解决办法。我使用 AS
SQL 命令为导致问题的列设置了别名!
自 Teradata JDBC Driver 16.00.00.28 起,您可以使用连接 URL 参数 COLUMN_NAME 将 getColumnName 和 getColumnLabel 的行为控制为 return 列名称、列标题或 As-clause 名称,这应该可以解决您的问题。
- COLUMN_NAME=OFF(默认值)指定 ResultSetMetaData.getColumnName 方法应该 return AS-clause 名称(如果可用)或列名(如果可用)或列 标题,并指定 ResultSetMetaData.getColumnLabel 方法 应该 return 列标题。
- COLUMN_NAME=ON 指定当StatementInfo包裹支持是 可用,ResultSetMetaData.getColumnName 方法应该 return 列名(如果可用),并指定 ResultSetMetaData.getColumnLabel 方法应该 return AS-clause 名称(如果可用)或列名(如果可用)或列 标题。当 StatementInfo parcel 支持是 不可用。