0

客观的

我对术语有点困惑:我已经基于 Kimball 的数据建模方法构建了 Data Lake(不是 DW),现在不确定是否可以使用 Data Mart 定义来命名我的 MPP 数据库层。

我假设您仍然需要中型组织报告的维度建模和星型模式,与本文中的推理相同。

问题

  1. 在以下架构中将Synapse 称为数据集市是否正确(见下图)?
  2. 我可以说我没有 DW(即使我有 Star Schema),而是我有 Data Lake + Data Mart(s)?
  3. 我是否应该根据业务/报告子域(多个数据集市)将 Synapse 拆分为多个模式?

架构细节

在此处输入图像描述

更具体地说,在我的情况下:

2-3) ADLS + Databricks 形成数据湖。所有 ETL 和星型模式构建都发生在数据湖层。所有的逻辑座位在这里。它仍然在原始层具有结构化和非结构化数据,使用廉价的 ADLS 存储,缺乏治理,拥有 ML 并且将来会有流式传输。另一方面,我们在所有 DL 区域中都有 schema-on-write,除了 raw,我们有预先建模的表(在这个过程中有很多需求变化)。我称它为数据湖是否正确?

4.) Synapse 用作 ETL/Lake 结果的微小投影/模型,以加快报告响应时间。这里几乎为零逻辑,很少聚合。只有最终模型加载到 Synapse。数据不按业务子域拆分,我们只是将所有内容加载到单个 DATAMART 模式中。这是一个好方法吗?

4

1 回答 1

1

首先,我不会太拘泥于定义,因为这些术语有很多(稍微)不同的定义。但是,鉴于此,我将给出这些术语的高级定义如下:

  1. 数据湖:这是您加载到数据存储中的源数据,您可以在其中开始分析它。它的结构通常与源系统中的结构相同(即,它是“原始”数据),另外还可以选择一些审计列来显示数据的来源、加载时间等。一些数据湖具有多个层,例如原始数据层,然后是一个受监管的数据层,其中数据已被清理、标准化等 - 但仍与原始数据层的结构基本相同

  2. 数据仓库:这是您的所有事实和维度表(以及其他表,例如桥)的 Kimball 模型。它将根据数据湖中存在的数据构建

  3. 数据集市:这是来自您的数据仓库的主题区域。这可能是一个逻辑定义(例如,销售集市是销售事实表和相关维度),也可能是物理化的,例如从事实及其维度生成的单个宽表。您如何定义数据集市通常取决于谁/什么在使用它们以及它们的要求是什么。例如,您可以有多个销售数据集市,全部基于同一个销售明星,因为您有多个工具更喜欢使用以特定方式结构化的数据

希望这可以帮助?

于 2020-09-15T09:28:50.677 回答