Suryani Simon Turtan created SQOOP-3254:
-------------------------------------------
Summary: sqoop export Hive ORC to Oracle CLOB columns are somewhat
case-sensitive
Key: SQOOP-3254
URL: https://issues.apache.org/jira/browse/SQOOP-3254
Project: Sqoop
Issue Type: Bug
Affects Versions: 1.4.6
Environment: HDP 2.4 and HDP 2.6
Reporter: Suryani Simon Turtan
Priority: Critical
I am trying to export a String column from Hive ORC table into Oracle CLOB
column using HCatalog in Sqoop 1.4.6 (both HDP 2.4 and HDP 2.6).
- HDP 2.4: Sqoop 1.4.6.2.4.3.0-227
- HDP 2.6: Sqoop 1.4.6.2.6.3.0-235
Table DDL in Oracle:
CREATE TABLE ORACLE_CLOB_TABLE (ID VARCHAR(10), CLOBCOLUMN CLOB);
Table DDL in Hive:
CREATE TABLE default.hive_clob_table (id string, clobcolumn string) ROW FORMAT
SERDE
'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat';
insert into default.hive_clob_table (id, clobcolumn) values ("A0001", "This is
a very large string text");
insert into default.hive_clob_table (id, clobcolumn) values ("B0002", "This is
the second very large string text");
Sqoop Export Command:
*CASE 1 -- Use Lower Case on Table name and Column list*
- The command is not working on HDP 2.6 at all due to Oracle tables being
defined as CAPITALIZED table and column names.
- The command is working fine on HDP 2.4, with CLOB column exported accordingly
sqoop \
export \
-Dmapreduce.job.queuename=queue \
--connect 'jdbc:oracle:thin:@//host:port/database_name'\
--username 'user_name' \
--password 'user_password' \
--verbose \
--table 'oracle_clob_table' \
--columns 'id, clobcolumn' \
--hcatalog-table 'hive_clob_table' \
--hcatalog-database 'default' \
--map-column-java clobcolumn=String
Output in Oracle:
| A0001 | This is a very large string text |
| B0002 | This is the second very large string text |
*CASE 2 -- Use Upper Case on Table name and Column list*
- The command is working fine on both HDP 2.4 and HDP 2.6. However, CLOB column
exported as NULL.
sqoop \
export \
-Dmapreduce.job.queuename=queue \
--connect 'jdbc:oracle:thin:@//host:port/database_name'\
--username 'user_name' \
--password 'user_password' \
--verbose \
--table 'ORACLE_CLOB_TABLE' \
--columns 'ID, CLOBCOLUMN' \
--hcatalog-table 'hive_clob_table' \
--hcatalog-database 'default' \
--map-column-java CLOBCOLUMN=String
Output in Oracle:
| A0001 | NULL |
| B0002 | NULL |
I am curious why would the CASE of the column used in sqoop command would
affect the CLOB export ability? Thank you.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)