亚马逊AWS官方博客

宝马云数据中心:亚马逊云科技现代数据架构的参考实施

作者:Rahul Shaurya、Junjie Tang、Patrick Lanners 和 Simon Kern

校对作者:潘显坤 亚马逊云科技高级解决方案架构师

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

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

在这篇博客中,我们将讨论宝马集团如何利用亚马逊云上的云原生技术重新构建数据湖,并围绕数据重新思考我们的组织流程,从而克服其内部数据湖面临的挑战。

本地数据湖面临的挑战

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

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

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

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

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

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

图 2.云数据中心

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

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

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

数据集作为逻辑实体

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

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

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

多账户策略

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

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

使用多账户策略有助于我们为数据生产者和消费者提供尽可能灵活和创新的自由。由于亚马逊云账户是分配亚马逊云成本的最低粒度,因此拥有单独的 亚马逊云 账户意味着可以轻松地使用现有的计费机制。这非常重要,因为我们希望提供平台消费者用于构建和测试新用例的完全不同的开发、分期和生产环境。要详细了解使用多个 亚马逊云 账户的好处,请参阅使用多个账户组织 亚马逊云 环境

分布式计算和集中存储

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

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

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

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

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

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

无服务器和托管服务优先

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

具有精细访问控制的 亚马逊云 Lake Formation 推动发展

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

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

结论

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

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