2013-03-04 44 views
0

我有一个关于数据仓库和列式数据库的问题。在我的项目中,该公司在Visual Studio SQL服务器中使用仓库解决方案,在查询大量数据的复杂问题时,他们遇到了性能问题。我想尝试用基于列的数据库替换数据库。我知道您可以将面向行的数据库“转换”为基于更多列的数据库,或使用开放源代码数据库(如Vertica或Sybase IQ),我只是想知道它如何适合仓库?您是否需要在仓库中拥有明星连接模式,或者您是否可以使用柱状模式,我意识到这是一个愚蠢的问题,但我只是在开始探索不同的数据库和解决方案之前试图理解这一点。 我知道SQL Server 2012有一个列存储,但我想尝试其他开源数据库。数据仓库中的列存储

在此先感谢!

+0

性能问题有多大?数据仓库查询通常以分钟和小时计,而不是秒。最有趣的查询需要数据库经历很多行。 – 2013-03-04 14:29:42

+0

我不确定究竟有多少,只是这是一个问题,他们想看看列式数据库可以做出什么差异。我只是因为我刚刚参加了数据仓库课程而感到困惑,并且我学会了使用星型连接模式,您能否将其替换为一个面向列的数据库? – glaring 2013-03-04 14:36:10

+0

什么是列式数据库?你能指出一篇维基百科文章吗? – 2013-03-04 14:39:23

回答

1

您是否必须在仓库中拥有星型连接架构,或者您是否可以使用柱式方法?

星型连接模式由数据仓库的表定义组成。用于查询灵活性的星型模式和类似的模式,交易查询性能。通常,查询灵活性比数据仓库中的查询性能更重要。

根据您在注释中链接的Wikipedia article,面向列的数据库引擎按列顺序存储实际数据库字节,而不是传统的关系数据库行顺序。

正如文章所说,这可以提高磁盘访问性能。

星型模式是您如何定义表格。面向列的数据库引擎关心数据库信息如何写入磁盘。除了它们都适用于数据仓库之外,这两个概念与另一个概念无关。

保留您当前的数据仓库架构,并查看列式数据库引擎是否可以提高查询性能。

+0

现在它开始有意义了:)非常感谢Gilbert!我确定我后面会有成千上万的问题,但现在看起来更清楚了! – glaring 2013-03-04 15:35:32

+1

有一件事 - 更改DBMS引擎比看起来要困难得多,因为每个系统都以不同的方式实现SQL,并计算出BI层的兼容性等,这可能非常具有挑战性。你可能最好得到一个*好的DBA来对查询进行一些性能分析,并用更好的结构(索引等)或硬件(磁盘I/O通常是罪魁祸首)找出需要改进的地方。 – 2013-03-04 16:07:01