将非星型模式数据库转换为星型模式数据库

Posted

技术标签:

【中文标题】将非星型模式数据库转换为星型模式数据库【英文标题】:Convert a none-star-schema database to star schema database 【发布时间】:2014-04-16 06:39:27 【问题描述】:

我是 OLAP 新手,遇到了以下情况:

我有一个包含数百个表的无星型数据库 (PostgreSQL),现在我需要将其转换为星型数据库以执行 OLAP。这里有一些问题:

    是否必须以星型模式创建新数据库并将现有数据插入新数据库?如果是这样,是否有任何工具可以帮助我自动完成该任务?

    蒙德里安需要的数据应该是星型数据库,但我的网络项目是基于无星型数据库的。也就是说,每次得到一条新记录,我都要同时更新两个DB,对吧?

感谢您的帮助,谢谢!

【问题讨论】:

【参考方案1】:

将数据从 OLTP 数据库移动到 OLAP 数据库的过程称为 ETL(提取、转换、加载)。有许多 ETL 工具。试试 Pentaho(水壶)。您可以在现有服务器或新服务器中创建维度数据库表 - 取决于现有服务器/数据库的繁忙程度。就更新 OLAP 模式中的数据而言,最好不要将其作为业务事务的一部分。它可能存在性能问题。此外,业务事务不必因为将数据移动到 OLAP 表中的某些问题而失败。根据您可以承受的数据延迟,您可以有一个每天运行几次的批处理。在大多数情况下,您将如何识别更改的数据(更改数据捕获)是一个挑战。

【讨论】:

那么你的意思是我必须手动设计一个新的 OLAP 数据库,对吧? 是的。这就是简短的答案。

以上是关于将非星型模式数据库转换为星型模式数据库的主要内容,如果未能解决你的问题,请参考以下文章

星型模式命名约定

使用星型模式数据仓库进行报告与分析

星型模式的 OLAP 或 OLTP?

为星型模式中的分辨率设置时间维度

如何使用 postgresql 为数据仓库星型模式制作简单的日维度表?

为 pentaho 项目(mysql 工作台或模式工作台)建模星型模式数据库?