繁体   English   中英

在内存数据仓库中还是没有?

[英]In memory data warehouse or no?

我必须创建一个数据仓库(星型架构),客户希望在SQL 2014中将其存储在内存中。 我的理解是内存中的FK约束,索引等有很多限制。这对我们至关重要,因为事实表的数量是数百万。 作为替代方案,我正在考虑建议创建一堆非规范化表,并将它们加入SQL进行报告,而不要使用Kimball DWH。 我大约有9个交易记录和4个主表。

有更好的建议或替代方案可以解决此问题吗?

通常,当您在SQL Server中使用内存时,它表示内存中的oltp(Hekaton),它是针对特定情况而设计的,主要用于处理锁定和闩锁中的瓶颈。 我想在这种情况下,这不是您的意思。

微软还在群集列存储中使用了内存中的名称,在我看来,这至少使事情变得混乱。 集群列存储是为数据仓库设计的,而不是基于常规行的方法,而是以列格式存储数据。 如果您拥有企业版,那么至少值得尝试一下事实表。 与普通的压缩表相比,您应该节省大量空间(我的事实表缩小了75%-与页面压缩的行存储相比缩小了90%)–当然,这对于缓存中的内容有很大帮助,而性能应该是更好,但当然在很大程度上取决于您的数据,数据库结构和查询。

也有很多限制,最大的限制可能是您不能具有唯一索引或主键/外键。 此限制将在SQL Server 2016中删除,因此,如果您可以等到那一刻,或者在可用时进行升级,则可能不是什么大问题。

您提到了不支持索引。 的确如此,但是由于群集数据存储为列格式并且已高度压缩,因此您不需要群集列存储的其他索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM