Hive读时模式和写时模式的区别是什么?
前言
本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系
正文
模式( schema )指的是数据库的表结构,即数据表中包含的列以及相应的数据类型。
在传统数据库中,数据在导入表的时候就会验证模式,只有在模式符合时才能成功导入。
这种在数据写入时验证模式的方式称为写时模式( schema on write )。
Hive 采取的是另一种方式,即在数据导入时并不验证模式,而只在査询时才验证,称为读时模式( schema on read )这两种方式各有利弊。
读时模式
读时模式在数据导入时,不需要将输入数据进行读取、解析以及序列化成数据库的内部存储格式。
整个数据导入过程只是将数据文件复制或移动到指定位置。
同时,读时模式也更灵活,对于同一个数据文件,可以施加多种不同的模式,用于不同的分析任务。
Hive 中的外部表即支持这一特性。
写时模式
而写时模式的数据查询效率较高,因为数据库可以在一些列上做索引,并在数据存储格式上做优化。
然而,写时模式的缺点是数据导入的时间较长。
Hive读时模式和写时模式的区别是什么?相关推荐
- 写时复制,写时拷贝,写时分裂,Copy on write
2019独角兽企业重金招聘Python工程师标准>>> 写时复制,写时拷贝,写时分裂 (Copy-on-write,简称COW)是计算机资源管理方面的一种优化技术,有着广泛的应用,比 ...
- linux 进程0 写时复制,linux 写时复制 COW 过程梳理
最后一次谈到缺页,是在一年多以前,http://blog..net/chenyu105/article/details/7061845 那时结个了草率的尾,定格在了handle_pte_fault,留 ...
- String封装——读时共享,写时复制
碰到过一位一直怀疑C++标准库(STL)效率的人,他说STL效率太低,企业开发根本不会用.我是持反对意见的. 说这话的人,肯定没有做过大量的调查.没有调查就没有发言权. STL的效率是不低的,足够满足 ...
- 进程共享(读时共享写时复制)
父子进程之间在刚fork后.父子相同处: 全局变量..data..bbs..text.栈.堆.环境变量.用户ID.宿主目录(进程用户家目录).进程工作目录.信号处理方式等等,即0~3G的用户空间是完全 ...
- 实战并发编程 - 05等效不可变对象CopyOnWriteArrayList适用场景剖析_写时复制COW
文章目录 Pre 等效不可变对象 实例变量array就是一个等效不可变对象? 写时复制机制 写时复制的目的 优点 缺点 CopyOnWriteArrayList的使用场景 小结 Pre 本篇文章我们分 ...
- php zval_copy_static_var(),zval _ 引用计数 _ 变量分离 _ 写时拷贝
zval.引用计数.变量分离.写时拷贝 我们一步步来理解 1.php语言特性 PHP是脚本语言,所谓脚本语言,就是说PHP并不是独立运行的,要运行PHP代码需要PHP解析器,用户编写的PHP代码最终都 ...
- Linux fork()函数底层CopyOnWrite写时复制实现原理剖析
创建子进程的速度应该是怎么样的? 如果父进程是redis,内存数据比如说有10G,需要考虑的有两个点: ①速度如何 ②内存空间够不够 在Linux中有个系统调用--fork(): ①速度:快 ②空间: ...
- 有用的Copy-On-write,写时复制
写时复制和写时拷贝是一个意思 写时复制是一种策略,并不是Linux独有的,如果你正在设计某个系统架构,也可以参考这种思想. 写时复制的英文解释如下 Copy-on-write (sometimes r ...
- QTL 容器 与 STL(1)- 写时复制
QTL 与 STL 最大的区别之一 隐式共享,引用计数,写时复制 [注]STL 的 string 也具有 写时复制 技术 写时复制 (Copy-On-Write)技术,就是编程界"懒惰行为& ...
- 写时拷贝技术(COW)
文章目录 写时拷贝技术 写时拷贝技术原理 举个例子 写时拷贝技术 写时拷贝技术实际上是一种拖延战术,是为了提高效率而产生的技术,这怎么提高效率呢?实际上就是在需要开辟空间时,假装开了空间,实际上用 ...
最新文章
- 编译器设计-代码生成
- struts2笔记01-环境搭建
- Android系统默认Home应用程序(Launcher)的启动过程源代码分析
- android BiConsumer 使用 ClassNotDefException
- php中的__autoload()函数
- oracle查看执行最慢与查询次数最多的sql语句
- 使用RMAN备份数据库和归档日志合二为一
- HDU1171-Big Event in HDU
- 几种主流的分布式定时任务
- 智方8000系房地产进销存管理系统 v4.30 官网
- Excel中怎么查找重复值
- 安卓机顶盒安装软件教程
- BZOJ1864: [Zjoi2006]三色二叉树
- 关于华为鸿蒙创新的作文,关于创新的高中作文4篇
- [Unity][NGUI]Sprite精灵的Type九宫格切割Sliced没效果
- knn matting matlab,一键抠图,毛发毕现:这个GitHub项目助你快速PS
- 全国计算机等级三级网络技术试卷详解(三)
- 网络安全检测与防范 测试题(二)
- QNX虚拟环境三 (内存 设备 调度 )
- sdkman 管理开发中使用的sdk
热门文章
- 计算机标准红色,标准红色cmyk值
- 区块链大本营专访 | MiiX全球技术开发者超级大赛,36小时,3支获胜队伍有哪些不一样的感受?
- Segment Tree Beats(吉司机线段树)
- word中没文字地方添加下划线方法
- Stata: 快速呈现常用分布临界值表
- win10计算机用户名和密码怎么找到,win10怎么查看wifi账号密码_win10电脑怎么看wifi密码...
- 《人间告白》---我看万物像你,我看你像万物
- 《全职高手》的全部职业和职业技能(最新版)
- linux目录权限为rws,Linux-文件权限
- 二项分布的特征函数及期望与方差 - 随机过程