在数据仓库中处理大数据

Handling Big Data in a Datawarehouse

我是大数据概念的学习者。根据我的理解,大数据对于处理非结构化数据和高 volume.When 我们看一下数据仓库 (DW) 的大数据架构,源数据是通过 Hadoop(HDFS 和 Mapreduce)和相关的非结构化数据提取的信息转换为有效的业务信息,最后通过ETL处理(以及现有的结构化数据处理)将数据注入DW或DataMart。

但是我想知道 DW 对组织(由于大数据)所需的新 techniques/new 维度模型或存储要求是什么,因为我尝试的大多数 tutorials/resources learn 只在源头上谈论 Hadoop,而不是在目标上。由于数据量如此之大,大数据的引入如何影响组织的预定义 reports/adhoc 分析

感谢您的回复

这是一个非常广泛的问题,但我会尝试给出一些答案。

Hadoop 可以是数据源、数据仓库或 "data lake",是可以从中提取仓库和集市的数据存储库。

Hadoop 和基于 RDBMS 的数据仓库之间的界限越来越模糊。随着 SQL-on-Hadoop 成为现实,与基于 Hadoop 的数据进行交互变得越来越容易。但是,要有效,数据中必须有结构。

一些 Hadoop/DW 互动的例子:

  • Microsoft 应用平台系统,SQL 服务器和 Hadoop
  • 之间具有 Polybase 交互
  • Impala (Cloudera)、Stinger (Hortonworks) 和其他提供 SQL-on-Hadoop
  • Actian 和 Vertica (HP) 在 Hadoop 上提供与 RDBMS 兼容的 MPP

也就是说,Hadoop DW 还不成熟。它的性能不如基于 RDBMS 的 DW,缺乏许多安全和操作特性,也缺乏 SQL 能力。在走这条路之前仔细考虑您的需求。

您应该问的另一个问题是您是否真的需要这种类型的平台。任何 RDBMS 都可以处理 3-5Tb 的数据。 SQL Server 和 PostgreSQL 是可以在商品硬件上处理 DW 的平台的两个示例,并且可以忽略不计的管理。

那些相同的 RDBMS 可以处理 100Tb 的工作负载,但在这种规模下它们需要更多的照顾和供给。

MPP RDBMS 设备处理 PB 级的数据工作负载,随着规模的扩大,管理和运营开销会降低。我怀疑你能达到那个规模,很少有公司能做到:) 如果复杂查询的速度是你最重要的因素,你可能会选择 MPP 设备以获得更小的数据量。出于这个原因,我已经看到 MPP 设备部署在小至 5Tb 的数据量上。

根据加载技术,您可能会发现基于 RDBMS 的数据仓库比 Hadoop 加载速度更快。例如,我每秒将数十万行加载到 PostgreSQL 中,而加载到 SQL Server 中的数据略少。在 Hadoop 中获得相同的结果需要更长的时间,因为我必须摄取文件,在 Hive 中建立它,然后将其移动到 Parquet 以获得类似水平的输出性能。随着时间的推移,我希望这会发生变化,对 Hadoop 有利,但还没有完全实现。

您提到了维度建模。如果您的星型模式由事务事实表和 SCD0-SCD1 维度组成,因此需要仅插入处理,您可能会在 SQL-on-Hadoop 上取得成功。如果您需要更新事实(累积快照)或维度(SCD2、SCD3),您可能会在功能和性能方面遇到困难——许多实现尚不支持 UPDATE 查询,而支持的查询速度很慢。

抱歉,没有简单的 "Do this!" 答案,但这是一个不成熟领域中的复杂话题。希望这些评论对你的思考有所帮助。

数据湖和数据仓库的流程不一样。传统意义上的维度建模从业务流程识别和星型模式设计开始,在数据湖上您不对业务做出任何假设 process.The 数据湖尽可能以非常精细的级别收集数据,探索并找到业务流程。您可以在 An Introduction to enterprise data lake - The myths and miracles

上阅读有关数据湖的更多信息