题
我发现数据库通常有两种类型:传统的面向行的 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。
干杯,
凯文