Hive表基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive表基础相关的知识,希望对你有一定的参考价值。

参考技术A

HDFS存元数据地址
/home/softwares/hadoop-2.6.1/dfs/data/current/BP-1499552349-192.168.31.160-1574884211184/current/finalized/subdir0/subdir0

导入本地数据:load data local inpath \'/path/\' into table XX; = hadoop fs -put filepath /hadooppath/XX

HDFS上的数据交互:load data inpath \'hadooppath\' into table XX; 修改namendoe元数据信息

分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。
Hive 中的分区就是分目录,把一个大的数据集根据业务需要(时间)分割成小的数据集。
在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。
谓词下推:先走个数据过滤(WHERE)

语法

分区 将month作为一个单独的列
加载数据到分区表

hdfs直接上传
hadoop fs -put /home/data/dept.txt /user/hive/warehouse/dept_partition/month=2019-08

增加分区:分区与分区之间是空格
alter table XX add partition(month=\'2019-08\');

alter table dept_partition add partition(month=\'2019-08\') partition(month=\'2018-06\'); //多个也ok

查询,过滤数据使用

1.上传数据后修复

2.上传数据后添加分区(常用)

3.load

replace会替换表中所有列,需写全字段

load data:表示加载数据
local:表示从本地加载数据到 hive 表;否则从HDFS 加载数据到 hive 表
inpath:表示加载数据的路径
overwrite:表示覆盖表中已有数据,否则表示追加
into table:表示加载到哪张表
student:表示具体的表
partition:表示上传到指定分区

insert:将表中数据导出到本地或者hdfs
local为本地路径,不加local为hdfs

hadoop命令导出到本地

export 与 import

清除表中数据truncate
Truncate 只能删除管理表,不能删除外部表中数据

以上是关于Hive表基础的主要内容,如果未能解决你的问题,请参考以下文章

Hive基础知识

hive学习-----基础语句

Hive基础知识 03

hive建表基础知识

Hive基础知识

Hive基础知识 02