解读数据架构——数据存储解决方案和流程

在数字化时代,数据已经成为组织的生命线。但是,正如任何经验丰富的数据专业人士所知,仅仅拥有数据是不够的。真正的价值在于如何有效地管理、存储和处理这些数据。这就是为什么本章是一本全面指南,旨在帮助您在复杂的数据管理世界中导航。我将深入探讨数据存储解决方案和流程在各种数据架构中的运作方式。

数据管理的组成部分就像复杂机器中的齿轮;每个都有着独特的作用,但它们都是同步工作以实现共同目标的。我将从一些最实用的存储解决方案开始:数据集市、运营数据存储和数据中心。本章的后半部分"数据流程"揭示了管理和有效利用数据所涉及的广泛流程范围,探讨了诸如主数据管理、数据虚拟化、数据目录和数据市场等概念。

例如,虽然数据集市提供了针对部门的特定数据视图,但运营数据存储则提供了更广泛、实时的业务运营视图。另一方面,主数据管理确保数据的一致性和可靠性,数据虚拟化则提供了来自各种来源的数据的统一、抽象视图。数据目录充当参考指南,使数据发现变得轻而易举,而数据市场则为数据共享甚至变现开启了大门。同时,数据中心充当了系统的数据中心,为统一访问组织和管理来自不同来源的数据。这些组件中的每一个都可以独立发挥作用;然而,当它们集成在一起时,它们可以形成一个强大的、全面的数据策略,推动您的业务朝着明智的决策、提高运营效率和增强竞争优势的方向发展。

无论您是经验丰富的数据科学家、有抱负的数据专业人员还是战略决策者,理解这些关键组成部分并学会协调它们将会释放您组织数据的真正潜力。

数据存储解决方案

让我们开始吧,好吗?这不仅仅是关于存储和处理数据,更是为数据驱动的转型做好准备。

数据集市

数据集市是数据仓库的一个子集,如图6-1所示。它通常被设计为数据的一个专注存储库,旨在满足组织内部某个部门或业务线(如财务、人力资源或营销)的特定需求。由于其较窄的范围,数据集市可以为用户提供比数据仓库更简洁和易于访问的信息视图。

对于用户来说,要在存储大量数据的庞大而复杂的数据仓库中导航可能会很具挑战性。数据集市通过从数据仓库中提取和 consolidating 相关数据,以更用户友好的方式呈现数据来解决这一挑战。这样,部门内的用户可以轻松地定位和检索所需的数据。

数据集市的一个关键优势是它们可以由各个部门创建和维护,而不仅仅依赖于IT部门。此外,每个数据集市可以根据所服务的部门的需求进行不同的结构化。这使得业务用户对数据具有更多的控制权;他们可以根据自己独特的需求定制数据,并使用与其领域最相关的数据结构。

部门特定的数据集市为用户提供了更快、更简便地访问他们日常运营和决策过程中所需的数据。他们可以执行分析查询、生成报告,并了解其部门的绩效,而无需导航整个数据仓库。

此外,数据集市促进了数据治理和安全。每个部门都可以为其数据集市定义和执行访问策略,确保只有授权的个人才能访问特定的数据集。这有助于保护敏感信息,并确保符合数据隐私法规。

经过深入了解了数据集市及其针对特定部门的洞察力,我们现在将注意力转向运营数据存储。

运营数据存储 (Operational Data Stores,简称ODS)

运营数据存储(ODS)的范围比数据集市更广泛,提供了企业范围内的实时数据视图。虽然数据集市为特定领域提供了有价值的深入洞察,但ODS则呈现了组织操作数据的全面视角。每种工具提供了不同的视角;如果数据集市让您通过显微镜查看数据,那么ODS则让您通过广角镜头查看数据。

ODS的目的是从不同来源集成企业数据,以实现实时(或接近实时)的运营报告。它不是数据仓库。顾名思义,它存储的是操作性数据,而不是分析性数据。它提供的数据速度比数据仓库快得多:每隔几分钟更新一次,而不是每天更新一次。

如果您当前用于报告的源系统数据过于有限,或者想要比源系统提供的更好、更强大的报告工具,那么ODS可能是您组织的合适选择。如果只有少数人具有访问源系统所需的安全许可,但您希望其他人也能生成报告,那么ODS可能是一个不错的解决方案。

通常情况下,ODS中的数据结构与源系统中的数据结构相似。然而,在集成过程中,ODS解决方案可以清洗、规范化和应用业务规则,以确保数据的完整性。这种集成频繁地在一天中的最低粒度水平上进行。通常情况下,您不需要为历史和趋势分析优化ODS,因为这是在数据仓库中完成的。

ODS中的数据比数据仓库所需的数据更接近实时。您可以将ODS用作数据仓库的其中一个分段区域,至少对于它维护的数据(参见图6-2)。我建议您首先协调和清洗数据,以接近实时地填充ODS,以为需要的运营和战术决策者提供价值。然后,您还可以使用它来填充数据仓库,后者通常具有较少的负载周期需求。您仍然需要为不托管在ODS中的数据仓库所需数据准备分段区域,但遵循此建议可以减少ETL流和分段区域大小的数量。这有助于提高性能,而不会牺牲价值或功能。

使用案例

假设您正在为一个名为ShoesForLess的虚构零售连锁店运行库存报告。如果您只有一个零售店,并且有一个数据库来跟踪订单,您可以直接对该数据库运行库存报告。但是,由于您有许多零售店,每个零售店都在其自己的数据库中跟踪订单,要想获取最新准确的库存报告,唯一的方法就是将这些数据库中的订单数据合并起来。这对于让客户知道哪些商品已经售罄以及在供应不足时快速补货非常重要。对于这种情况,数据仓库的实时性是不够的。

现在假设一个客服代表接到一个来自顾客的电话,询问某种特定风格和尺码的鞋子是否有货。该代表查询ODS以检索有关该类型鞋子(例如,"男士跑步鞋,尺码10")的实时可用性数据,并返回当前库存水平。

另一方面,如果商店的营销经理想要了解过去一年该款式鞋子的销售趋势,他们可以使用DW。他们运行一个聚合查询,总结了过去一年内每个月"男士跑步鞋"的销售情况。这提供了一个可以为战略营销和库存决策提供信息的高层次视图。

数据中心

数据中心是一个集中式的数据存储和管理系统,帮助组织从各种来源收集、整合、存储、组织和共享数据,并提供方便的访问分析、报告和决策工具。最重要的是,数据中心消除了在系统之间交换数据时使用数百或数千个点对点接口的需要。虽然数据仓库和数据湖的主要目标(通常是唯一的目标)是为分析提供数据,但数据中心也是在操作系统之间进行通信和数据交换的有价值手段(见图6-3)。

数据中心通常与数据湖和数据仓库结合使用,创建全面的数据管理基础设施。正如您在第4章和第5章学到的,数据湖存储大量原始、未经加工的数据,而数据仓库存储经过结构化和加工优化以供分析处理的数据。数据中心通过充当数据交换、协作和治理的中介来补充这些系统。为了澄清,让我们看看数据中心如何与本章中的其他方法互动并进行比较。(表6-2总结了这种比较。)

数据中心存储源数据的副本,主要关注管理和分发,而数据目录不存储实际数据,主要关注元数据管理、数据血统、执行数据治理政策和促进数据发现。

数据中心可以作为数据市场的数据源,但不存储数据。数据中心专注于在组织内管理和分发数据,而不是数据市场的商业交易。它是一个集中平台,使用的存储系统比数据湖或 RDW 多。数据湖通常使用对象存储来存储数据,而 RDW 使用关系型存储;数据中心可以将存储系统组合起来,例如关系型数据库、NoSQL 数据库和数据湖。

与数据湖一样,数据中心支持结构化、半结构化和非结构化数据,如图 6-3 所示,而 RDW 仅支持结构化数据。数据中心更有可能提供用于数据目录、血统和访问控制的内置机制,而数据湖通常集成了第三方工具或自定义解决方案。

就处理而言,数据湖使用计算来清理数据并将其回传到数据湖中。RDW 进行大量数据处理,包括 ETL 操作,以清理、规范化和结构化数据以供分析目的使用。然而,对于数据中心,数据通常是在中心外部使用外部工具或应用程序进行转换和分析的。

总之,数据中心是一种灵活多样的解决方案,用于摄取、管理、整合和分发各种类型和来源的数据。相比之下,数据湖专注于存储和处理大量原始数据,用于分析和机器学习,而数据仓库则针对结构化数据存储进行了优化,用于复杂分析、报告和决策制定。

数据处理

这一章探讨了数据存储解决方案的景观,以及它们如何提供多功能、高效的方式来组织和访问数据。然而,存储数据只是问题的一部分。要真正发挥数据的潜力,我们还必须了解如何有效地管理它。因此,我们现在从存储解决方案转向数据处理的复杂性,我们将发现帮助我们操纵、管理和利用数据资产的策略和技术。

主数据管理

主数据管理(MDM)是一套技术、工具和流程,使用户能够创建和维护一致准确的主数据列表(如客户、产品和供应商列表)。它涉及从内部和外部数据源和应用程序中创建每个业务中的每个人、地点或物品的单一主记录。然后,您可以使用这些主记录来构建更准确的报告、仪表板、查询和机器学习模型。

大多数MDM产品都配备了非常复杂的工具,用于清理、转换、合并和验证数据以强制执行数据标准。它们还允许您构建层次结构(例如,公司→部门→员工),您可以使用它来改进报告和仪表板。第一步是将您想要掌握的数据复制到MDM产品中。然后,产品会清理和标准化数据,并为您尝试掌握的每个实体(比如客户)创建一个主记录。它会自动删除大多数重复项,但某些工作将需要手动完成,需要有人审核可能是重复项的记录。然后,主记录被复制回数据湖或DW。这个主记录也被称为"黄金源"或"真实的最佳版本"。

如果您正在创建星型模式(见第 8 章),则掌握的记录将是您的维度表,然后将它们连接到您的事实表(未掌握)。

用例

让我们回到ShoesForLess,这是一个零售连锁店,每家店都有自己的客户数据库。公司将所有这些数据库的客户数据收集到一个数据仓库中。因为一些客户在多个零售地点购买了物品,DW 将包含某些客户记录的重复项。

如果客户的姓名在两条记录中完全相同,您可以轻松地过滤出重复项。但是,如果姓名在一条记录中拼写错误或输入不同(例如,其中一条记录中包含中间名、连字符或称谓,而另一条记录中没有),过滤器将不会将这些姓名视为重复项。 (这些称为近似重复项。)

如果您不实施MDM,第一次终端用户从DW收到报告时,他们将看到相同的客户多次出现,并且可能会质疑报告的准确性。您已经失去了他们的信任 - 一旦失去,要重新赢得信任是非常困难的。MDM 就是解决方案!

数据虚拟化和数据联邦

数据虚拟化有几个名称;您可能会看到它被称为逻辑数据仓库、虚拟数据仓库或分散式数据仓库。它是一种技术,允许您通过创建数据的逻辑视图而不复制或移动实际数据,从各种来源和格式访问和组合数据。它为所有数据提供了单一访问点,实现了实时数据集成,并减少了与传统数据集成方法(如ETL或ELT,见第9章)相关的时间和成本。

数据联邦和数据虚拟化是非常相似的术语,通常可以互换使用,如果您混淆了它们,您不太可能遇到问题。然而,两者之间存在微妙的区别。数据联邦涉及到一个由较小的、完全或部分自治的子集组织组成的总体组织,这些子集组织控制其全部或部分运作。(美国的联邦和州政府系统是联合的一个很好的例子。)像数据虚拟化一样,数据联合创建了来自多个数据源的统一数据视图。然而,数据虚拟化是一个更广泛的概念,它包括数据联合以及数据转换、缓存、安全性和治理。

更好的数据虚拟化工具提供了帮助提高性能的功能,如查询优化、查询下推和缓存。您可能会看到具有这些功能的工具被称为数据虚拟化,而没有这些功能的工具被称为数据联邦。

数据虚拟化可以替代数据仓库(见第4章)或ETL/数据迁移。让我们来看看它是如何实现的。

虚拟化作为数据仓库的替代方案

在某些情况下,特别是当存在许多数据源或它们不断变化时,数据虚拟化可以是数据仓库的替代方案。当您使用这种方法时,不会复制和存储数据到一个中央位置。

图6-4显示了大多数数据虚拟化产品的工作方式。网格(步骤1)代表最终用户的查询结果:一个地址列表。当最终用户滚动网格以查看更多数据时,网格从数据虚拟化引擎(步骤2)请求当前未加载的项目。如果引擎有可用的数据缓存,它会立即返回缓存,网格只需更新以显示数据。如果您请求来自缓存之外的数据,则数据虚拟化引擎将请求传递到远程数据源(步骤3),在那里进行处理。新获取的数据返回到引擎(步骤4),然后传递到网格。在这两种情况下,网格始终保持完全响应。

数据虚拟化解决方案的主要优势在于其针对市场速度的优化。与构建数据仓库相比,它的建立时间只需一小部分,因为您无需设计和构建数据仓库以及ETL来将数据复制到其中,并且无需花费太多时间进行测试。复制数据(与数据仓库相同)意味着更高的存储和治理成本,需要构建和维护更多的ETL流程,并且会导致更多的数据不一致,因此使用虚拟化可以为您节省大量资金。

数据虚拟化支持联合查询,您可以发出一个单一的查询,从多个来源和格式检索数据,并将结果合并为单个结果集。

然而,数据虚拟化和联合查询也存在一些重大缺点。如果您考虑使用数据虚拟化解决方案来替代您的数据仓库,我建议您提出以下问题:

  • 我需要什么水平的性能?这个解决方案适用于需要亚秒响应时间的仪表板,还是更多用于运营报告?
  • 数据虚拟化解决方案会对源系统的性能产生多大影响?如果另一个最终用户对相同的数据源运行查询,并消耗服务器的所有资源,我的查询会运行缓慢吗?它是否推迟查询?
  • 我是否需要在包含我想要使用的数据源的每台服务器上安装某些东西?
  • 解决方案是否使用了每个数据源上的技术索引,还是创建了自己的索引?它是否使用了每个数据源的数据库统计信息进行查询?
  • 我是否可以限制哪些用户可以访问每个数据源,以确保安全性?
  • 解决方案如何处理近似重复数据?
  • 数据将在何处和如何进行清理?
  • 如果更改源系统,报告会不会受到影响?
  • 虚拟化软件的成本是多少,使用起来有多复杂?

除了这些问题所揭示的原因外,还有其他有效的使用物理数据仓库的理由,如在第4章中讨论的需要运行准确的历史报告、重命名表格和保留历史数据。

虚拟化作为ETL或数据迁移的替代方案

如果您正在构建数据仓库,您应该将所有源数据移入数据仓库,还是更好地将源数据保留在原处,并在部分数据上创建一个虚拟化层呢?

将数据移入的最常见原因是,如果您计划对其进行一次聚合或转换,然后多次查询结果。另一个原因是,如果您经常需要将来自多个来源的数据集进行连接,并且需要超快的性能。在这些情况下,我通常推荐数据仓库解决方案。

然而,有时您可能会有一些不需要非常快速的即席查询。而且您当然可以有一个数据仓库,其中某些表格使用数据移动,其他表格使用数据虚拟化。表6-3比较了数据移动和虚拟化。

数据虚拟化提供了几个优点。首先,它提供了全面的数据血统,确保您可以清晰地了解数据从其源头到展示层的路径。其次,包括额外的数据源变得无缝,消除了修改转换包或暂存表的需要。最后,数据虚拟化软件通过统一的SQL接口呈现所有数据。这使用户无论数据来源是平面文件、电子表格、主机、关系型数据库还是其他类型的数据存储库,都可以轻松访问。

虽然表6-3显示了数据虚拟化相对于数据移动的优势,但这些优势可能不足以克服不使用关系型数据仓库所带来的性能损失和其他缺点,这些缺点在第4章中列出。另外,请记住,您选择的虚拟化工具可能不支持您的所有数据源。

以下是您可能选择数据虚拟化的一些原因:

  1. 存在数据移动的法规限制 正如您在第5章的"合规性、治理和安全性"中了解到的,中国的数据主权法规规定,位于中国的数据必须留在中国,并且只能由目前位于中国的人员查询。但是假设您在美国,试图从您的应用程序查询中国的客户数据。该应用程序可以检索有关中国客户数据的元数据,但无法摄取该数据。您可以使用虚拟化软件通过仅允许国内人员查询数据来使数据留在国内。试图查询数据的中国以外的任何人要么会收到错误消息,要么根本看不到任何结果。
  2. 公司外部的最终用户想要访问客户数据 与其向用户发送数据副本,不如让他们使用虚拟化软件进行查询。这样可以让您控制谁访问哪些数据,并知道他们已经访问了多少。
  3. 外部数据仓库中存在频繁更改的参考数据 与其一次又一次地将该数据复制到数据仓库中,您可以在将外部数据库的数据与数据仓库数据进行连接时使用虚拟化进行查询。
  4. 您想要查询来自不同数据存储的数据并将其合并 虚拟化软件通常支持许多数据源(如数据湖、关系型数据库和NoSQL数据库),并且可以处理此类操作。
  5. 您希望用户通过虚拟沙盒进行自助式分析 虚拟沙盒是一个安全且隔离的环境,用户可以在其中探索、分析和操作数据,而不会影响基础生产数据或系统。例如,假设您正在使用虚拟沙盒分析客户数据和第三方数据。您可以在虚拟沙盒中使用虚拟化来查询数据,而不是将数据复制到虚拟沙盒中。这样可以减少数据的副本数量,并且避免创建ETL过程。
  6. 您希望快速构建一个从源数据移动的解决方案 与其使用传统的ETL工具将源数据复制到中央位置,然后从中创建报告,您可以使用虚拟化软件直接创建报告。它将针对源数据运行查询并自动进行集中。这意味着您可以更快地构建解决方案,因为您无需使用ETL工具(这可能非常耗时)。

数据目录

数据目录是一个集中存储在云中的仓库,它存储和组织关于组织所有数据源、表、模式、列以及其他数据资产(如报告和仪表板、ETL流程和SQL脚本)的元数据。它作为用户发现、理解和管理位于应用程序数据库、数据湖、关系型数据仓库、运营数据存储、数据集市以及任何其他数据存储形式中的数据的唯一真实来源。

数据目录通常包括每个数据资产的以下信息:

  • 关于源的信息,例如位置、类型和连接详细信息
  • 如果在关系型数据仓库内,表和模式信息(例如结构、关系和组织)和列信息(例如数据类型、格式、描述和列之间的关系)
  • 如果在对象存储中,如数据湖中,文件属性(存储、文件夹名称、文件名)
  • 数据血统(数据从其来源到达的方式),包括数据经历的任何转换、聚合和集成的信息
  • 数据治理和合规性详细信息,例如数据质量、所有权和政策
  • 用于用户搜索、过滤和查找相关数据的搜索和发现工具

数据目录通过提供对数据景观的可见性来帮助您更有效地管理数据。这反过来促进了团队之间更好的协作和更明智的决策制定。它还通过更容易地跟踪数据血统、执行数据政策和保持对数据资产的清晰理解来确保数据质量、安全性和合规性。

市场上有许多用于创建数据目录的产品,其中一些产品已经存在了近十年。最流行的产品包括Informatica的企业数据目录、Collibra数据目录和Microsoft Purview。这些产品还具有其他功能,如数据治理和合规性、业务词汇表和数据质量度量。

数据市场

数据市场,有时称为数据交易所,是一个在线平台,数据提供者和数据消费者在这里相聚,进行数据集的买卖和交换。这些市场旨在帮助数据消费者(如企业、研究人员和开发人员)发现、评估和购买数据,用于分析、机器学习、业务智能和决策制定等目的。提供者通常包括收集或生成有价值数据集的组织、政府和个人。

数据市场通常包含数据目录。许多市场评估和改进数据集的质量,以确保其准确、完整、一致和易于使用。一些市场提供了清洗、转换和丰富数据的工具和服务,这可以节省用户在准备分析数据方面的时间和精力。(当您整合来自多个来源的数据或处理不完整或不一致的数据时,这尤其有价值。)一旦消费者购买了数据,市场可能会提供工具,帮助他们访问数据并将其整合到他们的工作流程、应用程序或系统中。有些甚至允许用户通过组合来自多个来源的数据或根据特定标准进行过滤,定制数据集,以便他们准确获取所需数据。

数据市场应该有健壮的安全措施,以保护用户数据,确保符合数据保护法规,并保持敏感信息的保密性。一些市场提供了易于混淆私人或敏感数据的方法。数据市场的定价结构和许可协议清楚地定义了使用条款,并确保数据提供者和消费者的合法合规性。

许多数据市场还提供内置的分析和数据可视化工具,允许您在平台内直接分析和可视化(或仅预览)数据。其他常见的功能和工具包括:

  • 数据集的评级和评论
  • 您可能感兴趣的其他数据集的推荐
  • 购物者简介,便于重新订购、收藏清单等
  • 协作和社区
  • 培训和支持

从提供者的角度来看,数据市场提供了一种变现数据资产、创造新的收入来源的途径。对于收集大量数据但没有资源或专业知识进行分析和变现的组织来说,这尤其有益。

随着对数据驱动洞见的需求增长和越来越多样化的数据集不断出现,数据市场越来越受欢迎。与数据目录相比,用于创建数据市场的产品数量并不多,因为市场直到2020年代初才开始出现。最受欢迎的产品包括Snowflake Marketplace、Datarade和Informatica的Cloud Data Marketplace。提供者和消费者都可以从更高效、透明的数据交换中获益,这有助于促进新的数据驱动产品和服务的创新。

总结

本章探讨了数据存储的各种方法,所有这些方法在当今的数据驱动型业务环境中都发挥着至关重要的作用。 我讨论了数据存储,包括数据集、运营数据存储和数据中心,然后将重点转向了流程。

主数据管理(MDM)是一种关键的方法,它专注于管理核心业务实体,以确保在多个系统和流程中实现数据的准确性、一致性和统一性。然后,我继续讨论了数据虚拟化、数据目录和数据市场。

通过了解这些不同的策略及其功能,您可以更好地将您的数据架构与组织的需求相匹配,并从数据中获得更重要的业务价值。

相关推荐
coderWangbuer25 分钟前
基于springboot的高校招生系统(含源码+sql+视频导入教程+文档+PPT)
spring boot·后端·sql
攸攸太上31 分钟前
JMeter学习
java·后端·学习·jmeter·微服务
Kenny.志34 分钟前
2、Spring Boot 3.x 集成 Feign
java·spring boot·后端
sky丶Mamba1 小时前
Spring Boot中获取application.yml中属性的几种方式
java·spring boot·后端
Hello.Reader1 小时前
TopK算法在大数据重复数据分析中的应用与挑战
大数据·算法·数据分析
数据龙傲天1 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
Elastic 中国社区官方博客1 小时前
Elasticsearch:使用 LLM 实现传统搜索自动化
大数据·人工智能·elasticsearch·搜索引擎·ai·自动化·全文检索
feng_xiaoshi1 小时前
【云原生】云原生架构的反模式
云原生·架构
千里码aicood2 小时前
【2025】springboot教学评价管理系统(源码+文档+调试+答疑)
java·spring boot·后端·教学管理系统
程序员-珍2 小时前
使用openapi生成前端请求文件报错 ‘Token “Integer“ does not exist.‘
java·前端·spring boot·后端·restful·个人开发