在此阶段,你将设计计算资源和工作区设置,以优化性能、成本和安全性。
Azure Databricks建议使用无服务器计算作为主要选项。 无服务器架构无需任何配置,能够始终可用,并可在数秒内根据工作负荷自动扩展。 仅当无服务器不支持用例时手动配置经典计算。
设计群集大小调整策略
对于经典计算负载,请遵循集群大小调整的最佳实践,以找到合理的起始点。
群集大小调整注意事项
- 工作负荷类型:批处理需要更大的群集。 交互式工作负载受益于自动缩放。
- 数据卷:根据预期的数据量和并行度要求调整群集大小。
- 性能要求:在成本和查询延迟之间进行平衡。
- 自动缩放:为具有可变需求的工作负荷启用自动缩放。
- 实例类型:根据 CPU、内存和 I/O 要求选择实例类型。
群集大小调整模式
- 小型群集 (2-8 个节点):开发、测试和小型数据集。
- 中等群集 (8-32 个节点):生产 ETL 和分析工作负荷。
- 大型群集 (32 个以上节点):大规模批处理和机器学习训练。
群集大小调整的最佳做法
- 从基线配置开始,并根据性能指标进行迭代。
- 使用自动缩放高效处理变量工作负荷。
- 监视群集利用率指标(例如 CPU、内存、I/O),以便正确调整群集的规模。
- 记录群集大小调整决策和性能基线。
有关详细的群集大小调整指南,请参阅 计算配置建议。
设计 SQL 仓库大小调整策略
虽然数据科学团队通常很小,但商业智能(BI)用例通常涉及数千名分析师。 为了支持许多用户,Azure Databricks SQL 使用基于三个主要因素添加或删除群集的自动缩放机制:
- 查询吞吐量:当前正在运行多少个查询?
- 队列大小:有多少个查询在等待空位?
- 预测需求:未来两分钟的估计工作负荷。
本质上,Azure Databricks在计算当前硬件无法快速处理现有和即将进行的查询时添加群集。
选择正确的 SQL 仓库配置
选择正确的设置涉及均衡计算大小(电源)和计算计数(并发)。
选取大小(XS 到 XL)
群集的“T 恤大小”决定了每个查询可用的计算能力。
- 小型层 (XS, S):最适合简单、快速的查询。 对于基本仪表板来说,成本效益最高。
- 大型层 (L, XL):处理大型数据集以防止性能瓶颈的复杂繁重查询所必需的。
选择计数(并发)
计算资源数决定了可同时支持的用户数。
- 经验规则:为每个群集规划大约 10 个并发查询。
- 高并发性:如果有多个用户运行小型查询,请使用许多小型群集。
- 低并发性:如果有几个用户运行大规模查询,请使用几个大型群集。
摘要:增加大小以使单个查询更快。 增加计数以同时处理更多用户。
SQL 仓库大小调整的最佳做法
- 从无服务器 SQL 仓库开始(无需调整大小)。
- 对于经典 SQL 仓库,请从中等大小开始,并根据查询模式进行调整。
- 监视查询性能和排队指标。
- 将多个仓库用于不同的使用场景(临时处理和报告)。
- 记录不同用户组的性能 SLA。
设计群集策略政策
使用群集策略,Azure Databricks管理员可以控制启动的群集的许多方面。 建议对所有组织使用群集策略。 常见模式包括:
群集策略用例
- 将用户设置为规定的设置:包括可用的实例类型、Azure Databricks版本和实例大小。
- 简化用户界面:通过修复和隐藏某些值。
- 控制成本:通过限制每个群集的最大成本。
- 强制实施符合性:要求外部元存储或特定群集标记符合公司策略。
群集策略模式
- 开发策略:用于开发和测试的小型经济高效的群集。
- 生产策略:具有特定实例类型和标记的更大、功能更强大的群集。
- ML 策略:具有 GPU 功能的 ML 运行时群集。
群集策略的最佳做法
- 为不同的团队或用例创建单独的策略。
- 使用群集策略强制实施成本控制和资源限制。
- 需要所有群集上的标记,以便进行成本归因。
- 通过隐藏不必要的配置选项来简化 UI。
- 记录群集策略用途和限制。
有关详细的群集策略配置,请参阅 创建和管理计算策略。
设计预算策略策略
预算策略由应用于任何由策略分配用户产生的无服务器计算活动的标签组成。 标记将记录在计费记录中,使你可以将选择无服务器使用情况归为特定预算。
预算策略用例
- 将无服务器计算成本归因于特定部门或项目。
- 跟踪不同环境的成本(例如开发、过渡、生产)。
- 根据预算限制监视支出。
- 按业务部门或成本中心生成成本报告。
预算策略的最佳做法
- 为每个部门或项目创建预算策略。
- 在所有计算资源中使用一致的标记方案。
- 通过系统表和仪表板监视预算使用情况。
- 为预算阈值设置警报。
- 按季度审查和调整预算分配。
将策略应用于笔记本、作业或 Lakeflow Spark 声明性管道后,策略中包含的任何标记将传播到系统表 system.billing.usage 的 custom_tags 列。
监视使用情况和成本
将预生成的使用情况仪表板导入工作区,以监视帐户和工作区级别的使用情况。
使用情况监控最佳实践
- 导入和自定义预生成的使用情况仪表板。
- 按工作区、用户和计算类型监视使用情况趋势。
- 为异常支出模式设置警报。
- 每月与财务团队一起查看使用情况报告。
- 使用系统表进行自定义使用情况分析。
设计访问控制策略
对于默认Azure Databricks安装,除非管理员启用工作区访问控制,否则所有用户都可以创建和修改工作区对象。 希望在工作区中实现访问控制隔离的组织可以启用工作区访问控制。
访问控制模式
- 宽松(默认):所有用户都可以创建群集、作业和笔记本。
- 受限:用户需要显式权限才能创建工作区对象。
- 隔离:不同的团队有权访问不同的工作区资源。
工作区访问控制的最佳做法
- 为生产环境启用工作区访问控制。
- 使用组管理权限,而不是单个用户。
- 实现最低特权访问权限(仅授予必要的权限)。
- 定期查看和审核工作区权限。
- 在 Runbook 中记录访问控制策略。
有关详细的访问控制配置,请参阅 访问控制列表。
查看工作区设置
管理控制台中的“工作区设置”页包含大量重要设置,其中许多设置未由 API 涵盖(因此无法自动完成)。 在工作区生产就绪之前,请查看所有这些设置。
从中下载安全最佳做法指南 https://www.databricks.com/trust/security-features/best-practices 并相应地实施建议。
要查看的关键工作区设置
- 访问/可见性控制:默认启用。 控制工作区、群集、池和作业可见性。
- Table Access Control:默认禁用。 如果需要细粒度表 ACL,请考虑将此项保留为禁用状态并使用 Unity 目录。
- 强制实施用户隔离:默认禁用。 启用功能以避免使用“无隔离”群集。
- 容器服务:默认禁用。 启用以允许自定义 Docker 容器。
- Repos Git 允许列表:默认禁用。 请考虑启用功能以限制用户可以访问哪些存储库。
-
外泄保护:请考虑禁用功能以避免数据外泄:
- 笔记本结果的下载按钮
- 使用 UI 上传数据
- 笔记本导出
- 笔记本电脑表格剪贴板功能
- MLflow 运行工件下载
- 交互式笔记本结果存储:启用将结果存储在客户帐户中。
工作区设置的最佳做法
- 在生产部署之前查看所有工作区设置。
- 根据安全性和符合性要求启用功能。
- 禁用可能导致数据泄露的敏感工作区的功能特性。
- 在 Runbook 中记录工作区设置和理由。
- 尽可能使用 IaC (Terraform) 管理工作区设置。
工作区计算建议
推荐
- 使用无服务器计算作为 SQL、笔记本、任务和 Lakeflow Spark 声明性管道的主要选项。
- 为群集和 SQL 仓库创建初始配置,然后根据实际负载进行优化。
- 设计容量时,请记住成本/性能权衡。
- 使用群集策略来限制权限并强制实施合理的群集大小。
- 使用预算策略将无服务器成本归因于部门或项目。
- 通过系统表和预生成的仪表板监视使用情况。
- 为生产环境启用工作区访问控制。
- 在生产部署之前仔细查看工作区设置。
避免这些模式
- 请勿在生产环境中手动创建群集,而无需群集策略。
- 不允许无限制的群集大小或实例类型,而无需控制。
- 在确定群集大小之前,请勿跳过使用实际工作负荷进行测试。
- 避免在没有进行安全审查的情况下启用可能导致数据外泄的功能。
- 请勿在不查看所有工作区设置的情况下部署到生产环境。
阶段 8 结果
完成阶段 8 后,应具备:
- 定义的计算策略(适用于不同工作负荷的无服务器计算与经典计算)。
- 专为经典计算工作负荷设计的群集大小调整策略。
- 针对 BI 和分析工作负荷设计的 SQL 仓库大小调整策略。
- 针对不同团队或用例使用策略设计的群集策略策略。
- 设计用于无服务器成本归因的预算策略策略。
- 使用仪表板和警报来定义的使用监控方法。
- 专为工作区对象设计的访问控制策略。
- 查看并且记录用于生产部署的工作区设置。
- 定义的成本优化策略(例如自动缩放、调整大小)。
下一阶段: 阶段 9:设计可观测性策略
实施指南:有关实现计算配置的分步说明,请参阅 “计算”。