无服务器计算的最佳做法

本文介绍了在笔记本和作业中使用无服务器计算的最佳做法建议。

按照这些建议,你将在 Azure Databricks 上提高工作负荷的工作效率、成本效益和可靠性。

将工作负荷迁移到无服务器计算

为了确保在共享无服务器计算环境中隔离用户代码,Azure Databricks 利用 Lakeguard 将用户代码与 Spark 引擎和其他用户隔离。

因此,某些工作负荷需要更改代码才能继续处理无服务器计算。 有关限制列表,请参阅无服务器计算限制

某些工作负荷比其他工作负荷更容易迁移。 满足以下要求的工作负荷最容易迁移:

  • 访问的数据必须存储在 Unity Catalog 中。
  • 工作负荷应与 标准计算兼容。
  • 工作负荷应与 Databricks Runtime 14.3 或更高版本兼容。

若要测试工作负荷是否在无服务器计算上工作,请在 具有标准 访问模式的经典计算资源和 14.3 或更高版本的 Databricks Runtime 上运行它。 如果运行成功,则工作负荷已准备好进行迁移。

许多较旧的工作负载不会无缝迁移。 Azure Databricks 建议在新建工作负荷时优先处理无服务器计算兼容性,而不是重新编码所有内容。

指定 Python 包版本

迁移到无服务器计算时,请将 Python 包固定到特定版本,以确保可重现的环境。 如果未指定版本,包可能会根据无服务器环境版本解析为其他版本,这可能会增加延迟,因为需要安装新包。

例如,文件 requirements.txt 应包含特定包版本,如下所示:

numpy==2.2.2
pandas==2.2.3

从外部系统引入数据

由于无服务器计算不支持 JAR 文件安装,因此无法使用 JDBC 或 ODBC 驱动程序从外部数据源引入数据。

可用于引入的替代策略包括:

引入替代项

使用无服务器计算时,还可以使用以下功能来查询数据,而无需移动数据。

  • 如果要限制数据重复或保证查询可能的最新数据,Databricks 建议使用增量共享。 请参阅什么是 Delta Sharing?
  • 如果要执行特别报告和概念证明工作,Databricks 建议尝试正确的选择,这可能是 Lakehouse 联合身份验证。 Lakehouse 联合身份验证允许将整个数据库从外部系统同步到 Azure Databricks,并由 Unity Catalog 治理。 请参阅“什么是 Lakehouse Federation?”。

尝试其中一项或两项功能,查看它们是否满足查询性能要求。

支持的 Spark 配置

若要在无服务器计算中自动配置 Spark,Azure Databricks 已删除对手动设置大多数 Spark 配置的支持。 若要查看支持的 Spark 配置参数的列表,请参阅 为无服务器笔记本和作业配置 Spark 属性

如果设置不支持的 Spark 配置,则无服务器计算上运行的作业将失败。

监视无服务器计算的成本

可使用多种功能来帮助监视无服务器计算的成本: