面向列的数据库的建议

时间:2008-11-26 16:20:10

标签: database column-oriented

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

我想知道的是:

  • 哪些列式数据库仍然存在?
  • 这些数据库的性能特征是什么?
  • 是否有任何面向开源列的数据库?
  • 他们与(.NET,Java等)互操作的平台
  • 您对他们的一般经历是什么?

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

7 个答案:

答案 0 :(得分:7)

HBase是一个以Google's BigTable为模型的面向开源列的数据库系统。

答案 1 :(得分:7)

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

它是开源的,有免费版本 这对仓储非常有利。我在SQL server中有一个10Gig事实表。 Infobright压缩到15MB。

答案 2 :(得分:4)

另请查看Michael Stonebraker的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 :(得分:3)

Sybase IQ是我听说过的。

答案 4 :(得分:3)

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

答案 5 :(得分:2)

这是面向DBMS wiki的不同列 Column-Oriented DBMS Implementations

答案 6 :(得分:1)

Sybase IQ是面向列的。创建表时会自动为所有列编制索引,并且在列中精确压缩数据。

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

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

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

干杯,

凯文

相关问题