sqlite导入hive

1. 使用sqoop,比较适合数据量比较大的数据库系统,比如mysql、postgresql、oracle等

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS

还可以使用 --options-file 来传入一个文件,使用这种方式可以重用一些配置参数:

$ sqoop --options-file /users/homer/work/import.txt --table TEST

/users/homer/work/import.txt 文件内容如下:

import
--connect
jdbc:mysql://192.168.56.121:3306/metastore
--username
hiveuser
--password 
redhat

Sqoop导入关系数据库到Hive

https://blog.csdn.net/hblfyla/article/details/51849602

官方文档:

http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html#_introduction

 

下面是各个数据库的连接字符串:

sqlite:

    private static final String Class_Name = "org.sqlite.JDBC";
    private static final String DB_URL = "jdbc:sqlite:F:\\xxxdatabase.db";

mysql:

 

2.先导出再导入

链接知识:导入和导出sqlite

平时使用官方提供的sqlite3.exe工具来操作 sqlite的数据库,可以在网上下到。
进入管理:
sqlite3.exe d:\\test.db //假设数据是 d:\\test.db
> .databases //显示所有数据库 和 mysql的 show databases; 
> .tables //显示当前数据库的表格 和 mysql 的show tables; 
> .schema tablename; //显示表格结构 和mysql的 SHOW CREATE TABLE tbl_name
>.output c:\\\\1.sql //导出当前数据库的 sql语句 和mysql的 mysqldump
> .dump
> .import c:\\\\1.sql //导入 //mysql 用source
===================
sqlite 导入
命令: .import
sqlite> .import 文件名 表名
注1: 不要忘了开头的点
注2: 这条语句不能用分号结束. 非SQL不需要分号结束.
注3: 需要查看默认的分隔符separator. 必须一致. 如果不一致可能导致sqlite字段分割错误.
查看分隔符使用命令 .show , 如果不一致可直接修改, 比如:
sqlite>.separator ","
将分隔符转为逗号.
举例1:
将文件a.txt中的数据导入表 tab_xx. (a.csv中字段以逗号分割)
sqlite> .separator ","
sqlite> .import a.txt tab_xx
sqlite>
导入结束.

sqlite 导出
实现方式: 将输出重定向至文件.
命令: .output
sqlite> .output a.txt
然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件.
结束后,输入
sqlite> .output stdout
将输出重定向至屏幕.
举例2:
将 tab_xx 中的数据导出到文件a.txt
sqlite> .output a.txt
sqlite> select * from tab_xx;
sqlite> .output stdout
导出完毕.

如需导成csv格式,直接将文件a.txt换成a.csv即可

 

hive 导入

hive>load data local inpath '/home/hadoop/userinfodata.txt' overwrite into table user_info;

本次需要建立分区表,以代码进行分区:

load data local inpath '/home/hadoop/actionlog.txt' overwrite into table user_action_log 
PARTITION (dt='2017-05-26');

partition 是指定这批数据放入分区2017-05-26中。

 

hive导出:

导出数据

--导出数据,是将hive表中的数据导出到本地文件中。
insert overwrite local directory '/home/hadoop/user_info.bak2016-08-22 '
select * from user_info;

去掉local关键字,也可以导出到HDFS上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值