返回顶部
首页 > 资讯 > 数据库 >Hive数据如何导入导出mysql
  • 767
分享到

Hive数据如何导入导出mysql

2024-04-02 19:04:59 767人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关Hive数据如何导入导出Mysql的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 Hive定位:ETL(数据仓库)工具将数

这篇文章给大家分享的是有关Hive数据如何导入导出Mysql的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Hive定位:ETL(数据仓库工具
将数据从来源端经过抽取(extract)、转换(transfORM)、加载(load)至目的端的工具,如像:kettle

DML

批量插入/批量导入
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
注:filepath可以是hdfs路径或者是S3路径,如hdfs://namenode:9000/user/hive/project/data1
1.从本地文件导入到表
load data local inpath 'test.txt' into table test;
2.从hdfs导入到表
load data inpath '/home/test/add.txt' into table test;
3.从表查询中导入到表
insert into table test select id, name, tel from test;
4.将查询数据导入到多个表
from source_table
insert into table test select id, name, tel from dest1_table select src.* where src.id < 100
insert into table test select id, name, tel from dest2_table select src.* where src.id < 100
insert into table test select id, name, tel from dest3_table select src.* where src.id < 100;
5.建表时导入
create table test4 as select id, name, tel from test;
指定分隔符导出数据
insert overwrite local directory '/home/hadoop/export_hive' 
row format delimited 
fields terminated by '\t' 
select * from test;
删除/清空
1.删除table1中不符合条件的数据
insert overwrite table table1
select * from table1 where XXXX;
2.清空表
insert overwrite table t_table1
select * from t_table1 where 1=0;
3.截断表(注:不能截断外部表)
truncate table table_name;
4.删除hdfs对应的表数据达到清空表(表结构依然存在)
hdfs dfs -rmr /user/hive/warehouse/test
 
注:1和2本质是覆写表来实现清除数据
delete 与 update
在hive中默认不支持事务,因此默认不支持delete与update,如果需要支持必须在hive-site.xml中配置打开

DDL

库/表/索引/视图/分区/分桶

数据库

列出/创建/修改/删除/查看信息
1.列出所有数据库
show databases;
2.创建数据库
create database test;
3.删除
drop database test;
 
处于安全原因,直接drop有数据的数据库会报错,此时需要cascade关键字忽略报错删除
drop database if exists test cascade;
4.查看数据库信息
describe database test;

列出/创建/修改/删除/查看信息
1.列出所有表
 
当前数据库的所有表
show tables;
 
指定数据库的所有表
show tables in db_name;
 
支持正则
show tables '.*s';
2.创建表
create table test
(id int,
a string
)
ROW FORMAT DELIMITED        行分割
FIELDS TERMINATED BY ‘,’    字段分隔符
LINES TERMINATED BY ‘\n’    行分隔符
STORED AS TEXTFILE;         作为文本存储
创建基于正则切分行字段的表
add jar ../build/contrib/hive_contrib.jar;
 
CREATE TABLE apachelog (
host STRING,
identity STRING,
user STRING,
time STRING,
request STRING,
status STRING,
size STRING,
referer STRING,
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|//[[^//]]*//]) ([^ /"]*|/"[^/"]*/") (-|[0-9]*) (-|[0-9]*)(?: ([^ /"]*|/"[^/"]*/") ([^ /"]*|/"[^/"]*/"))?",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)
STORED AS TEXTFILE;
3.修改
加一个新列
ALTER TABLE test ADD COLUMNS (new_col2 INT COMMENT 'a comment');
 
改表名
ALTER TABLE old_name RENAME TO new_name;
4.删除
drop table test;
5.查看信息
 
显示列信息
desc test;
 
显示详细表信息
desc formatted test;

索引

创建索引
CREATE INDEX index_name   
ON TABLE base_table_name (col_name, ...)  
AS 'index.handler.class.name'
 
如:DROP INDEX index_name ON table_name  
 
重建索引
ALTER INDEX index_name ON table_name [PARTITION (...)] REBUILD  
 
如:alter index index1_index_test on index_test rebuild
 
删除索引
DROP INDEX index_name ON table_name  
 
列出索引
show index on index_test;

视图

CREATE VIEW [IF NOT EXISTS] view_name [ (column_name [COMMENT column_comment], ...) ][COMMENT view_comment][TBLPROPERTIES (property_name = property_value, ...)] AS SELECT
 
注:hive只支持逻辑视图,不支持物化视图
?增加视图
?如果没有提供表名,视图列的名字将由定义的SELECT表达式自动生成
?如果修改基本表的属性,视图中不会体现,无效查询将会失败
?视图是只读的,不能用LOAD/INSERT/ALTER
?删除视图  DROP VIEW view_name
 

分区(重点)

列出/创建/修改/删除
1.列出一个表的所有分区
show  partitions test;
2.创建分区表
create table test
(id int,
a string,
)
partitioned by (b string,c int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n
STORED AS TEXTFILE;
3.对现有表添加分区
ALTER TABLE test ADD IF NOT EXISTS
PARTITION (year = 2017) LOCATION ‘/hiveuser/hive/warehouse/data_zh.db/data_zh/2017.txt’;
4.删除分区
ALTER TABLE test DROP IF EXISTS PARTITION(year =2017);
5.加载数据到分区表
LOAD DATA INPATH ‘/data/2017.txt’ INTO TABLE test PARTITION(year=2017);
6.未分区表数据导入分区表
insert overwrite table part_table partition (YEAR,MONTH) select * from no_part_table;
7.动态分区指令
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
#set hive.enforce.bucketing = true;
 
开启动态分区后导入数据时可以省略指定分区的步骤
LOAD DATA INPATH ‘/data/2017.txt’ INTO TABLE test PARTITION(year);

分桶

CREATE TABLE bucketed_user (id INT) name STRING)
CLUSTERED BY (id) INTO 4 BUCKETS;
对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。Hive也是 针对某一列进行桶的组织。Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。
把表(或者分区)组织成桶(Bucket)有两个理由:
(1)获得更高的查询处理效率。桶为表加上了额外的结构,Hive 在处理有些查询时能利用这个结构。具体而言,连接两个在(包含连接列的)相同列上划分了桶的表,可以使用 Map 端连接 (Map-side join)高效的实现。比如JOIN操作。对于JOIN操作两个表有一个相同的列,如果对这两个表都进行了桶操作。那么将保存相同列值的桶进行JOIN操作就可以,可以大大较少JOIN的数据量。
(2)使取样(sampling)更高效。在处理大规模数据集时,在开发和修改查询的阶段,如果能在数据集的一小部分数据上试运行查询,会带来很多方便。

感谢各位的阅读!关于“Hive数据如何导入导出mysql”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: Hive数据如何导入导出mysql

本文链接: https://lsjlt.com/news/69697.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Hive数据如何导入导出mysql
    这篇文章给大家分享的是有关Hive数据如何导入导出mysql的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 Hive定位:ETL(数据仓库)工具将数...
    99+
    2024-04-02
  • MySQL如何导入和导出数据
    MySQL可以使用命令行工具或者MySQL客户端来导入和导出数据。以下是使用命令行工具的方法: 导出数据: mysqldump ...
    99+
    2024-03-06
    MySQL
  • 在Hive中如何进行数据导入和导出操作
    在Hive中进行数据导入和导出操作可以通过以下方式实现: 数据导入: 使用HDFS命令将数据文件上传至HDFS中。 使用Hive的...
    99+
    2024-03-12
    Hive
  • 使用DataX实现mysql与hive数据互相导入导出
    一、概论 1.1 什么是DataX          DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle 等)、HDFS、Hive、ODPS、HBase、FTP 等各种异...
    99+
    2023-09-26
    大数据
  • 使用HeidiSQL如何导入导出MySQL数据
    本篇文章为大家展示了使用HeidiSQL如何导入导出MySQL数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。①首先,选择你要导出的数据库,点击鼠标右键:如下图所...
    99+
    2024-04-02
  • mysql数据库导入、导出
    终端命令操作(导出) 导出整个库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root-p blog > ./blog.sql   2导出某个表 mysqldump -u 用户名 ...
    99+
    2020-08-22
    mysql数据库导入 导出
  • redis数据如何导入导出
    redis数据导入导出的方法:通过redis-dump工具进行导入导出,在终端命令行通过以下命令进行安装。//安装redis-dump工具[root@202.102.221.13 ~]$ yum install ruby rubygems ...
    99+
    2024-04-02
  • elasticsearch数据如何导入导出
    Elasticsearch 中数据的导入导出可以通过以下几种方式实现: 使用 Elasticsearch 提供的 API: 使...
    99+
    2024-04-02
  • mysql数据怎么导入hive中
    在将MySQL数据导入到Hive中之前,需要确保你已经安装了MySQL和Hive,并且配置了正确的连接信息。以下是将MySQL数据导...
    99+
    2024-05-06
    hive mysql
  • MySQL入门--导出和导入数据
    MySQL导出和导入数据 数据库导出可用于将数据库复制到另一个服务器。可以将数据库传输到在另一台主机上运行的服务器,这是最典型的数据导出任务。也可以将数据传输到运行在同一主机上的不同服务器。...
    99+
    2024-04-02
  • 如何实现MySQL表数据的导入导出
    这篇文章主要讲解了如何实现MySQL表数据的导入导出,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。数据导出1.  使用 SELECT ...INTO...
    99+
    2024-04-02
  • linux中如何导入和导出mysql数据库
    这篇文章主要为大家展示了“linux中如何导入和导出mysql数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中如何导入和导出mysql数据库”这...
    99+
    2024-04-02
  • Linux系统中如何导入、导出MySQL数据
    这篇“Linux系统中如何导入、导出MySQL数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux系统中如何导入、导...
    99+
    2023-06-28
  • Hive数据导出详解
    目录一、数据导出是什么?二、六大帮派1.insert2.Hadoop命令导出到本地3.Hive shell命令导出4.export导出到HDFS上5.Sqoop导出6.清除表中的数据(Truncate)—&m...
    99+
    2023-04-14
    Hive数据导出 Hive数据 数据导出
  • MySQL数据库导出和导入
    1).MySQLimport的语法介绍:   MySQLimport位于MySQL/bin目录中,是MySQL的一个载入(或者说导入)数据的一个非常有效的工具。这是一个命令行工具。有两个参数以及大量的选项可...
    99+
    2024-04-02
  • ORACLE 数据泵如何导入导出数据
    这篇文章给大家分享的是有关ORACLE 数据泵如何导入导出数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、摘要在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp...
    99+
    2024-04-02
  • sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法
    这篇文章主要介绍“sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法”,在日常操作中,相信很多人在sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-02
  • Navicat如何导出导入数据库
    这篇文章主要介绍了Navicat如何导出导入数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。描述把mysql数据库中的一个数据库导出(备...
    99+
    2024-04-02
  • 如何导入和导出Oracle数据
    今天就跟大家聊聊有关如何导入和导出Oracle数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Oracle数据导入导出imp/exp就相当于ora...
    99+
    2024-04-02
  • 数据导入导出
    数据导入导出设置数据导入/导出使用的目录1.查看默认使用目录及目录是否存在。mysql>show variables like "secure_file_priv";secure_...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作