paint-brush
了解 AWS 上的数据仓库的工作原理by@ramsjha
15,963
15,963

了解 AWS 上的数据仓库的工作原理

ramsjha4m2023/11/29
Read on Terminal Reader

探索数据仓库的世界,从基本概念到使用 AWS Redshift 的实际实施。该综合指南涵盖了数据建模方法,深入探讨了 AWS Redshift 设置的复杂性,并展示了数据仓库如何无缝融入更广泛的数据解决方案生态系统,从而为分析和商业智能带来新的可能性。
featured image - 了解 AWS 上的数据仓库的工作原理
ramsjha HackerNoon profile picture

该博客将全面涵盖:

(一)什么是数据仓库

(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 集群。


设置方式,

  • 定义用于数据收集的服务(AWS DMS、DynamoDB、EMR、Glue、Kinesis、S3、SSH 主机等)
  • 定义交互方式(查询分析工具和管理接口)
  • 了解 Redshift MPP 架构(分布式、无共享)
  • 启动具有所需数据大小、增长、节点和查询性能的集群(DC2、DS2 或 RA3)
  • 根据用例或具有所需数据类型、模式类型、压缩、缓冲区、编码的 DWH 实现设计数据库模式
  • 使用 COPY 加载不同文件类型的数据,使用 INSERT 进行最小更改,使用 ANALYZE & VACUUM 进行维护
  • 执行查询优化和性能增强
  • 利用 S3,使用 Spectrum 进行外部表和数据共享进行零拷贝
  • 使用 Redshift ML 获得深入见解
  • 利用 AWS Quicksight for BI 工具获取见解。


到目前为止,使用云 DWH 是有意义的,但这如何适应 DWH + 数据湖/数据解决方案托管服务的大方案?下图解释了数据湖和数据仓库如何无缝协作。 AWS RDS 充当数据源,提供经济高效且持久的解决方案,并馈送到Amazon S3中。然后使用 ETL 流程转换数据并载入 Redshift。其他 AWS 服务(例如 Athena、Glue、Spectrum、Lake Formation 等)在弥合差距以创建全面的数据解决方案方面发挥着至关重要的作用。






总之,本博客涵盖了数据仓库的基础知识,从理论上深入研究了实现方法,并重点关注技术堆栈。我们还可以鸟瞰它如何无缝集成到更广泛的数据解决方案中。