用于数据输入 (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) 的操作数据仓库的主要内容,如果未能解决你的问题,请参考以下文章
ETL - OLAP和OLTP - 在SQL Server 2014中维护报告和跨国数据库
HyPer: A Hybrid OLTP&OLAP Main Memory Database System Based on Virtual Memory Snapshots