『软件架构』中的表分为内部表、外部表、分区表和 Bucket 表,Hive
Hive的元数据存储在RDBMS中 , 除元数据外的其它所有数据都基于HDFS存储 。 默认情况下 , Hive元数据保存在内嵌的Derby数据库中 , 只能允许一个会话连接 , 只适合简单的测试 。 实际生产环境中不适用 , 为了支持多用户会话 , 则需要一个独立的元数据库 , 使用MySQL作为元数据库 , Hive内部对MySQL提供了很好的支持 。
获取更多Hadoop、HDFS、HBase、MapReduce、YARN、Hive等等技术内容 , 可访问下面的Hadoop大数据技术专栏 。
文章图片
Hive中的表分为内部表、外部表、分区表和Bucket表 。 内部表和外部表的区别:
删除内部表 , 删除表元数据和数据 。
删除外部表 , 删除元数据 , 不删除数据 。 内部表和外部表的使用选择:
大多数情况 , 它们的区别不明显 , 如果数据的所有处理都在Hive中进行 , 那么倾向于选择内部表 , 但是如果Hive和其他工具要针对相同的数据集进行处理 , 外部表更合适 。
使用外部表访问存储在HDFS上的初始数据 , 然后通过Hive转换数据并存到内部表中 。
使用外部表的场景是针对一个数据集有多个不同的Schema 。
通过外部表和内部表的区别和使用选择的对比可以看出来 , hive其实仅仅只是对存储在HDFS上的数据提供了一种新的抽象 。 而不是管理存储在HDFS上的数据 。 所以不管创建内部表还是外部表 , 都可以对hive表的数据存储目录中的数据进行增删操作 。
分区表和分桶表的区别:
Hive数据表可以根据某些字段进行分区操作 , 细化数据管理 , 可以让部分查询更快 。 同时表和分区也可以进一步被划分为Buckets , 分桶表的原理和MapReduce编程中的HashPartitioner的原理类似 。
文章图片
【『软件架构』中的表分为内部表、外部表、分区表和 Bucket 表,Hive】分区和分桶都是细化数据管理 , 但是分区表是手动添加区分 , 由于Hive是读模式 , 所以对添加进分区的数据不做模式校验 , 分桶表中的数据是按照某些分桶字段进行hash散列形成的多个文件 , 所以数据的准确性也高很多 。
文章图片
- 一片唱衰的魅族17系列,还有希望吗?
- 娱乐中的趣闻还在为生存所困扰吗?试试这些道具!,我的世界:星际探险新模式
- 娱乐中的趣闻“小黄鸭”爱吃草,谁站在了顶端,我的世界:星际探险中的食物链
- 申耀的科技观察如何重塑现代基础架构?,后疫情时代
- 孤单中的寂魅族17和oppoACE2,哪个更好?
- 国际鲜闻谁是长三角区域上市城商行中的王者?
- 手机大魔王我于杀戮之中盛放,亦如黎明中的花朵——IQOO Neo3
- 科技数码迷论设计一加8第一,网友心中的国产高端排名:论系统小米10第一
- 科技数码迷网友心中的国产高端排名:论系统小米10第一,论设计一加8第一
- 绿色中国防务美俄看后直言很羡慕,坦克中的歼20?全球首款隐身坦克悄然亮相