2008-11-26 61 views
16

我发现数据库通常有两种风格,传统的面向行的RDBMS或面向对象的数据库(OODBMS)。但是,在我记得的90年代中期,一个新的数据库显示出了列向导。其中一些被赋予了术语4GL,但我不认为这是一个术语。对于面向列的数据库的建议

我想知道的是:

  • 什么面向列的数据库还存在吗?
  • 这些数据库的性能特点是什么?
  • 有没有开源的面向列的数据库?
  • 他们与哪些平台进行互操作(.NET,Java等)
  • 您与他们的一般经验是什么?

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

+3

我不认为4GL通常与'面向列的数据库'相关;它是第四代语言的参考,C语言和相关语言是第三代语言,4GL倾向于是“非程序性”或“非强制性”语言。 – 2008-11-26 17:42:11

回答

7

Infobright
这是一个面向列的MySQL引擎
可以使用(几乎)所有的MySQL的API /接口/工具,但它是面向列。

它是开源的,有一个免费版本。
这是非常好的仓储。我在SQL服务器中有一个10Gig事实表。 Infobright将其压缩到15MB。

1

Sybase IQ是面向列的。创建表格时,所有列都会自动建立索引,并且数据在列中被很好地压缩。

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

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

否则它支持T-SQL(Sybase版本)和Watcom SQL。

干杯,

凯文

4

还检查了迈克尔·斯通布雷克的C-STORE: C-store (includes links to source code and research paper)

本文包含面向列的数据库一个很好的观点,认为应该回答您的大多数问题。

引述的文件,

"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." 
3

InfiniDB是最近发布的开源(GPL第二版)由Calpont。它支持大多数MySQL API并以列为导向的方式存储数据,并针对大规模分析处理进行了优化。