[ https://issues.apache.org/jira/browse/SQOOP-3146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sandish Kumar HN reassigned SQOOP-3146: --------------------------------------- Assignee: Sandish Kumar HN > Sqoop (import + --as-parquetfile) with Oracle (CLOB vs. BLOB) is inconsistent > ----------------------------------------------------------------------------- > > Key: SQOOP-3146 > URL: https://issues.apache.org/jira/browse/SQOOP-3146 > Project: Sqoop > Issue Type: Bug > Reporter: Anna Szonyi > Assignee: Sandish Kumar HN > > ######################################################################## > # Owner: Sqoopinators > # Component: Sqoop1 > # Purpose: Escalation Test Case > # SFDC Case ID:127558 > # SFDC EscalationID: CDH-50699 > # File: SupportTest_Case_127558_JIRA_CDH-50699.txt > # > # Description > # 1. Sqoop import + —as-parquetfile + CLOB Data Types (Gives Error) > # 2. Sqoop import + —as-parquetfile + BLOB Data Types (Works Good) > ######################################################################## > ###################################################### > USE CASE [1] . Sqoop import + —as-parquetfile + CLOB Data Types (Gives Error) > ###################################################### > ####################### > # STEP 01 - CREATE DATA > ####################### > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "create table t1_clob (c1 int,c2 clob)" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "insert into t1_clob values(1,'qwqewewqrerew121212121212’)” > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1_clob" > ######### > OUTPUT > ######### > ----------------------------------------------- > | C1 | C2 | > ----------------------------------------------- > | 1 | qwqewewqrerew121212121212 | > ----------------------------------------------- > ######################################################## > STEP 02 - IMPORT AS PARQUET FILE (Without —map-column-java) [REPRODUCING > THE ERROR] > ######################################################## > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD > --as-parquetfile --table T1_CLOB --delete-target-dir --target-dir > '/projects/t1_clob' -m 1 > OUTPUT > —————— > Please set $ACCUMULO_HOME to the root of your Accumulo installation. > 17/02/21 10:07:08 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.8.3 > 17/02/21 10:07:08 WARN tool.BaseSqoopTool: Setting your password on the > command-line is insecure. Consider using -P instead. > 17/02/21 10:07:08 INFO oracle.OraOopManagerFactory: Data Connector for Oracle > and Hadoop is disabled. > 17/02/21 10:07:08 INFO manager.SqlManager: Using default fetchSize of 1000 > 17/02/21 10:07:08 INFO tool.CodeGenTool: Beginning code generation > 17/02/21 10:07:08 INFO tool.CodeGenTool: Will generate java class as > codegen_T1_CLOB > 17/02/21 10:07:09 INFO manager.OracleManager: Time zone has been set to GMT > 17/02/21 10:07:09 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM "T1_CLOB" t WHERE 1=0 > 17/02/21 10:07:09 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is > /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce > Note: > /tmp/sqoop-root/compile/cbaf5013e6bc9dad7283090f9d761289/codegen_T1_CLOB.java > uses or overrides a deprecated API. > Note: Recompile with -Xlint:deprecation for details. > 17/02/21 10:07:11 INFO orm.CompilationManager: Writing jar file: > /tmp/sqoop-root/compile/cbaf5013e6bc9dad7283090f9d761289/codegen_T1_CLOB.jar > 17/02/21 10:07:13 INFO tool.ImportTool: Destination directory > /projects/t1_clob is not present, hence not deleting. > 17/02/21 10:07:13 INFO manager.OracleManager: Time zone has been set to GMT > 17/02/21 10:07:13 INFO manager.OracleManager: Time zone has been set to GMT > 17/02/21 10:07:13 INFO mapreduce.ImportJobBase: Beginning import of T1_CLOB > 17/02/21 10:07:13 INFO Configuration.deprecation: mapred.jar is deprecated. > Instead, use mapreduce.job.jar > 17/02/21 10:07:13 INFO manager.OracleManager: Time zone has been set to GMT > 17/02/21 10:07:13 INFO manager.OracleManager: Time zone has been set to GMT > 17/02/21 10:07:13 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM "T1_CLOB" t WHERE 1=0 > 17/02/21 10:07:13 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM "T1_CLOB" t WHERE 1=0 > 17/02/21 10:07:13 ERROR tool.ImportTool: Imported Failed: Cannot convert SQL > type 2005 > ##################################################################### > STEP 02.1 - IMPORT AS PARQUET FILE + —map-column-java (For CLOB data type) > ##################################################################### > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD > --as-parquet file --table T1_CLOB --map-column-java C2=String > --delete-target-dir --target-dir '/projects/t1_clob' -m 1 > OUTPUT > ——————— > 17/02/21 10:09:50 INFO tool.ImportTool: Destination directory > /projects/t1_clob is not present, hence not deleting. > 17/02/21 10:09:50 INFO mapreduce.ImportJobBase: Beginning import of T1_CLOB > 17/02/21 10:10:09 INFO mapreduce.Job: map 0% reduce 0% > 17/02/21 10:10:34 INFO mapreduce.Job: map 100% reduce 0% > 17/02/21 10:10:35 INFO mapreduce.Job: Job job_1487339765830_0009 completed > successfully > 17/02/21 10:10:35 INFO mapreduce.ImportJobBase: Transferred 1.7402 KB in > 43.4127 seconds (41.0479 bytes/sec) > 17/02/21 10:10:35 INFO mapreduce.ImportJobBase: Retrieved 1 records. > [root@host-10-17-81-247 ~]# hadoop fs -ls /projects/t1_clob > Found 3 items > drwxr-xr-x - root supergroup 0 2017-02-21 10:09 > /projects/t1_clob/.metadata > drwxr-xr-x - root supergroup 0 2017-02-21 10:10 > /projects/t1_clob/.signals > -rw-r--r-- 3 root supergroup 698 2017-02-21 10:10 > /projects/t1_clob/20aeeff1-68e1-4c9c-9a74-51a5f2ccb369.parquet > ################################################################### > USE CASE [2] . Sqoop import + —as-parquetfile BLOB Data Types (Works Good) > ################################################################### > ####################### > # STEP 01 - CREATE DATA > ####################### > export > MYCONN=jdbc:oracle:thin:@host-10-17-101-252.coe.cloudera.com:1521/orcl12c; > export MYUSER=sqoop > export MYPSWD=welcome1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "create table t1_blob_parq_new (c1 int,c2 blob)" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "insert into t1_blob_parq_new values(1,utl_raw.cast_to_raw('testblobtype'))" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select C1,utl_raw.cast_to_varchar2(C2) as C2 from t1_blob_parq_new" > ######### > OUTPUT > ######### > ----------------------------------------------- > | C1 | C2 | > ----------------------------------------------- > | 1 | testblobtype | > ----------------------------------------------- > [root@host-10-17-81-247 ~]# > ######################################################## > STEP 02 - IMPORT AS PARQUET FILE > ######################################################## > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD --table > T1_BLOB_PARQ_NEW --as-parquetfile --target-dir '/projects/t1_bob_parq_new' -m > 1 > ######### > OUTPUT > ######### > 17/02/22 08:03:51 INFO mapreduce.ImportJobBase: Beginning import of > T1_BLOB_PARQ_NEW > 17/02/22 08:03:52 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM "T1_BLOB_PARQ_NEW" t WHERE 1=0 > 17/02/22 08:03:52 INFO manager.SqlManager: Executing SQL statement: SELECT > t.* FROM "T1_BLOB_PARQ_NEW" t WHERE 1=0 > 17/02/22 08:04:00 INFO mapreduce.Job: Running job: job_1487339765830_0010 > 17/02/22 08:04:13 INFO mapreduce.Job: Job job_1487339765830_0010 running in > uber mode : false > 17/02/22 08:04:13 INFO mapreduce.Job: map 0% reduce 0% > 17/02/22 08:04:32 INFO mapreduce.Job: map 100% reduce 0% > 17/02/22 08:04:32 INFO mapreduce.Job: Job job_1487339765830_0010 completed > successfully > 17/02/22 08:04:32 INFO mapreduce.ImportJobBase: Transferred 1.7598 KB in > 38.6604 seconds (46.611 bytes/sec) > 17/02/22 08:04:32 INFO mapreduce.ImportJobBase: Retrieved 1 records. > [root@host-10-17-81-247 ~]# hadoop fs -ls /projects/t1_bob_parq_new > Found 3 items > drwxr-xr-x - root supergroup 0 2017-02-22 08:03 > /projects/t1_bob_parq_new/.metadata > drwxr-xr-x - root supergroup 0 2017-02-22 08:04 > /projects/t1_bob_parq_new/.signals > -rw-r--r-- 3 root supergroup 666 2017-02-22 08:04 > /projects/t1_bob_parq_new/94e7de9a-88fc-4b6b-be4d-2547698fe599.parquet > [root@host-10-17-81-247 ~]# hadoop fs -cat > /projects/t1_bob_parq_new/.metadata/schemas/1.avsc > { > "type" : "record", > "name" : "T1_BLOB_PARQ_NEW", > "doc" : "Sqoop import of T1_BLOB_PARQ_NEW", > "fields" : [ { > "name" : "C1", > "type" : [ "null", "string" ], > "default" : null, > "columnName" : "C1", > "sqlType" : "2" > }, { > "name" : "C2", > "type" : [ "null", "bytes" ], > "default" : null, > "columnName" : "C2", > "sqlType" : "2004" > } ], > "tableName" : "T1_BLOB_PARQ_NEW" > } -- This message was sent by Atlassian JIRA (v6.4.14#64029)