互操作性和可用性最佳做法

本文介绍互操作性和可用性最佳做法,内容按照以下部分中列出的体系结构原则进行组织。

1. 定义集成标准

使用标准、可重用的集成模式进行外部集成

集成标准非常重要,因为它们为如何在不同系统和应用程序之间表示、交换和处理数据提供了指导方针。 这些标准有助于确保数据在各种源和目标之间兼容、高质量且可互操作。

Databricks Lakehouse 附带一个综合性 REST API,用于以编程方式管理该平台的各个方面。 REST API 服务器在控制平面中运行,提供统一的终结点来管理 Azure Databricks 平台。

REST API 提供了始终可用的最低级别的集成。 不过,与 Azure Databricks 集成的首选方式是使用更高级别的抽象,例如 Databricks SDKCLI 工具。 CLI 工具基于 shell,允许将 Databricks 平台轻松集成到 CI/CD 和 MLOps 工作流中。

使用优化的连接器将数据源导入湖屋

Azure Databricks 提供多种方法来帮助你将数据引入到 Delta Lake。

  • Databricks 提供针对流消息传递服务优化的连接器,例如 Apache Kafka,用于准实时地引入数据。

  • Databricks 为许多云原生数据系统提供内置集成,并提供可扩展 JDBC 支持来连接到其他数据系统。

  • 无需 ETL 即可集成数据源的一个选项是 Lakehouse Federation。 Lakehouse Federation 是 Databricks 的查询联合平台。 术语“查询联合”是指一系列功能,它们使用户和系统能够针对多个数据源运行查询,而无需将所有数据迁移到统一的系统。 Databricks 使用 Unity Catalog 管理查询联合。 Unity Catalog 的数据治理和数据世系工具可确保对用户在 Databricks 工作区中运行的所有联合查询的数据访问进行管理和审核。

    注意

    Databricks 平台中使用 Lakehouse Federation 源的任何查询都将发送到该源。 确保源系统可以处理负载。 此外请注意,如果源系统部署在不同的云区域或云中,则每个查询都会产生传出成本。

降低数据工程管道的复杂性

通过投资降低数据工程管道的复杂性可以实现可伸缩性、敏捷性和灵活性,从而能够更快地扩展和创新。 简化的管道使管理和适应数据工程管道的所有操作需求变得更加容易:任务协调、群集管理、监视、数据质量和错误处理。

Delta Live Tables 是一个框架,用于生成可靠、可维护且可测试的数据处理管道。 你定义要对数据执行的转换,而增量实时表处理任务协调、群集管理、监视、数据质量和错误处理。 请参阅什么是增量实时表?

自动加载程序会在新数据文件到达云存储空间时以增量方式高效地对其进行处理。 它能够可靠地从云存储读取数据文件。 增量实时表和自动加载程序的一个重要方面是它们的声明性:如果没有它们,用户就必须生成复杂的管道来集成不同的云服务(例如通知服务和队列服务)才能可靠地读取基于事件和数据的云文件,并可靠地组合批处理和流处理源。

自动加载程序和增量实时表降低了系统依赖性和复杂性,并显著提高了与云存储以及批处理和流处理等不同范式之间的互操作性。 副作用是,管道的简单性提高了平台的可用性。

使用基础结构即代码 (IaC) 进行部署和维护

HashiCorp Terraform 是一种常用的开放源工具,可用于跨多个云提供程序创建安全且可预测的云基础结构。 请参阅卓越运营:使用基础结构即代码进行部署和维护

2.利用开放接口和开放数据格式

使用开放数据格式

使用开放数据格式意味着其使用不受限制。 这一点很重要,因为它消除了访问和使用数据进行分析和推动业务见解的障碍。 开放格式(例如基于 Apache Spark 生成的格式)还添加了可提高性能的功能,包括支持 ACID 事务、统一流式处理和批量数据处理。 此外,开源是由社区驱动的,这意味着社区不断致力于改进现有功能并添加新功能,使用户更容易从其项目中获得最大收益。

数据智能平台中使用的主要数据格式是 Delta Lake,这是一种完全开放的数据格式,具有从可靠性功能到性能增强等诸多优势,具体请参阅使用支持 ACID 事务的数据格式性能效率最佳做法

由于其开放性,Delta Lake 拥有庞大的生态系统。 有许多第三方工具和应用程序支持 Delta Lake

为了进一步增强互操作性,Delta 通用格式 (UniForm) 允许使用 Iceberg 阅读器客户端读取 Delta 表。 UniForm 自动异步生成 Iceberg 元数据,而无需重写数据,因此 Iceberg 客户端可以像读取 Iceberg 表一样读取 Delta 表。 数据文件的单一副本可用于这两种格式。

为所有数据资产启用安全数据和 AI 共享

共享数据和 AI 资产可以实现更好的协作和决策。 但是,在共享数据时,必须保持控制、保护数据,并确保遵守相关数据共享法律法规。

Delta Sharing 是由 Databricks 开发的开放协议,用于与其他组织安全共享数据,而不考虑他们使用的计算平台。 如果要与 Databricks 工作区外的用户共享数据(无论他们是否使用 Databricks),可使用开放 Delta Sharing 安全地共享数据。 如果要与拥有启用了 Unity Catalog 的 Databricks 工作区的用户共享数据,可以使用 Databricks-to-Databricks Delta Sharing。

在这两种情况下,都可以共享视图模型笔记本

  • 使用开放式 Delta Sharing 协议来与合作伙伴共享数据。

    Delta Sharing 提供一个开放式解决方案,用于将湖屋中的实时数据安全共享到任何计算平台。 接收者不需要在 Databricks 平台上、在同一个云上,甚至根本不需要在任何云上。 Delta Sharing 与 Unity Catalog 原生集成,使组织能够集中管理和审核整个企业的共享数据和 AI 资产,并自信地共享数据和 AI 资产,同时满足安全与合规要求。

    数据提供者可以从数据平台的存储位置共享实时数据和 AI 模型,而无需将其复制或移动到另一个系统。 此方法降低了数据和 AI 共享的运营成本,因为数据提供者不必跨云、地理位置或数据平台多次向其每个数据使用者复制数据。

  • 在 Databricks 用户之间使用 Databricks 到 Databricks Delta Sharing。

    如果要与无权访问你的 Unity Catalog 元存储的用户共享数据,可使用 Databricks 到 Databricks Delta 共享,只要接收者有权访问为 Unity Catalog 启用的 Databricks 工作区。 通过 Databricks 到 Databricks 共享,可以跨云区域和云提供商与其他 Databricks 帐户中的用户共享数据。 这是在你自己的 Databricks 帐户中跨不同 Unity Catalog 元存储安全地共享数据的极好方法。

使用开放标准进行 ML 生命周期管理

与使用开源数据格式一样,在 AI 工作流中使用开放标准在灵活性、敏捷性、成本和安全性方面具有类似的优势。

MLflow 是用于管理 ML 和 AI 生命周期的开源平台。 Databricks 提供与企业安全性功能、高可用性和其他 Databricks 工作区功能(例如试验和运行管理,以及笔记本修订版跟踪)集成的完全托管式 MLflow 版本。

主要组件包括:用于自动记录和跟踪 ML 和深度学习模型的试验跟踪、作为打包机器学习模型标准格式的模型、与 Unity Catalog 集成的模型注册表,以及可缩放的企业级模型服务。

3.简化新的用例实现

提供跨平台的自助服务体验

平台具有多种优势,用户可以根据自己的需要自主使用工具和功能。 投资创建自助服务平台可以轻松扩展以便为更多用户提供服务,并通过最大程度地减少手动预配用户、解决问题和处理访问请求的需要来提高效率。

Databricks Data Intelligence 平台具有提供自助服务体验所需的所有功能。 虽然可能存在强制性审批步骤,但最佳做法是在业务部门请求访问湖屋时完全自动化设置。 自动预配他们的新环境、同步用户并使用 SSO 进行身份验证、提供对共享数据的访问控制,以及为他们自己的数据提供单独的对象存储,等等。 结合使用语义一致且业务就绪数据集的中心数据目录,新业务部门可以快速安全地访问湖屋功能和所需的数据。

使用无服务器计算

对于 Azure Databricks 平台上的无服务器计算,计算层可以在客户的 Databricks 帐户中运行。 云管理员不再需要管理需调整配额、创建和维护网络资源以及连接到计费源的复杂云环境。 用户可受益于接近零的群集启动延迟和改进的查询并发性。

使用预定义的计算模板

预定义模板有助于控制用户如何使用或创建计算资源:将用户群集创建限制为规定的设置或一定数量,简化用户界面,或通过限制每个群集的最高成本来控制成本。

数据智能平台通过两种方式来实现此目的:

  • 提供共享群集作为用户的直接环境。 在这些群集上,使用自动缩放来缩减为极少量的节点,以避免高昂的闲置成本。
  • 对于标准化环境,可以使用计算策略来限制群集大小或功能,或者定义 T 恤大小的群集(S、M、L)。

4. 确保数据一致性和可用性

提供企业可以信任的可重用数据即产品

寻求实现 AI 和数据驱动的组织通常需要为其内部团队提供高质量、受信任的数据。 优先考虑质量和可用性的一种方法是,通过创建明确的“数据产品”,将产品思维应用于已发布的数据资产。 构建此类数据产品可确保组织为其数据和 AI 目标建立标准和值得信赖的业务事实基础。 当用户和应用程序在正确的时间以正确的质量和格式获得正确的数据时,数据产品最终会产生价值。 虽然在传统上是通过降低成本、加快流程和减少风险,以一种更高效的运营形式来实现这种价值,但现代数据产品也可以为组织所在行业或合作伙伴生态系统内新的增值产品和数据共享机会铺平道路。

请参阅博客文章使用 Databricks 构建高质量的可信数据产品

在整个企业中发布语义一致的数据产品

数据湖通常包含来自多个源系统的数据。 这些系统可能对同一概念使用不同的名称(例如客户与帐户),或使用同一标识符指代不同的概念。 为使企业用户能够以有意义的方式轻松组合这些数据集,数据必须在所有源中同质化以在语义上保持一致。 此外,为使某些数据有分析价值,必须正确应用内部业务规则,例如收入识别。 为确保所有用户使用正确解释的数据,必须提供具有这些规则的数据集并将其发布到 Unity Catalog。 必须仅限需要了解正确用法的团队访问源数据。

提供用于发现和世系的中心目录

用于发现和世系的中心目录可帮助数据使用者访问来自企业内多个源的数据,从而降低中心治理团队的运营开销。

在 Unity Catalog 中,管理员和数据专员在 Azure Databricks 帐户中的所有工作区集中管理用户及其对数据的访问。 不同工作区中的用户可以共享相同的数据,并可以根据 Unity Catalog 内集中授予的用户权限一起访问数据。

对于数据发现,Unity Catalog 为用户提供下述功能:

  • 目录资源管理器是许多 Unity Catalog 功能的主要用户界面。 可以使用目录资源管理器查看架构详细信息、预览示例数据以及查看表详细信息和属性。 管理员可以查看和更改所有者,管理员和数据对象所有者可以授予和撤销权限。 还可以使用 Databricks 搜索,该功能使用户能够轻松无缝地查找数据资产(例如表、列、视图、仪表板、模型等)。 将向用户显示与其搜索请求相关的、并且他们有权访问的结果。
  • 对 Azure Databricks 群集或 SQL 仓库运行的所有查询的数据世系。 所有语言都支持世系,世系捕获级别低至列。 世系数据包括与查询相关的笔记本、作业和仪表板。 可以在目录资源管理器中准实时地可视化世系,使用 Azure Databricks REST API 检索世系。

为了使企业能够为用户提供跨所有数据平台的所有数据的整体视图,Unity Catalog 提供了与企业数据目录(有时称为“目录的目录”)的集成。