前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

模式( schema )指的是数据库的表结构,即数据表中包含的列以及相应的数据类型。

在传统数据库中,数据在导入表的时候就会验证模式,只有在模式符合时才能成功导入。

这种在数据写入时验证模式的方式称为写时模式( schema on write )。

Hive 采取的是另一种方式,即在数据导入时并不验证模式,而只在査询时才验证,称为读时模式( schema on read )这两种方式各有利弊。

读时模式

读时模式在数据导入时,不需要将输入数据进行读取、解析以及序列化成数据库的内部存储格式。

整个数据导入过程只是将数据文件复制或移动到指定位置。

同时,读时模式也更灵活,对于同一个数据文件,可以施加多种不同的模式,用于不同的分析任务。

Hive 中的外部表即支持这一特性。

写时模式

而写时模式的数据查询效率较高,因为数据库可以在一些列上做索引,并在数据存储格式上做优化。

然而,写时模式的缺点是数据导入的时间较长。

Hive读时模式和写时模式的区别是什么?相关推荐

  1. 写时复制,写时拷贝,写时分裂,Copy on write

    2019独角兽企业重金招聘Python工程师标准>>> 写时复制,写时拷贝,写时分裂 (Copy-on-write,简称COW)是计算机资源管理方面的一种优化技术,有着广泛的应用,比 ...

  2. linux 进程0 写时复制,linux 写时复制 COW 过程梳理

    最后一次谈到缺页,是在一年多以前,http://blog..net/chenyu105/article/details/7061845 那时结个了草率的尾,定格在了handle_pte_fault,留 ...

  3. String封装——读时共享,写时复制

    碰到过一位一直怀疑C++标准库(STL)效率的人,他说STL效率太低,企业开发根本不会用.我是持反对意见的. 说这话的人,肯定没有做过大量的调查.没有调查就没有发言权. STL的效率是不低的,足够满足 ...

  4. 进程共享(读时共享写时复制)

    父子进程之间在刚fork后.父子相同处: 全局变量..data..bbs..text.栈.堆.环境变量.用户ID.宿主目录(进程用户家目录).进程工作目录.信号处理方式等等,即0~3G的用户空间是完全 ...

  5. 实战并发编程 - 05等效不可变对象CopyOnWriteArrayList适用场景剖析_写时复制COW

    文章目录 Pre 等效不可变对象 实例变量array就是一个等效不可变对象? 写时复制机制 写时复制的目的 优点 缺点 CopyOnWriteArrayList的使用场景 小结 Pre 本篇文章我们分 ...

  6. php zval_copy_static_var(),zval _ 引用计数 _ 变量分离 _ 写时拷贝

    zval.引用计数.变量分离.写时拷贝 我们一步步来理解 1.php语言特性 PHP是脚本语言,所谓脚本语言,就是说PHP并不是独立运行的,要运行PHP代码需要PHP解析器,用户编写的PHP代码最终都 ...

  7. Linux fork()函数底层CopyOnWrite写时复制实现原理剖析

    创建子进程的速度应该是怎么样的? 如果父进程是redis,内存数据比如说有10G,需要考虑的有两个点: ①速度如何 ②内存空间够不够 在Linux中有个系统调用--fork(): ①速度:快 ②空间: ...

  8. 有用的Copy-On-write,写时复制

    写时复制和写时拷贝是一个意思 写时复制是一种策略,并不是Linux独有的,如果你正在设计某个系统架构,也可以参考这种思想. 写时复制的英文解释如下 Copy-on-write (sometimes r ...

  9. QTL 容器 与 STL(1)- 写时复制

    QTL 与 STL 最大的区别之一 隐式共享,引用计数,写时复制 [注]STL 的 string 也具有 写时复制 技术 写时复制 (Copy-On-Write)技术,就是编程界"懒惰行为& ...

  10. 写时拷贝技术(COW)

    文章目录 写时拷贝技术 写时拷贝技术原理 举个例子 写时拷贝技术   写时拷贝技术实际上是一种拖延战术,是为了提高效率而产生的技术,这怎么提高效率呢?实际上就是在需要开辟空间时,假装开了空间,实际上用 ...

最新文章

  1. 编译器设计-代码生成
  2. struts2笔记01-环境搭建
  3. Android系统默认Home应用程序(Launcher)的启动过程源代码分析
  4. android BiConsumer 使用 ClassNotDefException
  5. php中的__autoload()函数
  6. oracle查看执行最慢与查询次数最多的sql语句
  7. 使用RMAN备份数据库和归档日志合二为一
  8. HDU1171-Big Event in HDU
  9. 几种主流的分布式定时任务
  10. 智方8000系房地产进销存管理系统 v4.30 官网
  11. Excel中怎么查找重复值
  12. 安卓机顶盒安装软件教程
  13. BZOJ1864: [Zjoi2006]三色二叉树
  14. 关于华为鸿蒙创新的作文,关于创新的高中作文4篇
  15. [Unity][NGUI]Sprite精灵的Type九宫格切割Sliced没效果
  16. knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
  17. 全国计算机等级三级网络技术试卷详解(三)
  18. 网络安全检测与防范 测试题(二)
  19. QNX虚拟环境三 (内存 设备 调度 )
  20. sdkman 管理开发中使用的sdk

热门文章

  1. 计算机标准红色,标准红色cmyk值
  2. 区块链大本营专访 | MiiX全球技术开发者超级大赛,36小时,3支获胜队伍有哪些不一样的感受?
  3. Segment Tree Beats(吉司机线段树)
  4. word中没文字地方添加下划线方法
  5. Stata: 快速呈现常用分布临界值表
  6. win10计算机用户名和密码怎么找到,win10怎么查看wifi账号密码_win10电脑怎么看wifi密码...
  7. 《人间告白》---我看万物像你,我看你像万物
  8. 《全职高手》的全部职业和职业技能(最新版)
  9. linux目录权限为rws,Linux-文件权限
  10. 二项分布的特征函数及期望与方差 - 随机过程