sqoop import \
-D mapred.job.queue.name=queue_gbd_ide_03 \
--connect jdbc:postgresql://10.20.130.122:7458/d0paebd \
--username pierdata --password PaicDev1234 \
--query "select * from ebd_smdb_announmt where 1=1 and \$CONDITIONS and lcd >= '20160101' and lcd < '20160102'" \
-m 1 --hive-table gbd_company_info_safe.ebd_smdb_announmt \
--hive-drop-import-delims \
--hive-partition-key y,m,d \
--hive-partition-value '2016','01','01' \
--fetch-size 10000 \
--target-dir '/apps-data/hduser0539/test/' \
--hive-overwrite \
--hive-import
;
## 从sql数据库导入到HDFS
sqoop import\
--connect jdbc::mysql://localhost/userdb\
--username root\
--table emp \ #mysql中的表
--table emp \ #mysql中的表
--m 1 \
--where "city ='sec-bad'" #导入数据表子集 指定条件
--target-dir /queryrresult #目标目录
##增量导入 在最后一行是1205的位置,把之后的数据都导入进来,column 就是开始的第一列的名字
--incremental append \
--check-column id \
--last value 1205
##sqoop 导入所有表
sqoop import-all-tables (generic-args)(import-args)
使用该命令,是强制性的,在该数据库中的每个班必须有一个主键字段。
##Sqoop导出 从HDFS 导出到SQL
## 必须现在SQL 数据库中先建好表
##在HDFS emp_data文件)到MySQL数据库服务器DB数据库的employee表中。
sqoop export \
--connect jdbc:mysql://localhost/db \
--username root \
--table employee \ #这个是MYSQL数据库中的表
--export-dir /emp/emp_data #这个是HDFS上的目录
##Sqoop作业创建并保存导入和导出命
sqoop job --creat myjob \
--import\
--connect jdbc::mysql//localhost/userdb\
--username root \
--table employee --m 1 # 至此已经创建好一个job
sqoop job --list #验证 job
sqoop job --show myjob # 查看job
sqoop job --exec myjob #执行job
##eval工具
1.选择查询
$ sqoop eval \
--connect jdbc:mysql://localhost/db \
--username root \
--query “SELECT * FROM employee LIMIT 3”
2.插入查询
$ sqoop eval \
--connect jdbc:mysql://localhost/db \
--username root \
-e “INSERT INTO employee VALUES(1207,‘Raju’,‘UI dev’,15000,‘TP’)”
##列出所有数据库 列出所有表
sqoop list-databases \
sqoop list-tables \
使用sqoop导入数据至hive 三种方法:
1.使用query导入hive表
sqoop import \
--connect jdbc:postgresql://ip/db_name \
--username user_name \
--query "select * from retail_tb_order where \$CONDITIONS " \
--hive-import -m 5 \
--hive-table hive_table_name \
--hive-partition-key partition_name \
--hive-partition-value partititon_value;
2. 直接导入hive表
sqoop import \
--connect jdbc:postgresql://ip/db_name \
--username user_name \
--table table_name \
--hive-import -m 5
3.导入hive已经创建好的表中入hive已经创建好的表中
sqoop import \
--connect jdbc:postgresql://ip/db_name \
--username user_name \
--table table_name \
--hive-import -m 5 \
--hive-table hive_table_name \
--hive-partition-key partition_name \
--hive-partition-value partititon_value;
##创建hive表设置分隔符为逗号
CREATE TABLE tb1(
id int,
......
) row format delimited fields terminated by ‘,’;
-D mapred.job.queue.name=queue_gbd_ide_03 \
--connect jdbc:postgresql://10.20.130.122:7458/d0paebd \
--username pierdata --password PaicDev1234 \
--query "select * from ebd_smdb_announmt where 1=1 and \$CONDITIONS and lcd >= '20160101' and lcd < '20160102'" \
-m 1 --hive-table gbd_company_info_safe.ebd_smdb_announmt \
--hive-drop-import-delims \
--hive-partition-key y,m,d \
--hive-partition-value '2016','01','01' \
--fetch-size 10000 \
--target-dir '/apps-data/hduser0539/test/' \
--hive-overwrite \
--hive-import
;
## 从sql数据库导入到HDFS
sqoop import\
--connect jdbc::mysql://localhost/userdb\
--username root\
--table emp \ #mysql中的表
--table emp \ #mysql中的表
--m 1 \
--where "city ='sec-bad'" #导入数据表子集 指定条件
--target-dir /queryrresult #目标目录
##增量导入 在最后一行是1205的位置,把之后的数据都导入进来,column 就是开始的第一列的名字
--incremental append \
--check-column id \
--last value 1205
##sqoop 导入所有表
sqoop import-all-tables (generic-args)(import-args)
使用该命令,是强制性的,在该数据库中的每个班必须有一个主键字段。
##Sqoop导出 从HDFS 导出到SQL
## 必须现在SQL 数据库中先建好表
##在HDFS emp_data文件)到MySQL数据库服务器DB数据库的employee表中。
sqoop export \
--connect jdbc:mysql://localhost/db \
--username root \
--table employee \ #这个是MYSQL数据库中的表
--export-dir /emp/emp_data #这个是HDFS上的目录
##Sqoop作业创建并保存导入和导出命
sqoop job --creat myjob \
--import\
--connect jdbc::mysql//localhost/userdb\
--username root \
--table employee --m 1 # 至此已经创建好一个job
sqoop job --list #验证 job
sqoop job --show myjob # 查看job
sqoop job --exec myjob #执行job
##eval工具
1.选择查询
$ sqoop eval \
--connect jdbc:mysql://localhost/db \
--username root \
--query “SELECT * FROM employee LIMIT 3”
2.插入查询
$ sqoop eval \
--connect jdbc:mysql://localhost/db \
--username root \
-e “INSERT INTO employee VALUES(1207,‘Raju’,‘UI dev’,15000,‘TP’)”
##列出所有数据库 列出所有表
sqoop list-databases \
sqoop list-tables \
使用sqoop导入数据至hive 三种方法:
1.使用query导入hive表
sqoop import \
--connect jdbc:postgresql://ip/db_name \
--username user_name \
--query "select * from retail_tb_order where \$CONDITIONS " \
--hive-import -m 5 \
--hive-table hive_table_name \
--hive-partition-key partition_name \
--hive-partition-value partititon_value;
2. 直接导入hive表
sqoop import \
--connect jdbc:postgresql://ip/db_name \
--username user_name \
--table table_name \
--hive-import -m 5
3.导入hive已经创建好的表中入hive已经创建好的表中
sqoop import \
--connect jdbc:postgresql://ip/db_name \
--username user_name \
--table table_name \
--hive-import -m 5 \
--hive-table hive_table_name \
--hive-partition-key partition_name \
--hive-partition-value partititon_value;
##创建hive表设置分隔符为逗号
CREATE TABLE tb1(
id int,
......
) row format delimited fields terminated by ‘,’;