用途:该技能决定 Databricks 作业、管道与声明式自动化包(DABs)使用何种计算资源,默认将新建的作业、管道和包部署到 Serverless 上,并选择性能模式。使用前需先参考父技能 databricks-core 了解 CLI 基础、认证与 profile 选择。
主要能力:默认 Serverless 计算;按需选择 STANDARD(默认,成本优先,适合定时批处理与 ETL)或 PERFORMANCE_OPTIMIZED(有 SLA、有人等待或运行频率高时);为被阻塞的单个任务单独配置经典集群,其余任务保持 Serverless;为作业打资源追踪标签;对现有代码做快速检查而非完整迁移。
使用方式:新建作业时省略 new_cluster、job_clusters、existing_cluster_id 等集群字段,无集群的任务即运行在 Serverless 上。Python 脚本、wheel 与 JAR 任务从作业级 environments 获取依赖,需固定版本并设置 environment_key。SQL 任务使用 Serverless SQL warehouse;管道设置 serverless: true。流处理使用 .trigger(availableNow=True)。作业级设置 performance_target 选择模式。
适用场景:定时批处理、ETL、夜间或每周运行、无延迟要求的作业,以及需要快速启动或有人等待结果的作业。
限制:Serverless 仅支持 Python 和 SQL 笔记本,不支持 R、Scala 单元格、自定义 Docker 镜像、apt-get 系统包、自定义 Spark 数据源 JAR、指定实例类型或运行时版本;不支持 DBFS 挂载(dbfs:/mnt/...)与 DBFS 根路径,仅能读取 Unity Catalog 表、/Volumes/... 路径、外部位置下的云路径及 dbfs:/databricks-datasets/ 示例数据;仅支持 DataFrame 与 SQL API,不支持 RDD、sc.*、spark.sparkContext,不支持 .cache()/.persist(),不支持 spark.conf.set 设置执行器或内存参数,依赖需固定且不能用 init 脚本。工作区未启用 Serverless 时需整体回退到经典集群。管道本身没有 performance_target,需通过作业触发并设置模式。
其他:遇到 RDD 或 SparkContext 代码时,仅在单文件约 200 行以内、纯 API 翻译、输入输出与参数不变且输入已可在 Serverless 读取时,才翻译为 DataFrame 并部署,同时保留原文件为 <name>.classic.py 并提示尚未运行测试;更大的改动应保留在经典集群并建议使用 databricks-serverless-migration 技能。相关技能包括 databricks-core、databricks-jobs、databricks-pipelines、databricks-serverless-migration。