该博客将全面涵盖:
(一)什么是数据仓库
(b) 数据仓库的数据建模方法
(c) AWS 上的数据仓库,最后
(d) 使用托管服务减少操作负载的数据仓库。
让我们从一个外行人的角度来理解“什么是数据仓库”
根据维基百科- 数据仓库(DW 或 DWH),也称为企业数据仓库(EDW),是用于报告和数据分析的系统,被认为是商业智能的核心组件。数据仓库是来自一个或多个不同来源的集成数据的中央存储库。它们将当前和历史数据存储在一个位置,用于为整个企业的员工创建分析报告。这对公司来说是有益的,因为它使他们能够询问数据并从数据中汲取见解并做出决策。
从根本上来说,它是收集、存储和有效提供见解(商业智能)以帮助企业成为数据驱动型组织的艺术。从某种意义上说,它是另一种事务数据库,但针对分析工作负载进行了优化。
根据上图,数据是从源收集的,根据使用情况进行转换 (ETL/ELT),并存储在 DWH/数据集市和通过商业智能工具公开的见解中。
在本地设置时代,一切看起来都很简单,当时 ELT(ETL 与 ELT)、云 DWH(AWS Redshift、Google Big Query、Snowflake、Databricks)和其他托管数据解决方案都不存在,但最近这些解决方案得到了简化和扩展DWH 的范围。在这篇博客中,让我们一次一个地了解每一个方面。
为了简单起见,我们假设不存在无限的计算和存储,并且事务系统无法有效地处理分析查询。这就是需要一种有效的方法来设计一个数据仓库,该数据仓库在存储方面是最佳的,有效地处理分析查询(切片/切块/立方体等),并提供所需的延迟。
为此,数据仓库设计的两种理论设计模型应运而生:
(a) Bill Inmon – 自上而下的方法 (EDW) 和
(b) Ralph Kimball – 自下而上的方法(数据集市)。
Inmon 的方法是在全球范围内集中构建并考虑缓慢构建的因素,而 Kimball 的方法是通过筒仓创建一个独立的数据集市,然后再连接在一起。我们不要深入探讨哪种模型最好或选择哪种模型。就我而言,简而言之,两种模型都有效,并且完全取决于组织的用例和成熟度。该设计的另一个关键点是“数据表示”,即使用星型模式、雪花模式或星型和雪花混合的维度建模,这是更快查询和维度的关键关键。
唯一的关键要点是,尽管物流无限,但良好的数据仓库设计可以解决多维问题。所以,最好不要忽视它。
构建 DW的下一步是选择平台,可以从本地(Teradata、IBM DB2、Oracle 等)到云 DW(Snowflake、Redshift、BigQuery 等)。构建传统的数据仓库非常复杂,持续的管理和维护可能具有挑战性且成本高昂。在下一节中,我们将深入探讨如何使用 AWS Redshift 进行构建(毫无疑问,本地部署更好还是云更好,或者哪个云 DWH 更好)。
Amazon Redshift 是一个完全托管的 PB 级企业级数据仓库,可为分析查询提供卓越的性能,且易于使用且经济高效。 Amazon Redshift 通过自动执行修补、备份和硬件配置等任务,减少了传统数据仓库所需的运营开销。您可以配置 Amazon Redshift 集群,在其中自定义数据仓库的基础设施和性能基准。 Amazon Redshift 还提供 Redshift Spectrum、Datashare、Redshift ML 和无服务器设置,允许您在 DWH 之外使用 Amazon Redshift 集群。
设置方式,
到目前为止,使用云 DWH 是有意义的,但这如何适应 DWH + 数据湖/数据解决方案托管服务的大方案?下图解释了数据湖和数据仓库如何无缝协作。 AWS RDS 充当数据源,提供经济高效且持久的解决方案,并馈送到Amazon S3中。然后使用 ETL 流程转换数据并载入 Redshift。其他 AWS 服务(例如 Athena、Glue、Spectrum、Lake Formation 等)在弥合差距以创建全面的数据解决方案方面发挥着至关重要的作用。
总之,本博客涵盖了数据仓库的基础知识,从理论上深入研究了实现方法,并重点关注技术堆栈。我们还可以鸟瞰它如何无缝集成到更广泛的数据解决方案中。