[ https://issues.apache.org/jira/browse/SQOOP-3038?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anna Szonyi reassigned SQOOP-3038: ---------------------------------- Assignee: Anna Szonyi > Sqoop export using --hcatalog with RDBMS reserved word column name results in > "null" value > ------------------------------------------------------------------------------------------ > > Key: SQOOP-3038 > URL: https://issues.apache.org/jira/browse/SQOOP-3038 > Project: Sqoop > Issue Type: Bug > Components: hive-integration > Reporter: Markus Kemper > Assignee: Anna Szonyi > Attachments: SQOOP-3038.patch > > > ----------------------- > | c1 | value | <=== RDBMS reserved word "value" > ----------------------- > | 1 | (null) | <=== null? > ----------------------- > TEST CASE: > STEP 01 - Create MySQL Tables > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "drop table t1" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "create table t1 (c1 int, c2 varchar(5))" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "insert into t1 values (1, 'one')" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "show create table t1" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "drop table t1_value" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "create table t1_value (c1 int, \`value\` varchar(5))" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "insert into t1_value select * from t1" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "show create table t1_value" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1_value" > Output: > ----------------------------------------------- > | Table | Create Table | > ----------------------------------------------- > | t1 | CREATE TABLE `t1` ( > `c1` int(11) DEFAULT NULL, > `c2` varchar(5) DEFAULT NULL > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | > ----------------------------------------------- > ----------------------- > | c1 | c2 | > ----------------------- > | 1 | one | > ----------------------- > ----------------------------------------------- > | Table | Create Table | > ----------------------------------------------- > | t1_value | CREATE TABLE `t1_value` ( > `c1` int(11) DEFAULT NULL, > `value` varchar(5) DEFAULT NULL > ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | > ----------------------------------------------- > ----------------------- > | c1 | value | > ----------------------- > | 1 | one | > ----------------------- > STEP 02 - Verify Import/Export Using --target-dir and --export-dir > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1 --target-dir /user/root/t1 --delete-target-dir --num-mappers 1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "delete from t1" > sqoop export --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1 --export-dir /user/root/t1 --num-mappers 1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1" > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1_value --target-dir /user/root/t1 --delete-target-dir --num-mappers 1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "delete from t1_value" > sqoop export --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1_value --export-dir /user/root/t1 --num-mappers 1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1_value" > Output: > ----------------------- > | c1 | c2 | > ----------------------- > | 1 | one | > ----------------------- > ----------------------- > | c1 | value | > ----------------------- > | 1 | one | > ----------------------- > STEP 03 - Verify import with --hive-import and export with --hcatalog > beeline -u jdbc:hive2:// -e "use default; drop table t1;" > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1 --target-dir /user/root/t1 --delete-target-dir --hive-import > --hive-database default --hive-table t1 --num-mappers 1 > beeline -u jdbc:hive2:// -e "use default; select * from t1;" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "delete from t1" > sqoop export --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1 --hcatalog-database default --hcatalog-table t1 --num-mappers 1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1" > Output: > +--------+--------+--+ > | t1.c1 | t1.c2 | > +--------+--------+--+ > | 1 | one | > +--------+--------+--+ > ----------------------- > | c1 | c2 | > ----------------------- > | 1 | one | > ----------------------- > beeline -u jdbc:hive2:// -e "use default; drop table t1_value;" > sqoop import --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1_value --target-dir /user/root/t1 --delete-target-dir --hive-import > --hive-database default --hive-table t1_value --num-mappers 1 > beeline -u jdbc:hive2:// -e "use default; select * from t1_value;" > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "delete from t1_value" > sqoop export --connect $MYCONN --username $MYUSER --password $MYPSWD --table > t1_value --hcatalog-database default --hcatalog-table t1_value --num-mappers 1 > sqoop eval --connect $MYCONN --username $MYUSER --password $MYPSWD --query > "select * from t1_value" > Output: > +--------------+-----------------+--+ > | t1_value.c1 | t1_value.value | > +--------------+-----------------+--+ > | 1 | one | > +--------------+-----------------+--+ > ----------------------- > | c1 | value | > ----------------------- > | 1 | (null) | <========== null? > ----------------------- > beeline -u jdbc:hive2:// -e "use default; show create table t1;" > beeline -u jdbc:hive2:// -e "use default; show create table t1_value;" > Output: > +-------------------------------------------------------------------------------+--+ > | createtab_stmt > | > +-------------------------------------------------------------------------------+--+ > | CREATE TABLE `t1`( > | > | `c1` int, > | > | `c2` string) > | > | COMMENT 'Imported by sqoop on 2016/10/25 17:16:20' > | > | ROW FORMAT SERDE > | > | 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' > | > | WITH SERDEPROPERTIES ( > | > | 'field.delim'='\u0001', > | > | 'line.delim'='\n', > | > | 'serialization.format'='\u0001') > | > | STORED AS INPUTFORMAT > | > | 'org.apache.hadoop.mapred.TextInputFormat' > | > | OUTPUTFORMAT > | > | 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' > | > | LOCATION > | > | 'hdfs://<hostname>:8020/user/hive/warehouse/t1' | > | TBLPROPERTIES ( > | > | 'COLUMN_STATS_ACCURATE'='true', > | > | 'numFiles'='1', > | > | 'totalSize'='6', > | > | 'transient_lastDdlTime'='1477440983') > | > +-------------------------------------------------------------------------------+--+ > +-------------------------------------------------------------------------------------+--+ > | createtab_stmt > | > +-------------------------------------------------------------------------------------+--+ > | CREATE TABLE `t1_value`( > | > | `c1` int, > | > | `value` string) > | > | COMMENT 'Imported by sqoop on 2016/10/25 17:23:02' > | > | ROW FORMAT SERDE > | > | 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' > | > | WITH SERDEPROPERTIES ( > | > | 'field.delim'='\u0001', > | > | 'line.delim'='\n', > | > | 'serialization.format'='\u0001') > | > | STORED AS INPUTFORMAT > | > | 'org.apache.hadoop.mapred.TextInputFormat' > | > | OUTPUTFORMAT > | > | 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' > | > | LOCATION > | > | 'hdfs://<hostname>:8020/user/hive/warehouse/t1_value' | > | TBLPROPERTIES ( > | > | 'COLUMN_STATS_ACCURATE'='true', > | > | 'numFiles'='1', > | > | 'totalSize'='6', > | > | 'transient_lastDdlTime'='1477441386') > | > +-------------------------------------------------------------------------------------+--+ -- This message was sent by Atlassian JIRA (v6.3.4#6332)