用于数据输入 (OLTP) 和 BI (OLAP) 的操作数据仓库

Posted

技术标签:

【中文标题】用于数据输入 (OLTP) 和 BI (OLAP) 的操作数据仓库【英文标题】:Operational data warehousing for both data entry (OLTP) and BI (OLAP) 【发布时间】:2015-01-05 22:10:33 【问题描述】:

我正在考虑一种简单的方法来构建可实现(接近)实时 BI 的运营数据仓库。

例如,我正在为数据库应用程序使用 SQL 服务器平台。一个应用程序用于 OLTP 数据输入,另一个用于数据仓库,最终用于 SSAS 和 BI 报告。

我知道 BI 的通用基础架构是

OLTP database -> Periodically updated data warehouse -> Analytic cube -> Reporting,

OLTP(规范化)数据库处理事务操作,数据仓库存储更新的数据用于 BI 操作。

但我正在考虑两种方法来实现数据仓库的实时性。

    在没有 OLTP 数据库的情况下,使数据仓库(去规范化)也能处理事务操作只要在 OLTP 数据库中完成数据输入,就更新单独的数据仓库

#1 和#2 的原因:

    对于我的应用程序,单个 OLTP 数据库中不会有太多的秒到秒事务 缓慢的事务不会影响我的应用程序 OLTP 数据库中大约有 10 个表 我的应用程序的主要卖点是接近实时的 BI 应用程序。 使用运营数据仓库,无需定期从 OLTP 更新

当然,#1 的未知部分是更新分析多维数据集时事务的速度有多慢。但是方法#2 解决了这个问题,尤其是在数据仓库的数据更新是异步完成的时候。

我想问一下我是否遗漏了什么问题,或者是否有更好的方法来构建运营数据仓库。

【问题讨论】:

【参考方案1】:

icCube 是一个用 JAVA 编写的内存中 OLAP 服务器,可以从任何关系数据库中获取数据。它支持incremental load 实现近实时BI。

更新多维数据集时数据库服务器不会受到影响,因为 icCube 在单独的进程中构建多维数据集,然后所有查询都针对此外部进程完成。您必须将 icCube 配置为定期检查数据库服务器中的更新(例如,您可以使用触发器表进行快速/低成本检查)。

例如,它支持用于 Excel 访问的 MDX/XMLA,并拥有自己的 Web 报告包。

【讨论】:

以上是关于用于数据输入 (OLTP) 和 BI (OLAP) 的操作数据仓库的主要内容,如果未能解决你的问题,请参考以下文章

OLAP简介

大数据运维的思考

OLTP vs OLAP

ETL - OLAP和OLTP - 在SQL Server 2014中维护报告和跨国数据库

HyPer: A Hybrid OLTP&OLAP Main Memory Database System Based on Virtual Memory Snapshots

MongoDBMongoDB 性能优化 - BI查询聚合