使用常规数据库作为数据仓库
Posted
技术标签:
【中文标题】使用常规数据库作为数据仓库【英文标题】:Using a regular database as a data warehouse 【发布时间】:2018-10-16 15:54:42 【问题描述】:谁能告诉我尝试将常规数据库用作数据仓库时会产生什么影响?
我知道数据仓库以更结构化的方式存储数据而闻名,但是使用标准数据库来实现相同结果的含义是什么?我们能不能像在数据仓库中一样创建一个包含结构化数据的常规数据库表?
【问题讨论】:
“常规数据库”是什么意思? @SamM 只是一个普通的数据库,比如 MS SQL Server 或 Oracle。 “数据仓库”是什么意思? :-) 【参考方案1】:数据结构不是问题——优化才是。
像 SQLS 这样的 OLTP 数据库经过优化,可以可靠地记录事务。它们将数据存储为记录,并广泛使用磁盘 I/O。
像 Redshift 或 Teradata 这样的 BI 数据库已针对查询数据进行了优化。它们将数据存储为列,并且通常仅在内存中(无磁盘 I/O)。
因此,传统数据库更擅长获取数据,而 BI 数据库更擅长获取数据(这两个平台都在努力减轻它们的弱点,因此差异变得模糊)。
实际上,您可以使用 SQLS 之类的常规数据库来构建数据仓库,没有任何问题,除非您有特殊需求:
数据量很大(数十亿条记录) 刷新率很高(小时/分钟/实时) 您打算使用来自 Tableau 或 PowerBI 等 BI 工具的实时连接(而不是将数据提取加载到其中) 您的查询非常复杂且计算量很大您也可以将这两个平台结合起来。在常规数据库中导入、处理、集成和存储数据,然后将其转换为星型模式(维度模型)并将其发布到 BI 数据库(即,将规范化的数据保存在 SQLS 中,并将星型模式发布到 Redshift)。
如果您打算将数据导入 Tableau 或 PowerBI 等 BI 工具,那么您可以安全地使用任何传统数据库,因为它们依赖于其内部引擎,使用 BI 数据库不会给您带来任何优势。
【讨论】:
【参考方案2】:数据仓库中也会有冗余或重复的数据,而不是您在常规数据库中寻找的数据
【讨论】:
以上是关于使用常规数据库作为数据仓库的主要内容,如果未能解决你的问题,请参考以下文章