AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

William McKnight 谈面向列的数据库

  • 2011-09-10
  • 本文字数:949 字

    阅读完需:约 3 分钟

对于某些业务用例而言,面向列的数据库(columnar database)可提供比传统的关系数据库管理系统(RDBMS)更好的数据存储能力。在不久前召开的 NoSQL Now 2011 大会上,William McKnight 针对面向列的数据库以及如何在某些数据存储需求下有效地利用它们进行了演讲

他说,使用RDBMS 作为解决方案(此类解决方案都是基于行方式设计的。)的数据查询会发送大量数据。数据输入/ 输出(I/O)已成为目前数据处理需求中的真正瓶颈,更好的情形是,当你在那儿的时候能获得更多数据。为了避免这个问题唯一要做的就是解决输入/ 输出瓶颈,这才是你真正需要做的事情。面向列的数据库提供按需挑列的能力,而不是先获取整行,当数据检索完成后其中多列(开销)又不用。在要求工作负载只占整列字节数很小百分比的使用情况下,面向列的数据库可提供更好的解决方案。

在面向列的数据库中,数据存储在所有列保持同一顺序的多列中。William 讨论了关系数据库记录的数据页面布局,并与列数据库表进行了比较。在这种行页设计(在RDBMS 数据库中)中存在一些开销,因为进行数据查询时会用到行扫描或索引扫描,而且让所有数据都参与其中可能是个昂贵的选择。他展示了一个数据查询实例,在基于行的数据库中完成此查询用了50 万次输入/ 输出,而在面向列的数据库中仅用了235 次输入/ 输出。

有许多不同的面向列的数据存储选项可供使用,例如,分解存储模型(Decomposed Storage Model)、位置表示法(Positional Representation)、改良的B 树/ 行长度加密(Modified B-Tree/Row Length Encryption)、以及位图(Bitmap)。他还谈到了物化(materialization)策略,其中包括“投影”功能(Function of ‘projection’)、早期和晚期物化(Early and Late Materialization)。

一些面向列的数据库厂商有 Vertica ParAccel Sybase IQ InfoBright 、Exasol、VectorWise,还有些开源产品,例如 MonetDB InfiniDB

William 说,基于关系行的数据仓库(data warehouse)和数据集市(data mart)将仍然存在。除了数据仓库和 Hadoop 之外,你将拥有以快得多的速度来处理数据的面向列的数据库。他在结束发言时说道,数据库设计者应该从良好的设计原则入手,然后决定你想把数据放在基于行还是基于列的解决方案中。

查看英文原文: William McKnight on Columnar Databases

2011-09-10 23:132794
用户头像

发布了 55 篇内容, 共 19.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

“消息驱动、事件驱动、流 ”基础概念解析

阿里巴巴云原生

阿里云 云原生 事件总线 EventBridge

JWTToken在线解析解码

入门小站

工具

如何做好高并发系统设计,我总结了三点

架构精进之路

架构 高并发 4月日更 4月月更

linux之systemctl命令

入门小站

Linux

毕业设计-设计电商秒杀系统

孙强

#架构实战营

Java基础19 IO基础

爱好编程进阶

程序员 后端开发

Github神作!2021Java秋招高级面试指南,吃透至少阿里P6

爱好编程进阶

程序员 后端开发

IDEA中Maven依赖下载失败解决方案

爱好编程进阶

Java 程序员 后端开发

Java中级面试题及答案整理(1)

爱好编程进阶

Java 程序员 后端开发

6面蚂蚁,面试官被窝唬住了,居然开了36K

爱好编程进阶

Java 程序员 后端开发

BAT大厂Java面试必备10道Spring问题,有你不知道的吗?

爱好编程进阶

Java 程序员 后端开发

Java并发JUC(java.util.concurrent)线程池

芝士味的椒盐

Java SE Java多线程 Java 线程

一文简述:何为分布式应用服务平台

穿过生命散发芬芳

4月月更

20多年的岁月里一路走来满是辜负与遗憾,从双非到阿里SP,收到offer的那天我哭惨了

爱好编程进阶

程序员 后端开发

Fluid — 云原生环境下的高效“数据物流系统

爱好编程进阶

Java 程序员 后端开发

JAVA 序列化、反序列化以及serialVersionUID

爱好编程进阶

Java 程序员 后端开发

在线Excel转HtmlTable工具

入门小站

工具

Ceph实战(二)-高可用集群部署

爱好编程进阶

程序员 后端开发

Docker(1)——CentOS7

爱好编程进阶

Java 程序员 后端开发

Java基础面试题——集合

爱好编程进阶

Java 程序员 后端开发

中国科技人,在残酷春天里翘首等待

脑极体

2021,你还在写“赤裸裸

爱好编程进阶

Java 程序员 后端开发

Java中级面试题及答案整理

爱好编程进阶

程序员 后端开发

35K成功入职:蚂蚁金服面试Java后端经历!

爱好编程进阶

Java 程序员 后端开发

6 网站性能测试

爱好编程进阶

Java 程序员 后端开发

Java如何支持函数式编程?

爱好编程进阶

Java 程序员 后端开发

Docker下多机器免密码SSH登录

爱好编程进阶

Java 程序员 后端开发

Elasticsearch聚合学习之三:范围限定

爱好编程进阶

Java 程序员 后端开发

从“打地鼠”到“造城池”,华为应用市场带来的安全隐私保护新范式

脑极体

DAYU200升级系统

坚果

4月月更

10个经典场景带你玩转SQL优化

爱好编程进阶

Java 程序员 后端开发

William McKnight谈面向列的数据库_DevOps & 平台工程_Srini Penchikala_InfoQ精选文章