2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:133046
用户头像

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

关注

评论

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

SAP云平台里Global Account和Sub Account的关系

汪子熙

Cloud SAP CloudFoundry 11月日更

软件测试高效学习方法

程序员阿沐

学习方法 程序员 互联网 软件测试 计算机

构建数据网格分布式架构的四项原则

俞凡

架构 数据

架构实战营-设计消息队列存储消息数据的 MySQL 表格

Nullrable

架构实战

重置云服务器系统

坚果

云服务器 11月日更

思科基本网络连接与IOS的基本操作 「网络工程师之路」

Regan Yue

网络工程师 11月日更 思科 网络工程

记录渗透靶场实战【网络安全】

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

架构实战营-模块三

瓜子葫芦侠

「架构实战营」

【死磕Java并发】—–深入分析volatile的实现原理

chenssy

11月日更 死磕 Java 死磕 Java 并发

绝佳的录屏编辑神器,一款走遍天下!!

淋雨

Camtasia

iOS开发:报错‘Unknown class ViewController in Interface Builder file’解决方法

三掌柜

11月日更

老友(研发岗)被裁后,想加盟小吃店,我用Python采集了一点数据,多少是个心意

梦想橡皮擦

11月日更

程序员你所害怕的中年危机,恰恰是人生的转机!,kotlin高阶函数源码讲解

android 程序员 移动开发

值得收藏的 Eureka 控制台详解

悟空聊架构

Eureka 源码解析 注册中心 悟空聊架构 11月日更

架构实战营-模块6作业

Nullrable

架构实战营

Vue进阶(幺陆柒):Vue 项目调试技能

No Silver Bullet

Vue 11月日更

rabbitmq简介

小鲍侃java

11月日更

程序员别只顾着敲代码了,老板们不喜欢聘请40岁程序员真相原来是

android 程序员 移动开发

《Linux一学就会》第一章第二节:学习环境搭建

侠盗安全

Linux linux运维 云计算架构师 linux电子书

Redis 高可用篇:图解 Redis 哨兵集群原理

码哥字节

redis redis sentinel NoSQL 数据库 11月日更

前端开发工具之Mock.js

Augus

11月日更

thanos-io/thanos-CONTRIBUTING.md

卓丁

Prometheus Thanos thanos.io Contributing github Contributing

【设计模式】第十二篇 - 桥接模式 - 露娜的召唤师技能

Brave

设计模式 桥接模式 11月日更

MacBook 搭建VUE3开发环境

IT蜗壳-Tango

11月日更

与德勤论道企业数字化战略到落地

大咖说

云计算 数字化转型 数字化 企业上云 阿里云;

【Flutter 专题】17 图解 ListView 下拉刷新与上拉加载 (二)【NotificationListener】

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

使用Eclipse开发Java应用并部署到SAP云平台SCP上去

汪子熙

Cloud SAP 11月日更 sap开发

如何提升口头表达能力?

石云升

表达 11月日更

【高并发】明明中断了线程,却为何不起作用呢?

冰河

并发编程 多线程 高并发 异步编程 Java Concurrency

Groovy中的元组

FunTester

测试开发 元组 Groovy FunTester tuple

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