亚马逊AWS官方博客

BMW Cloud Data Hub:现代数据架构在 AWS 上的参考实现

Original URL:https://aws.amazon.com/blogs/industries/bmw-cloud-data-hub-a-reference-implementation-of-the-modern-data-architecture-on-aws/

 

宝马集团和 Amazon Web Services(AWS)于 2020 年宣布达成全面战略合作。本次合作的目标是通过将数据和分析置于决策中心,进一步加快宝马集团的创新步伐。本次合作的一个关键要素是进一步开发宝马集团的云数据中心(CDH, Cloud Data Hub)。它是在云端管理全公司数据和数据解决方案的中央平台(参见案例研究)。

在 AWS re:Invent 2019 会议上,宝马集团和 AWS 通过大致介绍不同的数据平台原型,然后介绍构建宝马集团云数据中心的过程,展示了新的 CDH 平台。

在这篇博客中,我们将讨论宝马集团如何通过在 AWS 上使用云原生技术重新架构数据湖,并重新构思我们围绕数据的组织流程,克服其本地数据湖面临的挑战。

本地数据湖面临的挑战

为了实现这些创新,宝马集团在 2015 年创建了一个集中式本地数据湖,用于收集和整合来自车辆传感器、操作系统和数据仓库的匿名数据,以获得历史、实时和预测性的洞察。

构建和运营企业级数据湖消耗了许多开发资源,团队无法专注于为客户提供新功能。此外,随着数据湖采用的增加,扩展计算资源和负责载入数据源的中央摄取团队的资源变得更加困难,如图 1 所示。

图 1.传统的本地数据湖及其挑战

云数据中心的解决方案概述

我们深受数据网格数据结构概念的启发,这些概念随着云数据中心的开发而日益流行。数据网格概念侧重于一个分散的、以产品为导向的组织,该组织具有明确的数据产品、负责任的敏捷团队和领域内的强大所有权 – 这些都是我们在软件开发中已经知道并推崇的价值观。

相比之下,数据结构概念是一种更加集中、以技术为导向的方法,它侧重于提供中央元数据层、自动执行数据管理服务以及建立企业范围的防护机制。我们使用这些高级概念来制定自己的一套指导原则,用于架构和设计我们的平台。我们努力提供一个可以将技术复杂性抽象化的自助式数据平台。它围绕自动化、自助服务载入和全球互操作性标准展开。数据被视为数据生产者向数据平台提供的资产。数据资产经过定义、读取优化,可供广泛使用。

图 2.云数据中心

数据门户提供统一的用户旅程

高度分散的架构和碎片化的账户结构可能难以概述、管理和治理。从用户的角度来看,这是由一组明确的管理 API 抽象出来的,更重要的是,数据门户是所有与数据相关的用户旅程的单一入口点。这包括元模型上的所有操作,例如创建、编辑或删除提供者、应用场景或数据集。更重要的是,用户可以直接摄取新的数据源,请求访问应用场景或数据集,通过 SQL 浏览数据,或者借助数据门户无缝地通过代码工作簿创建分析。目标是将平台的复杂细节抽象化,为所有用户群体提供自助服务功能。

图 3.数据门户提供统一的用户旅程

数据集作为逻辑实体

我们平台上的中心实体是数据集。它是我们的数据产品实例,也是与该实体相关的所有元数据和资源的容器,如图 4 所示。基本元数据包括数据集的拥有者、原始域和暂存层。它作为绑定到特定暂存环境和区域的资源捆绑使用,用于在 Amazon Simple Storage Service(Amazon S3)(一种提供业界领先的可扩展性、数据可用性、安全性和性能的对象存储服务)或 AWS Glue Data Catalog 中的表定义上存储数据,其中包含对用作 AWS Glue 中提取、转换、加载(ETL,Extract, Transform, and Load)任务源和目标的数据的引用。

图 4.逻辑数据集作为元数据和资源的容器

数据提供者和数据使用者是数据集的两个基本用户。数据集由数据提供者创建,数据提供者可以在所分配的域中创建任意数量的数据集。作为数据集的拥有者,他们负责实际内容和提供相应的元数据。他们可以使用自己的工具集,或依靠提供的蓝图从源系统摄取数据。发布数据集供使用后,使用者可以将不同提供者创建的数据集用于其分析或机器学习(ML,Machine Learning)工作负载。

多账户策略

为了接受完全分散架构的概念,我们使用单独的 AWS 账户作为数据生产者和使用者的边界。这种方法将问责制置于数据的生成或使用位置。对于数据生产者来说,这种方法分散了数据采购和数据质量(准确性、完整性、可靠性、相关性和新鲜度)的责任,并赋予了数据生产者责任,因为他们是自己数据领域的专家。他们负责与数据源拥有者密切合作,定义数据的获取方式。

同样,对于数据使用者来说,拥有一个隔离的 AWS 账户可以让他们灵活地操作和维护来自数据平台的传出数据管道。他们可以自由选择适合应用场景的服务。他们还负责业务优先事项、分析开发和新洞察的发掘。

使用多账户策略帮助我们为数据生产者和使用者提供了很高的自由度,让他们尽可能地保持敏捷和创新步伐。由于 AWS 账户是分配 AWS 成本的最低粒度,因此拥有单独的 AWS 账户意味着可以轻松地使用现有的计费和退款机制。这非常重要,因为我们希望提供不同的开发、暂存和生产环境,供平台的使用者用来构建和测试新的应用场景。要详细了解使用多个 AWS 账户的好处,请参阅使用多个账户组织 AWS 环境

分散计算和集中存储

在决定分散式和集中式方法时,我们必须考虑一系列因素,这些因素导致我们采用分散计算和集中存储模式。数据网格侧重于分散的显式数据以及基于产品的方法,其核心是 FLAIR 原则:

  • F – 可查找性:能够查看哪些数据资产可用;访问元数据,包括所有权和数据分类;以及其他用于数据治理和合规性的必需属性。
  • L – 世系:能够找到数据来源,能够追溯数据,在数据流经数据平台各层时理解和可视化数据。这篇博客提供了很好的概览。
  • A – 可访问性:能够请求访问权限,授予访问数据资产的权限。
  • I – 互操作性:数据以大多数(如果不是全部)内部和外部处理系统均可访问的格式存储。
  • R – 可重用性:使用已知架构注册数据,并且数据源的归属很明确。

但是,以上原则本身都不要求集中存储。集中存储的动机是促进数据生产者在提供数据和相关元数据时的一致性方面的合规性。集中存储帮助我们避免了核心平台服务开发的重复工作,并为平台设定了指导原则。下图说明了中央存储账户是如何协调的。下面图 5 中的灰色方框标记了阶段(dev、int 和 prod)和中心(global、market1、market2)的账户边界。中心/阶段与 AWS 账户之间是一对多映射。这确保了平台能够根据市场、监管和合规因素隔离数据。

图 5.云数据中心的分散计算、集中存储和多账户策略

由于各个团队负责自己的 AWS 账户,因此数据提供者团队有权监督其领域以及正在生成的数据。这使数据提供者团队可以自由选择满足其需求的工具和服务。这些团队使用 AWS 分析服务在数据平台中获取、转换和存储数据。这包括 AWS Glue、Amazon EMR(云大数据平台)和 Amazon Kinesis(可以轻松收集、处理和分析实时流数据)等服务。其他服务包括 AWS Lambda(一种无服务器、事件驱动的计算服务)和 Amazon Athena(一种交互式查询服务)。

为数据提供者团队制定了一套可重复使用的蓝图,以指导用户遵循最佳实践。这些蓝图的目标是,通过减少手动流程以及流程中的懈怠来提高团队的敏捷性。可重复使用的模块化方法使数据提供者团队更容易专注于数据采购,这样工程师就可以减少在重复任务上花费的时间,而将更多的时间用在具有明确业务成果的高价值任务上。蓝图完全标准化了设置,从而降低了错误或偏差的可能性。这减少了出现不兼容问题的可能性,并允许无缝集成新功能。

无服务器和托管服务优先

采用无服务器优先的托管服务方法,有助于在云数据中心进行开发的团队专注于当前的业务挑战,避免专注于技术管道。使用托管服务的另一个好处是,该平台可以自动从服务改进中受益。这方面的一个典型例子是,AWS Glue 从 2019 年起经历了多次改进和升级,该平台及其租户自动从中受益。

具有精细访问控制的 AWS Lake Formation 推动发展

依靠多账户策略来扩展和更好地管理各种业务对象和部门的云数据本身就面临着一系列挑战。在 AWS Lake Formation(一种可以轻松建立安全数据湖的服务)问世之前,使用分散目录会产生与在不同账户之间共享元数据相关的管理开销。为了克服这个问题,在 re:Invent 2020 上,云数据中心展示了一个目录同步模块,用于将 AWS Glue Data Catalog 元数据从一个账户同步到另一个账户。在 AWS Lake Formation 服务发布之前,云数据中心专注于在存储桶级别共享数据。这导致创建带筛选条件的重复数据集,以便与使用者共享相应的数据。

随着云数据中心采用 AWS Lake Formation,我们可以应对这些挑战。数据使用者可以通过云数据中心数据门户请求访问相应的数据集。负责授予其数据集访问权限的数据提供者可以根据直接实体共享或基于标签的访问控制,向使用者账户授予基于 AWS Lake Formation 的精细权限。他们可以使用行级或列级的精细访问控制。对于应用场景,如果数据提供者认为必要,他们还可以灵活地授予对数据集的底层 Amazon S3 存储桶及其对象的完全访问权限。

小结

在这篇博客文章中,我们向您展示了宝马集团如何实施现代数据架构,该架构可帮助云数据中心的用户使用高级搜索算法发现可信数据集,并轻松查询数据以发掘新的洞察。通过这种方式,该公司克服了在本地数据湖方面所面临的挑战。宝马集团已转向混合使用 AWS 托管服务(包括 Amazon Athena、Amazon S3、Amazon Kinesis、Amazon EMR 和 AWS Glue),以创建一个能够扩展以满足组织动态需求的环境。

要了解有关宝马集团云数据中心的更多信息,请查看 2020 年 AWS 案例研究,并访问 data.bmwgroup.com

本篇作者

Rahul Shaurya

Rahul Shaurya 是 Amazon Web Services 的高级大数据架构师。他帮助客户并与企业客户密切合作,在 AWS 上构建数据湖和分析应用程序。

Junjie Tang

Junjie 先生是 AWS 专业服务部的首席顾问。作为全球技术主管,他负责 AWS Professional Services 顾问部的大数据社区,负责制定数据策略并积累各垂直行业数据分析方面的专业知识。

Patrick Lanners

Patrick Lanners 是宝马集团数据门户的产品经理。他是 CDH 产品的创始人之一,曾担任首席架构师,专注于整体架构。目前,他的重点更多地放在数据门户上,使宝马集团内的每个人都能在几分钟内找到数据并发掘洞察。

Simon Kern

Simon Kern 是宝马集团云数据中心的首席工程师。他是 CDH 产品的创始人之一,最初他专注于数据工程和平台 API。目前,他负责授权组件和整体架构。