Hive基础概念和基础操作

Day04-Hive——数据库基础操作 1、数据管理内部表:由Hive全权管理,删除时会删除数据。外部表:Hive仅管理元数据,删除时不删除数据。2、存储位置内部表:数据存储在Hive默认仓库目录。外部表:数据存储在指定的HDFS路径或其它存储系统。3、应用场景内部表:适合临时数据处理和统计分析。外部表:适合长期存储和多工具共享数据。4、创建方式:内部表:创建时默认为内部表外部表:创建时需要使用 EXTERNAL 关键字。 阅读详情

目录

一.基础概念

1.概述

2.组成架构

3.特点

4.hive和传统数据库区别比如mysql

二.基础操作

常用命令

1.进入hive数据库

2.查看某个数据库

3.进入某个数据库

4.查看所有表

5.显示表结构

6.查询表数据

7.显示表名的分区

8,创建数据库

9.删除数据库

10.创建数据表

11.加载数据列表

12.重命名表

13.删除表

14.插入表数据

15.表结构修改

16.分桶表

17.创建一个视图


一.基础概念

1.概述

数据仓库(Data Warehouse)工具
基于Hadoop的
将  结构化的数据文件  映射成一张表
提供了类SQL的HQL的查询功能

本质:将sql语句转换为MapReduce任务进行运行( 记住 ),本质上就是MapReduce
作用: 对海量的大数据(结构化)数据进行分析和统计。

HQL:HQL是Hibernate Query Language的缩写,提供更加丰富灵活、更为强大的查询能力;
HQL更接近SQL语句查询语法。
数据仓库: 英文名称为Data Warehouse ,存储各种类型的数据,面向主体(分类存储), 存储大量的数据,数据的不可以更新,可以一直追加数据。

2.组成架构

1. 用户使用命令行工具或者JDBC发送HQL
2. 使用Driver驱动结合MetaStore元数据,将指定翻译成MapReduce
3. 首先使用SQL Parser解释器进行HQL的翻译
4. 使用编译器对解释结果进行编译
5. 使用优化器对编译结果进行优化
6. 最后将优化的结果使用执行器进行执行操作(本质上就是在Hadoop集群上使用MapReduce操作)
7. 将处理结果返回给客户端用户
组成:客户端接口、Hive的引擎(驱动)、元数据、Hadoop

说明:
    元数据(数据的描述信息:表的名称,数据库的名称,权限,所有者,组成字段等等)
        默认情况下存储在hive内部自带的derby数据库中
        问题:derby数据库,在同一时刻,只允许一个线程操作
        建议:使用MySQL对元数据进行存储

Hive的引擎:
        解释器、编译器、优化器、执行器 (顺序)

Hadoop:
        执行Hive

Client 接口:用户操作、访问Hive 的方式(jdbc,cli... ...)

3.特点

Hive使用HQL实现对数据的操作,操作方便简单(比MapReduce操作方便)
Hive处理大数据(比MySQL/Oracle强大)
Hive提供的大量的工具
Hive支持自定义函数,使用自定义需求
Hive实现离线数据分析
Hive使用类SQL语句实现功能,处理业务的范围受限(SQL语法所能表达的业务受限)
Hive运行效率较低(延迟高,离线数据分析)

4.hive和传统数据库区别比如mysql

存储位置:Hive数据存储在HDFS上。数据库保存在块设备或本地文件系统 ​。

数据更新:Hive不建议对数据改写。数据库通常需要经常修改 ​ 。

执行引擎:Hive通过MapReduce来实现。数据库用自己的执行引擎 。

​ 执行速度:Hive执行延迟高,但它数据规模远超过数据库处理能力时,Hive的并行计算能力就体现优势了。数据库执行延迟较低。

​ 数据规模:hive大规模的数据计算。数据库能支持的数据规模较小 。

​ 扩展性:Hive建立在Hadoop上,随Hadoop的扩展性。数据库由于ACID语义的严格限制,扩展有限 。

二.基础操作

常用命令

1.进入hive数据库

hive

2.查看某个数据库

show databases;

3.进入某个数据库

use 数据库;

4.查看所有表

show tables;

5.显示表结构

desc 表名;

6.查询表数据

select * from 表名;

7.显示表名的分区

show partitions 表名;

8,创建数据库

CREATE SCHEMA userdb;

9.删除数据库

DROP DATABASE IF EXISTS userdb;

DROP SCHEMA userdb;

10.创建数据表

use xxdb; create table xxx;              #内部表

创建一个表,结构与其他一样

create table xxx like xxx;

创建一个表,结构数据与其他一样,相当于复制一个表

create table xxx as xxx;

创建内部表

创建内部表,制定分隔符为tab键

create table tb_name(name1 int,name2 string) row format delimited fields terminated by '\t';

创建外部表

创建外部表,制定分隔符为tab键

create external table tb_name(name1 int,name2 string) row format delimited fields terminated by '\t';

创建分区表

创建分区:分区依据(Id int)

create table tb_name(
    id int,
    name string
) partitioned by (Id int)
    row format delimited fields terminated by '\t';

普通表和分区表区别:有大量数据增加的需要建分区表
内外表转换

内部表转外部表

alter table table-name set TBLPROPROTIES('EXTERNAL'='TURE');

外部表转内部表

alter table table-name set TBLPROPROTIES('EXTERNAL'='FALSE');

删除分区

#注意:若是外部表,则还需要删除文件(hadoop fs -rm -r -f hdfspath)

alter table table_name drop if exists partitions (d='2016-07-01');

11.加载数据列表

把本地数据装载到数据表,也就是在metastore上创建信息

load data local inpath '/root/a.txt' into table tb_name;

把HDFS上的数据装载到数据表

load data inpath '/target.txt' into table tb_name;

加载数据到分区表必须指明所属分区

load data local inpath './book.txt' overwrite into table tb_name partition (Id = 10);

12.重命名表

ALTER TABLE 表名1 RENAME TO 表名2;

13.删除表

drop table 表名;

或者

drop table if exists 表明;

14.插入表数据

向有分区的表插入数据

(1)覆盖现有分区数据,如果没有该指定分区,新建该分区,并且插入数据

INSERT OVERWRITE TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom', ...)
SELECT ... FROM 库名.表名 where...

(2)向现有的分区插入数据 (之前的数据不会被覆盖)

INSERT INTO TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom',...)
SELECT ... FROM 库名.表名  WHERE ...

向无分区的表插入数据

(1) 覆盖原有表里的数据,命令和有分区的表类似,只是去掉后面的PARTITION(dt=’ ‘,name=’ ')

INSERT OVERWRITE TABLE 库名.表名
SELECT ... FROM 库名.表名 where...

(2) 向现有的表插入数据 (之前的数据不会被覆盖)

INSERT INTO TABLE 库名.表名
SELECT ... FROM 库名.表名  WHERE ...


15.表结构修改

增加字段

alter table table_name add columns(newscol1 int conment '新增');

修改字段

alter table table_name change col_name new_col_name new_type;

删除字段

删除字段(COLUMNS中只放保留的字段)

alter table table_name replace columns(col1 int,col2 string,col3string);

16.分桶表

对于每一个表或者分区,Hive可以进一步组织成桶,也就是说桶是更为细精度的数据范围划分。
桶的使用一定要设置如下属性:

hive.enforce.bucketing = true;

创建一个桶:

# 按(id)分为4个bucket
create table tb_name (
    id int,
    name string
) clustered by (id) into 4 buckets
    row format delimited fields terminated by ',';

通过子查询插入数据:

insert into tb_name1 select * from tb_name;

17.创建一个视图

create view v_name as
    select table1.column1, table2.column2, table3.column3
    where table1.column1 = table2.column2;


 

不用敲命令!用宝塔面板可视化部署pbootCMS的保姆级教程(2024最新版) 本文提供2024年最新版pbootCMS可视化部署教程,全程使用宝塔面板操作,无需任何命令行知识。从服务器初始化、LNMP环境配置到源码上传、安装向导,手把手指导用户通过图形化界面快速搭建专业网站,适合零基础新手和追求高效建站的用户。 阅读详情

相关推荐

RT-Thread Studio与CubeMX联合编程(超级详细)

RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.youkuaiyun.com/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.youkuaiyun.com/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支

zhuzhu的博客 3万+

Hive基本操作

1、开启hive 1.1 进入 hive/bin [root@hadoop0001 bin]#cd /opt/software/apache-hive-1.2.1-bin/bin/ 1.2执行 hive 命令,开启hive [root@hadoop0001 bin]#hive 1.3若开启正常跳过,若报Cannot create directory /tmp/hive/root/533855bd-351b-4146-9227-10c16868ffd3. Name node is in .

weixin_44246850的博客 8759

使用Gromacs进行蛋白和配体小分子的动力学模拟+结果分析全流程教程

先选protein,选择non-water,使用pymol打开delWater.pdb,输入util.ss('all')展示cartoon,点击file-Export Moive as-MPEG。这一步完成后,文件夹中会出现以下三个文件,其中gro 文件用于记录蛋白的初始坐标,top 文件记录蛋白的拓扑信息和力场信息,itp 与top文件类似。接下来使用Spdbv软件打开蛋白,如果蛋白中存在原子缺失情况,就会出现以下的提示,如果不存在就不会显示,同时保存为rep.pdb。

weixin_46587777的博客 2854

Hive 数据库操作

hive 中数据库操作,包含hive启动,hive数据库创建、删除等

不忘初欣丶的博客 1112

WordPress主题开发实战:从零开始手把手教你创建自定义主题(含常用函数大全)

本文是一份WordPress主题开发实战指南,从零开始手把手教你创建自定义主题。内容涵盖主题核心文件结构、模板层级与循环机制、函数与钩子的运用,并附有详细的常用函数大全,帮助开发者彻底掌握主题开发的核心技能,实现从使用者到创造者的转变。

weixin_27943395的博客 256

从零到一:AnythingLLM与Ollama的本地知识库搭建实战

本文详细介绍了如何使用AnythingLLM与Ollama从零开始搭建本地知识库,涵盖技术选型、环境部署、系统配置及优化策略。通过RAG技术架构,实现安全高效的文档管理与智能问答,特别适合企业及个人构建私有化知识管理系统。

weixin_29079643的博客 562

Hive函数编程-数学运算

二、数学运算: 7 1. 加法操作: + 7 2. 减法操作: - 7 3. 乘法操作: * 8 4. 除法操作: / 8 5. 取余操作: % 8 6. 位与操作: & 9 7. 位或操作: | 9 8. 位异或操作: ^ 9 9.位取反操作: ~ 10 二、数学运算: 1. 加法操作: + 语法: A + B 操作类型:所有数值类型 说明:返回A与B相加

data_heng 6656

R语言基础之R语言入门

R语言最初是由新西兰奥克兰大学统计系的教授Ross Ihaka和Robert Gentleman在S语言基础上开发完成的。是一门解释性语言。在我看来R语言是一门数学性极强的语言,或者说这是一门为数学而生的语言,因为其具有极其出色的计算与统计分析能力...

weixin_46912400的博客 5万+

Hive基础03、Hive基本库使用

目录1、查看hive数据库2、进入Hive3、库操作登录MySQL数据库 密码【123456】 查看【hive】数据库 效果如下图: 注:【exit;】可以推出状态。 4、基本操作 简单居于练习:创建mytest数据库

红目香薰 2042

新手也能玩转!用Panosim+MATLAB/Simulink搭建你的第一个智能驾驶仿真场景(保姆级图文)

本文为新手提供了使用Panosim和MATLAB/Simulink搭建智能驾驶仿真场景的详细教程。从环境准备、基础场景创建到仿真模型构建,一步步指导用户完成第一个智能驾驶仿真项目,帮助零基础用户快速上手并体验智能驾驶仿真的乐趣。

weixin_29090089的博客 183

Photoshop实战技巧(9)——高效去除复杂水印的五种进阶方法

本文详细介绍了Photoshop中高效去除复杂水印的五种进阶方法,包括色阶通道爆破法、频率分离高阶应用、智能填充+手动修复组合拳等专业技巧。针对半透明水印、密集文字水印等复杂场景,提供分步操作指南和实战案例,帮助用户精准去除水印同时保留原始图像细节,大幅提升工作效率。

cake8的博客 961

【Hive】数仓概念介绍和Hive入门操作

数据仓库数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基 于它产出供分析挖掘的数据,或者数据应用需要的数据,如企业的分析性报告和各类报表 等。数据仓库是面向主题的数据仓库通过一个个主题域将多个业务系统的数据加载到一起,为了 各个主题(如:用户、订单、商品等)进行分析而建,操作型数据库是为了支撑各种业务而 建立。数据仓库会将不同源数据库中的数据汇总到一起数据仓库中的综合数据不能从原有的数据库 系统直接得到。

康师傅没有眼泪 980

31、Labview如何搭建程序框架?--状态机到数据采集等常用框架

本文废话不多,直接列举几种框架搭建方式,为了尽量向大家提供干货,本文直接从简介和手把手教搭建框架两方面来讲解,本文提到五种经典框架模式,学会这五种就很够了,分别是:状态机框架(State Machine)、生产者-消费者框架(Producer-Consumer)、主-从框架(Master-Slave)、事件驱动框架(Event-Driven)、分层架构(Layered Architecturep)。这个框架是基于状态机结构的。顾名思义“状态机”就是个“切换程序状态的机器”。本质是一个。

关注我,更多技术问题欢迎私聊~ 3103

Hive核心概念和基本操作

本文讨论hive的一些概念,内容包含个人的主观理解,作为笔记,并提供参考。 概述 Hive是一个基于Hadoop的数据仓库基础软件,或者说,Hive是一个基于Hadoop的软件,用来做数据仓库。 Hive的存储底层是HDFS,这就有效的利用了HDFS的诸多特性。Hive有一个元数据库,用来存储数据仓库信息和HDFS文件的映射。 Hive SQL是一种类SQL语言,最开始是对MapReduce的封装...

邢为栋 878

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

hive分区的概念以及操作方法

hadoop生态组件之hive hive处理的数据是存储在HDFS中 hive分析数据底层的默认实现是mapReduce 执行程序运行在Yarn上 在开启hive之前一定要先开启hdfs和yarn hive的分区概念: hive分区按照设置的分区字段,将一个大的数据集根据业务需要分割成小的数据集,在查询时通过WHERE子句中的表达式选择查询所需要指定的分区,这样的查询效率会提高很多。 分区的操作流程: 1.创建分区表(分区属性可以自定义,相当于在原表的基础上添加一个特殊标识的字段) create table

weixin_44122269的博客 693

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【大数据开发】Hive——Hive的概念、架构、安装Hive三种模式、Hive的基本操作day43

一、hive的概念 为什么有Hive Hive最初由FaceBook研发出来。由于每天产生的数据量大,使用MapReduce处理的效率比较低,而MapReduce的学习成本比较高,且类SQL的方法,工作效率比较高。Hive的入门简单。 Hive是什么 Hive是一个基于hadoop的数据仓库。可以通过类SQL的方式来对数据进行读、写等管理的功能。 Hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张书就可以表,并提供类SQL的查询功能 Hive的主要用途 用来做离线书籍

白色风车 648

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Hive 视图概念与常用操作

Hive视图(View)是基于一个或多个表的查询结果创建的虚拟表。视图本身不存储数据,而是存储查询定义。你可以像操作普通表一样查询视图,但底层的数据仍然存储在原始表中。视图的主要用途包括简化复杂查询、提高查询的可读性和重用查询逻辑。

weixin_66092125的博客 443

hive数据库概念和基本操作

hive数据库:概念:hive中的数据库本质上仅仅是表的一个目录或命名空间。对于具有很多用户和组的大集群而言,这种方式可以避免表的命名冲突。通常会使用数据库来将生产表组织成逻辑组。示例:本地模式配置了数据库的统一存放目录为~/hive/warehouse,那么创建的所有数据库都存在该目录下,以.db结尾:learn_hadoop@linux-hr0n:~> ls ~/hive/warehou...

u011376563的博客 2147

Hive基本概念及操作

1.三种部署方式: 1)内嵌模式 元数据服务和HIve服务运行在一个JVM中,同时使用内嵌的Derby数据库作为元数据存储,只能支持同时最多一个用户打开Hive会话。   2)本地模式 Hive服务和元数据服务运行在一个JVM中,采用外置的MySQL作为元数据存储。支持多用户同时访问Hive   3)远程模式 元数据服务和Hive服务运行在不同的JVM中,这样做

Binder~的博客 1152

mysql分片分桶_Hive中分区和分桶的概念和操作

在使用传统的RDBMS数据库(关系数据库),例如MySql时,对于一些大表,我们通常会进行分表操作,以提升查询效率。在Hive中也提供了类似的概念和操作,本文将对其进行讲述。RDBMS中的分表操作假设有一张订单表OrderInfo,简化一下,字段分别为:订单Id OrderId、卖家 Retailer、买家 Customer、订单金额 OrderAmount、下单日期 OrderDate。比较常见...

weixin_32108979的博客 1275

About Hive相关概念及HiveQL操作

博文目录Hive Testhive -e ''hive 表(分区和桶)hive 数据导入Hive 表的丢弃Hive 查询数据Hive 视图 Hive Test hive -e ‘’ [root@bdpdatanode01 ~]# hive -e 'select count(1) from prod_bdw.dwd_calendar' [root@bdpdatanode01 ~]# hive -S ...

你的世界是你创造的结果 392

【大数据day17】——Hive数据仓库(数据库与数据仓库的区别,Hive 的基本概念, Hive 的安装, Hive 的安装,Hive 的基本操作1)

数据仓库-Hive 1. 数据仓库 1.1. 基本概念 英文名称为Data Warehouse,可简写为DW或DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。 数据仓库是存数据的,企业的各种数据往里面存,主要目的是为了分析有效数据,后续会基于它产出供分析挖掘的数据,或者数据应用需要的数据,如企业的分析性报告和各类报表等。 可以理解为:面向分析的存储系统。 1.2. 主要特征 数据仓库是面向主题的(Subject-Oriented )、集成的(In

qq_38454176的博客 1087

Hive中关于分区表的概念理解以及相关操作解释

网上有篇关于hive的partition的使用讲解的比较好,转载了: 一、背景 1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。 2、分区表指的是在创建表时指定的partition的分区空间。 3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned ...

Running-小猛的博客 1340

hadoop12--hive的概念, 配置,基本操作

文章目录hivehive的基本概念hive的基本操作数据库的操作数据表的操作管理表与外部表的区别hive常用交互命令hive常见属性配置创建自定义配置文件的步骤配置查询信息的显示(头信息)配置hive的日志信息参数的配置方式hive数据类型DDL数据定义1. 创建数据库,创建的数据库存储在 HDFS 上的默认路径是/user/hive/warehouse/*.db2. 删除数据库 以下官网提供...

大数据开发工程师 619

Hive 索引概念与常用操作

在Hive中,索引(Index)是一种用于加速查询性能的机制。通过创建索引,可以减少全表扫描的次数,从而提高查询效率。索引在大数据集上尤其有用,因为它们可以显著减少查询时间。需要注意的是,Hive的索引功能在某些情况下可能并不如传统关系数据库那样高效,因此在使用索引时需要进行性能评估。

weixin_66092125的博客 713

hive的分区表概念以及修改操作

一、 静态分区 单个分区 a. 创建分区表 : `create table par_tab(name string,nation string) partitioned by(gender string) row format delimited fields terminated by ',';` b. 加载数据:`load data local inpath '/home/hduser/software/hive_1.2.1/hive_data/test1.txt' into table

qq_45450889的博客 1153
上一篇: nodejs安装和环境变量配置
xiaochen_bigdata
博客等级 码龄5年 11粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值