行式数据库与列式数据库的对比

⾏式数据库与列式数据库的对⽐
导语:随着⼤数据的发展,现在出现的列式存储和列式数据库。它与传统的⾏式数据库有很⼤区别的。
正⽂:
⾏式数据库是按照⾏存储的,⾏式数据库擅长随机读操作不适合⽤于⼤数据。像SQL server,Oracle,mysql等传统的是属于⾏式数据库范畴。
列式数据库从⼀开始就是⾯向⼤数据环境下数据仓库的数据分析⽽产⽣。
数据库以⾏、列的⼆维表的形式存储数据,但是却以⼀维字符串的⽅式存储,例如以下的⼀个表:
EmpId Lastname Firstname Salary
1Smith Joe40000
2Jones Mary50000
3Johnson Cathy44000
这个简单的表包括员⼯代码(EmpId), 姓名字段(Lastname and Firstname)及⼯资(Salary).
这个表存储在电脑的内存(RAM)和存储(硬盘)中。虽然内存和硬盘在机制上不同,电脑的操作系统是以同样的⽅式存储的。数据库必须把这个⼆维表存储在⼀系列⼀维的“字节”中,由操作系统写到内存或硬盘中。
混凝土隧道湿喷机⾏式数据库把⼀⾏中的数据值串在⼀起存储起来,然后再存储下⼀⾏的数据,以此类推。
1,Smith,Joe,40000;2,Jones,Mary,50000;3,Johnson,Cathy,44000;
列式数据库把⼀列中的数据值串在⼀起存储起来,然后再存储下⼀列的数据,以此类推。
1,2,3;Smith,Jones,Johnson;Joe,Mary,Cathy;40000,50000,44000; 这是⼀个简化的说法。mesh设备
列式数据库的代表包括:Sybase IQ,infobright、infiniDB、GBase 8a,ParAccel, Sand/DNA Analytics和 Vertica。
MPP的列存储数据仓库包括:Yonghong Z-DataMart。
怎样自制橡皮---------------------------------------------------
---------------------------------------------------
通常⾏式数据库的给出的优化⽅案是加“索引”,给表分区等等之类的.
列式数据库的优缺点:
优点:
极⾼的装载速度(最⾼可以等于所有硬盘IO 的总和,基本是极限了)分集接收
适合⼤量的数据⽽不是⼩数据
实时加载数据仅限于增加(删除和更新需要解压缩Block 然后计算然后重新压缩储存)
⾼效的压缩率,不仅节省储存空间也节省计算内存和CPU。
瓜子烘干机⾮常适合做聚合操作。
缺点:
不适合扫描⼩量数据
不适合随机的更新
批量更新情况各异,有的优化的⽐较好的列式数据库(⽐如Vertica)表现⽐较好,有些没有针对更新的数据库表现⽐较差。
不适合做含有删除和更新的实时操作。
补充列式数据库的压缩:
刚才其实跳过了资料⾥提到的另⼀种技术:通过字典表压缩数据。为了⽅⾯后⾯的讲解,这部分也顺带提⼀下了。
下⾯中才是那张表本来的样⼦。经过字典表进⾏数据压缩后,表中的字符串才都变成数字了。正因为每个字符串在字典表⾥只出现⼀次了,所以达到了压缩的⽬的(有点像规范化和⾮规范化Normalize和Denomalize)无边界网络
列式数据库由于其特殊的执⾏引擎,在数据中间过程运算的时候⼀般不需要解压数据⽽是以指针代替运算,直到最后需要输出完整的数据时。
⾏式数据库主要适合于在线交易性的OLTP应⽤,⽽列式数据库主要适合于海量静态数据的分析,⼀般应⽤于OLAP。但只是依靠OLTP还是OLAP来区分是采⽤⾏式数据库还是列式数据库,在很多时候还不是很明确,特别很多时候有些应⽤很难说是OLTP还是OLAP,例如对海量数据的查询。

本文发布于:2024-09-21 13:35:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/134561.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   数据   列式   适合   字典   节省   需要   内存
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议