整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

12.4.1读时模式vs.写时模式

hadoop 小红牛 169℃ 0评论

12.4Hive与传统数据库相比

Hive在很多方面和传统数据库类似(例如支持SQL接口),但是其底层对 HDFS和MapReduce的依赖意味着它的体系结构有别于传统数据库,而这 些区别又影响着Hive所支持的特性,进而影响着Hive的使用。

在传统数据库里,表的模式是在数据加载时强制确定的。如果在加载时发 现数据不符合模式,则拒绝加载数据。因为数据是在写入数据库时对照模 式进行检査,因此这一设计有时被称为“写时模式”(schema on write)。

在另一方面,Hive对数据的验证并不在加载数据时进行,而在査询时进 行。这称为“读时模式”(schema on read)。

用户需要在这两种方法之间进行权衡。读时模式可以使数据加载非常迅速。 这是因为它不需要读取数据,进行“解析”(parse),再进行序列化以数据
库内部格式存入磁盘。数据加载操作仅仅是文件复制或移动。这一方法 也更为灵活:试想,针对不同的分析任务,同一个数据可能会有两个模
式。Hive使用“外部表”(external table)时,这种情况是可能发生的,参见 12.6.1节对托管表和外部表的讨论。

写时模式有利于提升査询性能。因为数据库可以对列进行索引,并对数据 进行压缩。但是作为权衡,此时加载数据会花更多时间。此外,在很多加载时模式未知的情况下,因为査询尚未确定,因此不能决定使用何种索 引。这些情况正是Hive “长袖善舞”的地方。

转载请注明:全栈大数据 » 12.4.1读时模式vs.写时模式

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址