Sqoop的一些使用心得
来源:互联网 发布:php curl 文件大小 编辑:程序博客网 时间:2024/04/28 19:53
sqoop作为从关系型数据库导入hdfs的工具,我们在从关系型数据库中导出数据时可先做数据筛选,选定我们所要的数据,能大大的减轻数据负担,即sql语句后加where条件的实现!
经测试可执行sqoop脚本如下:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --table XXX --columns "columns" --where " c1>=to_date('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') " -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
原测试sqoop脚本如下:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --query ‘select columns from talbename where 1=1 and $CONDTIONS' --where " c1>=to_date('2015-01-0100:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') " -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
或测试脚本为:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --query ‘select columns from talbename where 1=1 and c1>=to_date('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and $CONDTIONS' -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
或测试脚本为:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --query ‘select columns from talbename where 1=1 and $CONTIONS and c1>=to_date('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') ' -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
或者其他一些测试脚本,在使用时有心得如下;
经测试可执行sqoop脚本如下:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --table XXX --columns "columns" --where " c1>=to_date('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') " -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
原测试sqoop脚本如下:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --query ‘select columns from talbename where 1=1 and $CONDTIONS' --where " c1>=to_date('2015-01-0100:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') " -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
或测试脚本为:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --query ‘select columns from talbename where 1=1 and c1>=to_date('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and $CONDTIONS' -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
或测试脚本为:
sqoop import --connect jdbc:oracle:thin:@IP:PORT:SCHEMA --username username -password=password --query ‘select columns from talbename where 1=1 and $CONTIONS and c1>=to_date('2015-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and c1<=to_date('2015-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') ' -m 8 --split-by ID --fields-terminated-by '^' --target-dir /importdata/XXX/
或者其他一些测试脚本,在使用时有心得如下;
--query似乎并不能支持复杂where条件筛选,但必须有where语句与$CONDTIONS,--query即使后面加--where 参数也还是无法起到作用,现在测试通过的情况仅有--columns与--where合用时是满足要求的!
sqoop --query参数中where语句与$CONDTIONS占位符合用是将由--split-by参数划分出的每个map执行SQL补全,如:
a. 通过split-by id指定 map数据划分所依据的列
b. sqoop运行 select max(id), min(id) from xxx 获得数据范围,比如max(id) = 100, min(id) = 1
c. sqoop若指定使用4个map进行数据的导入,因此在情况下,可将id的区间分为4段,通过不同的map进行导入,分别为:
1 <= id and id <= 25
26 <= id and id <= 50
51 <= id and id <= 75
76 <= id and id <= 100
d. 每个map将SQL补全,比如 select * from xxx where (1 <= id and id <= 25). 用(1 <= id and id <= 25) 替代了--query中的占位符 $CONDITIONS
0 0
- Sqoop的一些使用心得
- sqoop使用心得~~~
- sqoop 使用心得(sqoop增量倒入)
- 使用 7230的一些心得
- TreeView使用的一些心得
- 使用JTAG的一些心得
- BerkeleyDB使用的一些心得
- 使用JTAG的一些心得
- Siverlight的一些使用心得
- thickbox的一些使用心得
- eclipse 的一些使用心得
- cocostudio使用的一些心得
- hiredis的一些使用心得
- 使用HighChart的一些心得
- Neo4j 的一些使用心得
- 使用pygame的一些心得
- MySql的一些使用心得
- Makefile使用的一些心得
- 用Maven构建Hadoop项目
- 软件开发文档总集
- ITextView如何关闭键盘
- Eclipse去除js(JavaScript)验证错误
- Android系统的架构
- Sqoop的一些使用心得
- C++ STL
- dx9 api性能分析
- Mediarecorder录音(保存为本地文件AAC格式)
- Maven:mirror和repository 区别
- Window phone用手机来控制电脑的多媒体播放
- 指针参数是如何传递内存的?
- 传统企业打造互联网技术团队
- Oracle VM VirtualBox 虚拟机和主机时间同步问题