sqoop笔记

来源:互联网 发布:程序员笔记本电脑排名 编辑:程序博客网 时间:2024/05/16 10:59



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 ‘,’;

0 0
原创粉丝点击