我发现数据库通常有两种类型:传统的面向行的 RDBMS 或面向对象的数据库 (OODBMS)。然而,我记得在 90 年代中期,出现了一种新型的面向列的数据库。其中一些被称为 4GL,但我认为这个术语并没有被沿用下来。

我想知道的是以下内容:

  • 哪些面向列的数据库仍然存在?
  • 这些数据库的性能特点是什么?
  • 有没有开源的面向列的数据库?
  • 它们与哪些平台互操作(.NET、Java 等)
  • 您对他们的总体体验如何?

我记得使用过的两个面向列的数据库是 FAME 和 KDB。

有帮助吗?

解决方案

数据库 是一个开源的面向列的数据库系统,建模于 谷歌的大表.

其他提示

信息布赖特
它是一个面向列的MySQL引擎
您可以使用(几乎)所有 MySQL api/接口/工具,但它是面向列的。

它是开源的并且有免费版本。
非常适合仓储。我在 SQL Server 中有一个 10Gig 的事实表。Infobright 将其压缩至 15MB。

另请查看 Michael Stonebraker 的便利店:C-store(包括源代码和研究论文的链接)

这篇论文包含了关于面向列的数据库的精彩观点,应该可以回答您的大部分问题。

引用该论文,

"Most major DBMS vendors implement record-oriented 
storage systems, where the attributes of a record (or tuple) 
are placed contiguously in storage.  With this row store 
architecture, a single disk write suffices to push all of the 
fields of a single record out to disk.  Hence, high 
performance writes are achieved, and we call a DBMS 
with a row store architecture a write-optimized system.  

In contrast, systems oriented toward ad-hoc querying 
of large amounts of data should be read-optimized.  Data 
warehouses represent one class of read-optimized system,
in which periodically a bulk load of new data is 
performed, followed by a relatively long period of ad-hoc 
queries. Other read-mostly applications include customer 
relationship management (CRM) systems, electronic 
library card catalogs, and other ad-hoc inquiry systems.  In 
such environments, a column store architecture, in which 
the values for each single column (or attribute) are stored 
contiguously, should be more efficient.  This efficiency 
has been demonstrated in the warehouse marketplace by 
products like Sybase IQ [FREN95, SYBA04], Addamark  
[ADDA04], and KDB [KDB04]. In this paper, we discuss 
the design of a column store called C-Store that includes a 
number of novel features relative to existing systems."

赛贝斯智商 是我听说过的一个。

无限数据库 最近由 Calpont 发布了开源 (GPLv2)。它支持大多数 MySQL API,并以面向列的方式存储数据,并针对大规模分析处理进行了优化。

这是 wiki 中不同的面向列的 DBMS面向列的 DBMS 实现

Sybase IQ 是面向列的。当您创建表时,所有列都会自动索引,并且数据在列中得到很好的压缩。

这是一个不错的 OLAP 数据库(...数据仓库),但我不推荐将其用于任何类型的事务处理,因为它是为数据仓库操作而设计的。

至于性能特征,与标准 OLTP 数据库(例如 Sybase ASE)相比,对于大量数据,SELECT 非常快,但 INSERT / UPDATE / DELETE 非常慢。表锁定也与 OLTP 数据库有很大不同,因此在 MAIN 数据存储中工作时,需要针对写入操作(插入等)使用独占表锁定。

另外它支持T-SQL(Sybase版本)和Watcom SQL。

干杯,

凯文

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top