互操作性和可用性最佳做法
本文介绍互操作性和可用性最佳做法,内容按照以下部分中列出的体系结构原则进行组织。
1. 定义集成标准
使用标准、可重用的集成模式进行外部集成
集成标准非常重要,因为它们为如何在不同系统和应用程序之间表示、交换和处理数据提供了指导方针。 这些标准有助于确保数据在各种源和目标之间兼容、高质量且可互操作。
Databricks Lakehouse 附带一个综合性 REST API,用于以编程方式管理该平台的各个方面。 REST API 服务器在控制平面中运行,提供统一的终结点来管理 Azure Databricks 平台。
REST API 提供了始终可用的最低级别的集成。 不过,与 Azure Databricks 集成的首选方式是使用更高级别的抽象,例如 Databricks SDK 或 CLI 工具。 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 源的任何查询都将发送到该源。 确保源系统可以处理负载。 此外请注意,如果源系统部署在不同的云区域或云中,则每个查询都会产生传出成本。
请考虑通过具体化视图卸载对基础数据库的访问,以避免操作数据库上出现高负载/并发负载并降低传出成本。
使用经过认证的合作伙伴工具
组织有不同的需求,但没有任何单一工具可以满足所有需求。 Partner Connect 可让你探索我们的合作伙伴并轻松地与之集成,这些合作伙伴的内容涵盖了湖屋的各个方面:数据引入、准备和转换、BI 和可视化、机器学习、数据质量等。 使用 Partner Connect 可通过选定的 Databricks 技术合作伙伴创建试用帐户,并从 Azure Databricks UI 将 Azure Databricks 工作区连接到合作伙伴解决方案。 请使用 Databricks 湖屋中的数据尝试合作伙伴解决方案,然后采用最满足业务需求的解决方案。
降低数据工程管道的复杂性
通过投资降低数据工程管道的复杂性可以实现可伸缩性、敏捷性和灵活性,从而能够更快地扩展和创新。 简化的管道使管理和适应数据工程管道的所有操作需求变得更加容易:任务协调、群集管理、监视、数据质量和错误处理。
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-to-Databricks Delta Sharing,只要接收者有权访问为 Unity Catalog 启用的 Databricks 工作区。 通过 Databricks 到 Databricks 共享,可以跨云区域和云提供商与其他 Databricks 帐户中的用户共享数据。 这是在你自己的 Databricks 帐户中跨不同 Unity Catalog 元存储安全地共享数据的好方法。
使用开放标准进行 ML 生命周期管理
与使用开源数据格式一样,在 AI 工作流中使用开放标准在灵活性、敏捷性、成本和安全性方面具有类似的优势。
MLflow 是用于管理 ML 和 AI 生命周期的开源平台。 Databricks 提供与企业安全性功能、高可用性和其他 Databricks 工作区功能(例如试验和运行管理,以及笔记本修订版跟踪)集成的完全托管式 MLflow 版本。
主要组件包括试验跟踪(用于自动记录和跟踪机器学习与深度学习模型)、模型(用于打包机器学习模型的标准格式)、与 Unity Catalog 集成的模型注册表,以及可缩放的企业级模型服务。
3.简化新的用例实现
提供跨平台的自助服务体验
平台具有多种优势,用户可以根据自己的需要自主使用工具和功能。 投资创建自助服务平台可以轻松扩展以便为更多用户提供服务,并通过最大程度地减少手动预配用户、解决问题和处理访问请求的需要来提高效率。
Databricks Data Intelligence 平台具有提供自助服务体验所需的所有功能。 虽然可能存在强制性审批步骤,但最佳做法是在业务部门请求访问湖屋时完全自动化设置。 自动预配他们的新环境、同步用户并使用 SSO 进行身份验证、提供对共享数据的访问控制,以及为他们自己的数据提供单独的对象存储,等等。 结合使用语义一致且业务就绪数据集的中心数据目录,新业务部门可以快速安全地访问湖屋功能和所需的数据。
使用无服务器计算
对于 Azure Databricks 平台上的无服务器计算,计算层可以在客户的 Databricks 帐户中运行。 云管理员不再需要管理需调整配额、创建和维护网络资源以及连接到计费源的复杂云环境。 用户可受益于接近零的群集启动延迟和改进的查询并发性。
使用预定义的计算模板
预定义模板有助于控制用户如何使用或创建计算资源:将用户群集创建限制为规定的设置或一定数量,简化用户界面,或通过限制每个群集的最高成本来控制成本。
数据智能平台通过两种方式来实现此目的:
- 提供共享群集作为用户的直接环境。 在这些群集上,使用自动缩放来缩减为极少量的节点,以避免高昂的闲置成本。
- 对于标准化环境,可以使用计算策略来限制群集大小或功能,或者定义 T 恤大小的群集(S、M、L)。
使用 AI 功能来提高生产力
除了提高生产力之外,AI 工具还可以帮助识别错误模式并根据输入提供额外的见解。 总体而言,将这些工具纳入开发过程可以大大减少错误并促进决策 - 从而加快发布速度。
Databricks IQ 是 AI 支持的知识引擎,它是数据智能平台的核心。 它利用 Unity Catalog 元数据来了解组织中的表、列、说明和流行数据资产,以提供个性化的答案。 它可以启用多种功能来提高使用该平台时的工作效率,例如:
- Databricks 助手支持通过对话界面查询数据,从而使你在 Databricks 中更高效。 用英语描述任务,让向导生成 SQL 查询,解释复杂的代码并自动修复错误。
- 针对 Unity Catalog 管理的任何表或表列的 AI 生成的注释可加速元数据管理流程。 但是,AI 模型并不始终准确的,在保存之前必须审查注释。 Databricks 强烈建议对 AI 生成的注释进行人工审查,以检查是否存在不准确之处。
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 提供了与企业数据目录(有时称为“目录的目录”)的集成。