4-hive 表概念
1. 概述
Hive 的表分为 外部表 和 托管表
HIVE 的表在逻辑上由 存储的数据 和 描述表中数据类型的相关元数据 组成。
Hive 提供的不同物理存储格式以及如何导入这些不同格式的数据。
加载操作就是文件系统中的 文件移动 或 重命名, 因此他的执行速度更快。
说明
- 在Hive 中创建表时, 默认情况下 Hive 负责管理数据, 这意味着 Hive 把数据移到它的 "目录仓库中"。
- 另一种选择是创建一个 "外部表" , 这会让 Hive 到仓库目录以外位置访问数据。
2. 托管表
- 创建一个托管表
直接使用 create 语句创建表,创建的便是托管表
hive> CREATE TABLE pin_table (context STRING);
OK
Time taken: 1.182 secondshive> show tables;
OK
pin_table
Time taken: 0.091 seconds, Fetched: 1 row(s)
- 上传文件 到 hdfs 中:
$ hadoop fs -put ./pinyin input/$ hadoop fs -ls input/
Found 1 items
-rw-r--r-- 1 saligia saligia 2185 2016-10-24 10:56 input/pinyin
- 将文件信息导入到托管表中
使用load data 将数据从 hdfs 中导入到 hive 表中相当于执行 mv 操作.
> LOAD DATA INPATH "/user/saligia/input/pinyin" INTO TABLE pin_table;
Loading data to table default.pin_table
Table default.pin_table stats: [numFiles=1, totalSize=2185]
OK
Time taken: 1.16 seconds
hive> select * from pin_table;
- 查看 hdfs 中的文件已经不存在
$ hadoop fs -ls input/
- 托管表的删除:
hive> DROP TABLE pin_table;
OK
Time taken: 2.945 seconds删除表, 包括它的元数据和数据, 会一起被删除。
说明:
最初的 LOAD 是一个移动操作, 而 DROP 是一个删除操作, 所以数据会彻底消失。
- ## 外部表:
创建外部表与托管表的区别就是在创建外部表时指定在hdfs上的存储位置。
3.1 外联 hdfs :
- 创建外部表
hive> CREATE EXTERNAL TABLE ex_pin_table(context STRING) LOCATION '/user/saligia/external/ex_pin_table';
-- 创建外部表指定外部数据的位置。$ hadoop fs -ls external/;
Found 1 items
drwxr-xr-x - EVA saligia 0 2016-10-24 11:30 external/ex_pin_table
$ hadoop fs -ls /user/saligia/external/ex_pin_table
-- 刚创建是外部表的位置为空
- 向外部表中插入数据
hive> LOAD DATA INPATH '/user/saligia/input/pinyin' INTO TABLE ex_pin_table;# hadoop fs -ls /user/saligia/external/ex_pin_table
Found 1 items
-rwxr-xr-x 1 saligia saligia 1847 2016-10-24 12:49 /user/saligia/external/ex_pin_table/pinyin
-- 加载动作将数据移动到指定的数据位置处。
- 删除外部表
hive> DROP TABLE ex_pin_table;
OK
Time taken: 0.091 seconds# hadoop fs -ls /user/saligia/external/ex_pin_table
Found 1 items
-rwxr-xr-x 1 saligia saligia 1847 2016-10-24 12:49 /user/saligia/external/ex_pin_table/pinyin
-- 删除外部表的动作并不删除元数据, 而是仅仅删除在 /user/hive/warehouse/下的目录文件。
3.2 外联 hbase:
hive (test)> create external table message (key string , context string)
> stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
> with serdeproperties ("hbase.columns.mapping"=":key,context:name")
> tblproperties ("hbase.table.name"="message");
说明:
1. eproperties 属性中指定的 :key,cf:qe,cf:qe 对中 cf 是列族名, qe 是列值。
2. 每个行键一行数据。
- 结果:
hive (test)> select * from message;
OK
message.key message.context
2013201311 jack
2013201312 ones
2013201313 thins
2013201314 lkmke
2013201315 jimes
2013201316 jkdas
2013201317 klads
2013201318 salid
2013201319 ldsae
2013201320 winer
2013201321 limkd
hive 表的位置:
创建托管表时, 数据的元数据和数据位置在 /user/hive/warehouse/ 目录下的以表名为目录的文件中。
对于外部表, 数据的元数据位置与 托管表相同, 而数据是在 由创建表时的 LOCATION 所指定的目录中。
4-hive 表概念相关推荐
- Hive 的概念、应用场景、安装部署及使用、数据存储 、table(内部表)和external table(外部表)、partition(分区表)和bucket(分桶表)
目录 1.Hive 的概念 2.Hive 的特点 3.Hive 和 RDBMS(关系型数据库) 的对比 4.Hive 和 HBase 的差别 5.Hive 架构 6.Hive安装与使用方法介绍 7.H ...
- 2021年大数据Hive(一):Hive基本概念
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 历史文章 前言 Hive基本概念 一.Hive介绍 1.什么是Hive 2.为什么使 ...
- 将服务器文件加载至hive表中,Hive入门到剖析(四)
10 Hive体系架构 10.1概念 用户接口:用户访问Hive的入口 元数据:Hive的用户信息与表的MetaData 解释器:分析翻译HQL的组件 编译器:编译HQL的组件 优化器:优化HQL的组 ...
- hive表ddl导出_Flink 1.11 与 Hive 批流一体数仓实践
简介:Flink 从 1.9.0 开始提供与 Hive 集成的功能,随着几个版本的迭代,在最新的 Flink 1.11 中,与 Hive 集成的功能进一步深化,并且开始尝试将流计算场景与Hive 进行 ...
- Hive学习之路(二):Hive表操作详讲
操作内容简介 一.操作前的准备 二.Hive表操作详讲 1. 创建数据库 2. 查看所有数据库/表 3. 在Hive上直接操作HDFS 4. 在Hive上直接执行终端命令 5. 创建数据表/查看表的信 ...
- 理解Hive表(Hive Table)
Hive表逻辑上有表的数据和相关的元数据组成.元数据描述表的结构,索引等信息.数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统.元数据则存在关 ...
- Hive表的定义,删除、修改
Hive表的定义.删除 创建表 只涉及简单的建表,不涉及分区等复杂操作. 1. 建表语句 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db ...
- spark读取hive表异常,处理WARN HiveExternalCatalog: The table schema given by Hive metastore
文章目录 1 问题概述 1.1 数据库表状况 1.2 问题背景 2 报错场景 2.1 修改Hive元数据信息 2.2 报错信息 2.3 其他现象 2.4 查看表结构时的发现 2.5 报错分析 2.6 ...
- 数据仓库和hive的概念
一.数据仓库概念 1.1 数据仓库的基本概念 数据仓库的英文名称为Data Warehouse,可简写为DW或DWH. 数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decisio ...
- 【原创】大叔经验分享(65)spark读取不到hive表
spark 2.4.3 spark读取hive表,步骤: 1)hive-site.xml hive-site.xml放到$SPARK_HOME/conf下 2)enableHiveSupport Sp ...
最新文章
- JAVA Calendar方法详解
- web项目导入变java项目_eclipse导入web项目变成java项目解决办法
- 单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...
- 突袭HTML5之WebSocket入门3 - 通信模型socket.io
- 分享B2B信息发布小技巧
- linux安装软件报错:有未能满足的依赖关系
- python三个数求和_Python:list是否包含3个连续的整数,总和为7...
- jQuery 利用 $.getJson() 实现跨域
- JVM调优日志解析分析
- classpath目录
- Vue.js 2.5 发布,而这个会玩的团队已经自研出用 Vue 开发小程序的框架了
- 软件工程——结构化分析习题
- EPLAN教程——工具栏详解(1)自定义工具栏
- Tomcat NIO、APR 对比
- php省市区地址匹配,PHP简单实现正则匹配省市区的方法讲解
- python空间点赞_用Python登录好友QQ空间点赞
- OFD文件怎么打开?OFD免费转PDF?
- 在oracle中imp是什么意思,Oracle中的Imp和Expt用法
- MMKV的原理与实现(一)
- Jquery全选系列操作(锋利的jQuery)