为啥我们需要数据仓库?
Posted
技术标签:
【中文标题】为啥我们需要数据仓库?【英文标题】:Why do we need Data Warehouse?为什么我们需要数据仓库? 【发布时间】:2014-08-16 10:35:06 【问题描述】:我想知道为什么以及何时需要数据仓库,我的意思是数据仓库的主要目标是提供多维视图的报告,但在某些情况下,有一种方法可以使用 DBMS 构建报告,它可以从多维视图生成报告,关于数据库的大小,大小可以增量制作,关于集成 DBMS 也可以从多个数据源进行集成,如果它们与多个数据源有不同的键,dbms 可以修复它(虽然我们没有使用数据仓库),从性能方面来看,从运营数据存储生成报告和从数据仓库生成报告需要多少时间,处理时间是否有很大差距?
抱歉英语不好和奇怪的问题,我还在学习数据仓库。
【问题讨论】:
【参考方案1】:我们为什么需要数据仓库?
我将分享我和我工作的公司的经验,以及我们决定构建数据仓库的方式和时间。
历史数据
我们的 ERP 后端旨在涵盖一年的数据(因为数据量很大)。所有预定义的报告都是为了观察一年的数据而构建的。因此,如果您想检查每个客户或产品的销售增长情况,您必须运行两次报告(来自两个来源 - 您在登录页面上选择来源),然后在 excel 中查找值。
多个来源
在某些时候,我们购买了第三方订购解决方案(平板电脑订购 -> 网络服务 -> 数据库)以增强业务。 ERP 供应商从我们那里拿走了一笔“将其集成到系统中”。
不良数据
我们的 CFO 和他的团队需要整整一周的时间来生成良好的 P'n'L 报告。为什么?分析数据是错误的,所以他们必须逐行(在 excel 导出中)并搜索异常。
报告表现
有时需要两个多小时才能生成按产品、客户和日期分组的年度销售报告。
添加实习生分组
当管理层决定按其他标准区分客户或产品时,我们必须向 ERP 提供商付款,而且我们需要等待 1-3 周。猜猜看,销售经理给出了退出,而新的则要求新的分组类型。它需要花费(时间和金钱)。
怎么办?改变ERP系统,还是创建数据仓库?我们花费数月时间从他们的标准产品中创建定制系统。我们花了很多钱来支付他们的额外时间。我们有超过 250 名雇主教授如何使用新系统。我们必须等待至少一年的新 ERP 供应商来开发我们的定制需求。
然后我们收购了竞争对手的公司。我们想通过与他们的销售价值进行比较来跟踪我们的进度。 我们决定建立数据仓库!
我们让我们的生活更轻松。之后,我们又买了另一家公司Warehouse management system、Geo-Tracking Logistic Management System,你猜怎么着?我们拥有我们想要的数据,以我们想要的方式,具有出色的可扩展性,无需向 ERP 提供商提供资金。
现在,我们的数据仓库提供:
-
我们公司的历史数据,以及其他两家公司的完美键映射。
多源、我们的当前数据、我们的历史数据、购买公司的历史数据、WMS、TMS、订购系统和 Excel 表(KPI、目标、估计等)
我们制作了一个规则表,所以 CFO 和他的团队只需要在规则表上进行管理,我们总是能得到好的数据,错误的数据会自动(每天)报告给特定部门以便更改。李>
哦,经理们只是喜欢 OLAP。速度非常快。
使用 Excel 表格作为来源之一,如果管理层需要新的分组,我们可以轻松映射产品或客户。
【讨论】:
感谢@fenix 先生分享您的经验,太好了,因为我可以从公司实际使用数据仓库的情况中了解更多信息 :),但如果数据仓库已经设计为 5 年 - 10 年数据,在您的情况下,为什么生成的报告有异常是设计错误吗?还是因为 dbms 本身不能支持“不断变化”的报告?如果我有一个事务数据库,我可以将它用于像 clickview excel 等 BI 工具中作为数据源来生成多维报告吗?谢谢楼主分享,没有比学习谁做的更好的方法了! 让我举例说明:对于每张发票,员工可以'attach\ 让我举例说明:对于每张发票,员工可以“附加”分析(人力资源、物流、IT、销售营销等)。由于工作量大,员工错误地将人力资源分析“附加”到开往石油公司的发票上。它实际上是物流。管理层可以认为工资太高了 :-) 由于 ERP 中不存在的规则,报告都指向 POSSIBLE 异常。【参考方案2】:-
聚合:按月、按产品等。显然,我们可以在 Transactional DB 中立即完成(使用 SQL 查询、计算等),但为什么要避免这样做呢?
我们不想影响事务数据库!
我们希望将非交易用户与交易用户分开。
我们想要显示报告。要显示报告,我们需要进行复杂的计算,因此我们不希望在处理报告期间损害 Transactional DB。
历史数据:事务数据库仅用于当前/事务数据,旧数据将/可能存档。但是我们可以查询和组合归档数据和事务数据吗?
但是存档数据在哪里?我们如何获得这些数据?我们如何在运行时组合?真头疼!
多个数据源的组合:我们的业务有多个来源,报告必须显示来自所有来源的组合信息。所以我们需要一个地方来保存这些数据,这就是我们需要一个数据仓库的原因。
从事务数据库中,我们有数据,我们将使用该数据进行报告。但是,如果该数据格式不正确,如果该数据为 NULL(但业务规则不是 NULL)怎么办,如果该数据不正确怎么办,等等。这就是为什么我们需要将数据转换为正确的格式、正确的业务规则等。但是在那之后,我们想把它存储在哪里呢?这就是数据仓库应运而生的时候。
【讨论】:
以上是关于为啥我们需要数据仓库?的主要内容,如果未能解决你的问题,请参考以下文章