sqoop从关系库导出数据到hive

[Author]: kwu

sqoop从关系库导出数据到hive,sqoop支持条件查询关系库中的数到hive数据仓库中,并且字段无须与hive表中的字段一致。

具体实现的脚本:

#!/bin/sh
# upload logs to hdfs  

today=`date --date='0 days ago' +%Y-%m-%d`

sqoop import --connect jdbc:mysql://10.130.2.6:3306/bdc_test --username lvwenjuan --password Abcd1234  --table sh_compsite_index --where "V1='${today}'" --columns "V1,V2,V3,V4,V5,V6,V7" --fields-terminated-by '\001' --hive-import --hive-
drop-import-delims --hive-table stage.sh_comp_index -m 1

year=`date +%Y`  

hive -e "
insert overwrite table ods.sh_comp_index partition(year='${year}')
select distinct
trans_date ,
open_price ,
ceil_price  ,
close_price ,
bottom_price ,
volume_of_business ,
trans_amount
from
stage.sh_comp_index
where year(trans_date)=${year};
"

说明:

1、条件语句,需要加上双引号: "" ,如下:

 --where "V1='${today}'"

2、注意,sqoop的语句需要写成一行执行。

3、-m 1说明是一个map执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 09:13:54

sqoop从关系库导出数据到hive的相关文章

解决sqoop导入关系库更新联合主键的问题

[Author]: kwu sqoop导入关系库更新联合主键的问题,把数据从hive中导入关系库,如果关系库表有联合主键的情况,且需要把新导入的数据更新原来的数据. 1.创建关系库表 CREATE TABLE test123 ( id INT NOT NULL, name VARCHAR(25) NOT NULL, age INT, PRIMARY KEY (id, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 2.创建hive表 drop table d

hive学习总结(2)—Hive几种导出数据方式

1.拷贝文件 如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以. hadoop fs –cp source_path target_path 2.导出到本地文件系统 --不能使用insert into local directory来导出数据,会报错 --只能使用insert overwrite local directory来导出数据 --hive0.11版本之前,只能使用默认分隔符^A(ascii码是\00001) insert overwrite local direct

sqoop 整库导入数据hive

1.整库导入 sqoop  import-all-tables --connect jdbc:mysql://ip:3306/dbname  --username user --password password --hive-database abc  -m 10  --create-hive-table  --hive-import --hive-overwrite import-all-tables :导入所有表 --connect :连接的url地址 --username:mysql用户

教程 | 使用Sqoop从MySQL导入数据到Hive和HBase

基础环境 sqoop:sqoop-1.4.5+cdh5.3.6+78, hive:hive-0.13.1+cdh5.3.6+397, hbase:hbase-0.98.6+cdh5.3.6+115 Sqool和Hive.HBase简介 Sqoop Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的开源工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中. Hiv

hive导入导出数据案例

查询数据: use ods;set /user.password=ODS-SH;select * from base_cdma_all limit 10; use tag_bonc;select * from dpi_http_userapp_statistics limit 100000; #设置显示当前使用的数据库 set hive.cli.print.current.db=true; #设置不优先使用MapReduce set hive.exec.mode.local.auto=true;

sqoop导出数据到关系数据库export_fact_bi_browser_t_job.sh

#!/bin/bash #################################### code review [email protected] 20170504# System Name : 大数据智慧分析平台# Author : heguoxiu# Description : sqoop导出数据到oracle################################## #引用公共变量配置文件source /parse/opt/shell/public/public_tim

1.131.15 Sqoop导出数据Export使用

一.export 1.export概述 export工具将一组文件从HDFS导入到RDBMS.目标表必须已经存在于数据库中.根据用户指定的分隔符读取输入文件并将其解析为一组记录, 只有map: [[email protected] sqoop-1.4.5-cdh5.3.6]# bin/sqoop help export sqoop-export有三种模式: 默认模式:将它们转换为一组将INSERT语句注入数据库的语句. 更新模式:Sqoop将生成UPDATE替换数据库中现有记录的语句. 调用模式

db2导出数据并导入hive临时表中

操作: 1.从db2 中导出数据到txt中 2.修改文件中的分隔符为":" 3.在hive中新建表(建表时需要制定分隔符) 4.导入数据 -------- 1.从db2 中导出数据到txt中 db2 -x "select col1,col2,col3  from tbl_name where xxx with ur">filename.txt 2.修改文件中的分隔符为":" cat filename.txt | awk '{print $1

sqoop 从oracle导数据到hive中,date型数据时分秒截断问题

oracle数据库中Date类型倒入到hive中出现时分秒截断问题解决方案 1.问题描述: 用sqoop将oracle数据表倒入到hive中,oracle中Date型数据会出现时分秒截断问题,只保留了‘yyyy-MM-dd',而不是’yyyy-MM-dd HH24:mi:ss'格式的,后面的‘HH24:mi:ss’被自动截断了,在对时间要求到秒级的分析处理中这种截断会产生问题. 2.解决方案: 在用sqoop倒入数据表是,添加--map-column-hive 和--map-column-jav