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 是一个删除操作, 所以数据会彻底消失。
  1. ## 外部表:

创建外部表与托管表的区别就是在创建外部表时指定在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 表概念相关推荐

  1. Hive 的概念、应用场景、安装部署及使用、数据存储 、table(内部表)和external table(外部表)、partition(分区表)和bucket(分桶表)

    目录 1.Hive 的概念 2.Hive 的特点 3.Hive 和 RDBMS(关系型数据库) 的对比 4.Hive 和 HBase 的差别 5.Hive 架构 6.Hive安装与使用方法介绍 7.H ...

  2. 2021年大数据Hive(一):​​​​​​​Hive基本概念

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 历史文章 前言 Hive基本概念 一.Hive介绍 1.什么是Hive 2.为什么使 ...

  3. 将服务器文件加载至hive表中,Hive入门到剖析(四)

    10 Hive体系架构 10.1概念 用户接口:用户访问Hive的入口 元数据:Hive的用户信息与表的MetaData 解释器:分析翻译HQL的组件 编译器:编译HQL的组件 优化器:优化HQL的组 ...

  4. hive表ddl导出_Flink 1.11 与 Hive 批流一体数仓实践

    简介:Flink 从 1.9.0 开始提供与 Hive 集成的功能,随着几个版本的迭代,在最新的 Flink 1.11 中,与 Hive 集成的功能进一步深化,并且开始尝试将流计算场景与Hive 进行 ...

  5. Hive学习之路(二):Hive表操作详讲

    操作内容简介 一.操作前的准备 二.Hive表操作详讲 1. 创建数据库 2. 查看所有数据库/表 3. 在Hive上直接操作HDFS 4. 在Hive上直接执行终端命令 5. 创建数据表/查看表的信 ...

  6. 理解Hive表(Hive Table)

    Hive表逻辑上有表的数据和相关的元数据组成.元数据描述表的结构,索引等信息.数据通常存放在HDFS中,虽然任意的Hadoop文件系统都能支持,例如Amazon的S3或者而本地文件系统.元数据则存在关 ...

  7. Hive表的定义,删除、修改

    Hive表的定义.删除 创建表 只涉及简单的建表,不涉及分区等复杂操作. 1. 建表语句 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db ...

  8. 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 ...

  9. 数据仓库和hive的概念

    一.数据仓库概念 1.1 数据仓库的基本概念 数据仓库的英文名称为Data Warehouse,可简写为DW或DWH. 数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decisio ...

  10. 【原创】大叔经验分享(65)spark读取不到hive表

    spark 2.4.3 spark读取hive表,步骤: 1)hive-site.xml hive-site.xml放到$SPARK_HOME/conf下 2)enableHiveSupport Sp ...

最新文章

  1. JAVA Calendar方法详解
  2. web项目导入变java项目_eclipse导入web项目变成java项目解决办法
  3. 单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...
  4. 突袭HTML5之WebSocket入门3 - 通信模型socket.io
  5. 分享B2B信息发布小技巧
  6. linux安装软件报错:有未能满足的依赖关系
  7. python三个数求和_Python:list是否包含3个连续的整数,总和为7...
  8. jQuery 利用 $.getJson() 实现跨域
  9. JVM调优日志解析分析
  10. classpath目录
  11. Vue.js 2.5 发布,而这个会玩的团队已经自研出用 Vue 开发小程序的框架了
  12. 软件工程——结构化分析习题
  13. EPLAN教程——工具栏详解(1)自定义工具栏
  14. Tomcat NIO、APR 对比
  15. php省市区地址匹配,PHP简单实现正则匹配省市区的方法讲解
  16. python空间点赞_用Python登录好友QQ空间点赞
  17. OFD文件怎么打开?OFD免费转PDF?
  18. 在oracle中imp是什么意思,Oracle中的Imp和Expt用法
  19. MMKV的原理与实现(一)
  20. Jquery全选系列操作(锋利的jQuery)

热门文章

  1. 国产android系统,最干净的国产安卓7.0系统,体验还不错
  2. 在ARM板子上把玩Tensorflow Lite
  3. Linux下的mysql ,1142 问题总结
  4. Linux Snap 命令
  5. C语言后缀.h文件和.c文件作用和区别
  6. 怎么禁用笔记本触摸板
  7. python怎么做图表好看_如何制作有趣好看的数据可视化图表?
  8. PCB多种特殊走线画法与技巧
  9. java set list map_Java中的Set,List,Map
  10. QT状态栏(statusbar)用法