Azure Databricks 配置概述
Azure Databricks 是一个基于云的平台,结合了数据工程和数据科学的最佳功能。 它允许您使用 Apache Spark快速且可扩展的开源框架来构建、管理和分析数据管道,用于大数据处理。 Azure Databricks 还为数据科学家和工程师提供了一个协作工作区,以便他们共同处理机器学习和人工智能项目。
如果你在政府或公共部门行业工作,此参考体系结构文档提供了有关将 Azure Databricks 与主权登陆区域或 Azure 登陆区域部署 与应用主权基线策略计划的 固执己见的指导。
# Azure Databricks 产品文档 提供了有关各种文章的大量信息。 本文档通过提供有关配置 Azure Databricks 环境的关键概念和选项的精选建议来补充文档。
Azure Databricks 的主要特点
Azure Databricks 具有一组丰富的功能,但对于此参考体系结构,我们重点介绍其基础结构元素。 Azure Databricks 提供:
交互式笔记本:使用笔记本以 Python、Scala、SQL 或 R 编写代码,并使用图表和图形可视化结果。 与团队成员共享和评论笔记本,并将它们与 GitHub 等流行工具集成 Azure DevOps。
计算选项:Azure Databricks 提供各种计算选项来支持数据工程、数据科学和数据分析工作负载。 这些选项包括用于笔记本和作业的按需可扩展无服务器计算、用于通用分析和自动化作业的预置计算,以及用于执行 SQL 命令的 SQL 仓库。 实例池提供空闲的即用型实例,以减少启动和自动扩展时间,从而提高不同数据处理场景的效率。
数据集成:轻松连接各种数据源和目标,例如 Azure Blob 存储、 Azure Data Lake StorageAzure SQL 数据库 Azure Synapse Analytics、Azure Cosmos DB 等。 使用 Delta Lake,这是一种支持 ACID 事务和架构实施的可靠且高性能的数据湖解决方案。
机器学习:使用 TensorFlow、PyTorch、Scikit-learn 和 XGBoost 等流行框架构建、训练和部署机器学习模型。 使用 MLflow(一个用于管理机器学习生命周期的开源平台)来跟踪实验、记录指标和部署模型。
企业安全性:通过基于角色的访问控制、加密、审计和合规性等功能,安全地访问和处理您的数据。 将 Azure Databricks 与 Microsoft Entra ID、Azure Key Vault 和 Azure Private 链接集成,以实现身份和数据保护。
数据治理和共享:Unity Catalog 通过为外部共享提供托管版本的 Delta Sharing 和为数据湖屋提供统一的数据治理模型,简化了组织内部的数据共享和云中的安全分析。
高级 Databricks 体系结构
Azure Databricks 在 控制平面 和 计算平面之外运行。 参考架构建议了每个控制平面中的配置选项。 下图描述了整体 Azure Databricks 体系结构。
控制平面
控制平面是 Azure Databricks 的图层,用于管理群集和作业的生命周期,以及用户和数据访问的身份验证和授权。 控制平面包括由 Azure Databricks 帐户中的 Azure Databricks 管理的后端服务。 Web 应用程序位于 control plane 中。
控制平面在 Azure Databricks 拥有的 Azure 订阅中运行,并通过安全 API 与经典和无服务器计算平面通信。 控制平面还提供 Web 界面和 REST API,供用户与 Azure Databricks 交互。
计算平面
计算平面是处理数据的位置。 有两种类型的计算平面 - 无服务器和经典。 无服务器计算平面提供即时和弹性资源,而经典计算平面则依赖于预配置的基础设施。
无服务器计算平面
无服务器计算非常适合临时查询、笔记本和短期工作负载。 例如,您可以使用无服务器计算在笔记本中运行 SQL 命令或执行轻量级作业。 在无服务器计算平面中,资源在 Azure Databricks 帐户内的计算图层中运行。
Azure Databricks 在工作区经典计算平面所在的同一 Azure 区域中创建无服务器计算平面。 它运行位于 Databricks 帐户中的服务器池,运行 Kubernetes 容器,这些容器可以在几秒钟内分配给用户。 有关详细信息,请参阅 宣布推出 Databricks 无服务器 SQL:适用于 SQL 工作负载的即时、托管、安全且生产就绪的平台 - Databricks 博客。
当用户同时运行报告或查询以处理并发负载时,计算平台会快速使用更多服务器扩展集群。 Databricks 管理服务器的整个配置,并根据需要自动执行修补和升级。 无服务器计算按使用量计费(例如,按查询执行或任务运行计费)。
每个服务器都运行一个安全的配置,所有处理都由三层隔离保护 - 托管运行时的 Kubernetes 容器、托管容器的 VM 和工作区的虚拟网络。 每个图层都隔离到一个工作区中,不允许共享或跨网络流量。
容器使用强化的配置,VM 关闭且不重复使用,并且网络流量仅限于同一集群中的节点。 所有计算都是短暂的,专用于该工作负载,并在工作负载完成后安全地擦除。
您、控制平面、计算平面和云服务之间的所有流量都通过 Azure 的全球网络路由,而不是通过公共互联网。 无服务器 SQL 仓库的无服务器计算平面不使用客户可配置的后端 Azure 私有链接连接。 Azure Databricks 控制平面通过 mTLS 连接到无服务器计算平面,仅允许对控制平面 IP 地址进行 IP 访问。
所有附加的存储都受到行业标准 AES-256 加密的保护,用户、控制平面、计算平面和云服务之间的所有流量都至少使用 TLS 1.2 进行加密。 无服务器 SQL 仓库不对托管磁盘使用客户管理的密钥。
工作负载没有该工作负载范围之外的系统的权限或凭证,并且通过短期(一小时)令牌访问数据。 这些令牌将安全地传递给每个特定的工作负载。
截至 2024 年 6 月,无服务器计算不支持 Azure 机密计算,但您的工作负载受到多层隔离的保护,如 Azure 无服务器计算隔离图所示。
有关更多信息,请参阅 在 Serverless Compute 上安全地部署工作负载。
Classic 计算平面
经典计算平面适用于长时间运行的作业、生产工作负载和一致的资源需求。 例如,您可以将预置计算用于 ETL 管道、机器学习训练和数据工程任务。
经典计算平面具有自然隔离,因为它在您自己的 Azure 订阅中运行。 在 Azure 订阅的每个工作区的虚拟网络中创建和配置新的计算资源。 计算资源在明确修改之前保持不变,并根据实例类型和持续时间计费。 集群可以将客户管理的密钥用于托管磁盘,并且支持 Spot 实例。
Azure Databricks 管理员可以使用群集策略来控制群集的许多方面,包括可用的实例类型、Databricks 版本和实例大小。
Databricks 虚拟网络注入是一项功能,可用于在自己的虚拟网络中部署 Azure Databricks 经典计算平面资源。 此功能可帮助你使用服务终结点或专用终结点以更安全的方式将 Azure Databricks 连接其他 Azure 服务。 还可以使用虚拟网络对等互连将 Azure Databricks 工作区正在运行的虚拟网络与另一个 Azure 虚拟网络对等互连。