Sqoop导入时注意事项

参考:http://blog.csdn.net/zleven/article/details/53781111

导入时需要注意

1)数据库表名需要大写;  我试小写好像也可以 不知道是不是版本问题
Imported Failed: There is no column found in the target table xxx. Please ensure that your table name is correct.


2)数据库表没有主键时,需要指定--split-by参数或者使用--autoreset-to-one-mapper参数;
Error during import: No primary key could be found for table xxx.


3)使用查询语句(--e或--query)导入时,需要指定--split-by参数及--target-dir参数;
When importing query results in parallel, you must specify --split-by.  Must specify destination with --target-dir.


4)使用查询语句导入时,需要在where子句中加入$CONDITIONS
java.io.IOException: Query [select * from xxx] must contain '$CONDITIONS' in WHERE clause.
如:
[plain]  view plain  copy
  1. $ sqoop import  --connect jdbc:oracle:thin:@192.168.1.10:1521:TEST --username test --password test   
  2. --e 'select * from T_SQOOP_TEST where $CONDITIONS' --verbose --split-by ID --target-dir temp3 --m 1  
5) sqoop默认使用“,”(逗号)作为列分隔符,\n(换行符)作为行分隔符。当导入的数据中包含","或\n时可以通过--fields-terminated-by 参数指定列分隔符;使用--lines-terminated-by 参数指定行分隔符


6)sqoop对大对象(CLOB和BLOB字段)有2种处理方式:一种方式是内嵌方式,直接将大对象和其他字段数据放在一起;另一种方式是将大对象单独存储,然后和主数据做一个关联。
通常,小于16MB的大对象字段采用第一种方式大对象和主数据一起存储。超过16MB的大对象采用第二种方式单独存储在导入目录的_lobs子目录下,每个文件最大能容纳2^63字节。可以通过--inline-lob-limit参数设置内嵌字段的大小,如果设置为0,则所有大对象将会单独存储。

你可能感兴趣的:(大数据-Hadoop,大数据-Hive)