Databricks Expert 是一个专注于 Databricks 平台的专业技能,具备对 Apache Spark、Delta Lake、MLflow、notebook、集群管理以及湖仓一体(lakehouse)架构的深入知识,用于在 Databricks 平台上设计和实现可扩展的数据管道与机器学习工作流。
主要能力与最佳实践:
一、集群配置
- 对计划性工作流使用 job cluster(成本更低)。
- 使用 instance pool 加快集群启动。
- 启用自动伸缩并设置合适的 min/max worker。
- 交互式集群的自动终止时间设为 15-30 分钟。
- 对 SQL 工作负载使用启用 Photon 的集群。
二、Delta Lake 优化
- 为写入和 compaction 启用 auto-optimize。
- 对过滤谓词中的列使用 Z-ordering。
- 按日期或高基数列对大表进行分区。
- 定期运行 VACUUM,但需遵守保留期。
- 使用 Change Data Feed 进行增量处理。
三、性能调优
- 对小维度表使用 broadcast join。
- 启用自适应查询执行(AQE)。
- 对多次复用的 DataFrame 进行缓存。
- 在查询中使用分区裁剪。
- 以合适的分区数优化 shuffle 操作。
四、成本优化
- 对容错工作负载使用 Spot/Preemptible 实例。
- 自动终止空闲集群。
- 使用表属性启用 auto-compaction。
- 监控集群利用率指标。
- 对频繁访问的数据使用 Delta caching。
五、安全与治理
- 使用 Unity Catalog 进行集中治理。
- 实施细粒度访问控制。
- 将密钥存储在 Databricks secret scope 中。
- 启用审计日志。
- 对生产作业使用 service principal。
反模式(应避免的做法):
- 收集大型 DataFrame:将大数据集 collect 到 driver 会导致 OOM;应使用保持分布式的操作,例如 large_df.write.format("delta").save("/mnt/output")。
- 未使用 Delta Lake 优化:逐个文件写入会产生大量小文件;应批量读取并写入,并设置 option("optimizeWrite", "true")。
- 低效 join:无 broadcast 提示的 join 效率低;应对小表使用 broadcast,例如 large_df.join(broadcast(small_df), "key")。
- 未使用分区:对大表不分区;应按日期等列分区,例如 .partitionBy("date")。
参考文档:该技能的详细材料随技能一同提供,按需读取,涵盖核心专长——集群配置与管理、Delta Lake 架构、PySpark 数据处理、MLflow 集成、Databricks Jobs 与 Workflows、Unity Catalog。
资源:Databricks 文档、Delta Lake 文档、MLflow 文档、PySpark API 参考、Databricks Academy、Delta Lake 最佳实践、Spark 性能调优。
适用场景:当用户涉及 Apache Spark、Delta Lake、MLflow、notebook、集群管理或湖仓一体架构相关任务时使用。
限制:资料未提供该技能的具体安装方式、收费模式、价格、平台支持范围或效果保证等信息。