sqoop的导入命令详解

sqoop的背景

sqoop是一个配合大数据hadoop做数据底层的导入导出操作,需要配合hive及分布式文件系统(hdfs或blob)一起使用,在大数据ETL应用领域,sqoop占据主流。
sqoop是一个对数据进行导入或者导出的ETL工具,也有其他的同类产品,datax、kettle,但是不管使用什么工具,这都是一种手段,终其究竟,要学的是其中的思想和逻辑。

sqoop分为导入操作和导出操作,从关系型数据库导入到hive中即import ,从hive中导出到关系型数据库即export

sqoop导入或导出的操作和对象都是表,在使用sqoop之前,需要关系型数据库可以允许远程ip访问;我在这里只简单说说用python结合sqoop的导入操作和导出操作。

sqoop的导入

导入命令
sqoop import
--hive-import
--connect "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbDatabase
--driver com.mysql.jdbc.Driver
--username root \ 用户名
--password **** \ 密码
--table table_name \ 导出的表名
--columns ts_code,symbol,name,area,industry,fullname,market,exchange,curr_type,list_status,list_date,is_hs \ 抽取的列名
--fetch-size 50000 \ 每次批量抽取5000条
--target-dir \ 目标HDFS目录
--hive-table ods.datafrog_test \ 导入到hive 中的表名,如果没有这个表,就创建表
--hive-drop-import-delims \ 导入到Hive时,从字符串字段中删除\n、\r和\01
--fields-terminated-by '\001' \ 分隔符
--append \ 将数据追加到HDFS的现有数据集
-m 1

其中 connect为数据库连接,具体的格式如下:
mysql
"jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbDatabase

sql server
"jdbc:sqlserver://" + dbHost + ":" + dbPort +";" + "database=" + dbDatabase+";"+"useUnicode=true;characterEncoding=GBK"

你可能感兴趣的:(sqoop的导入命令详解)