SuperAPI AI 工具集

databricks-expert

数据与分析

查看项目

更新于 10-15 09:22

技能介绍

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。

反模式(应避免的做法):

  1. 收集大型 DataFrame:将大数据集 collect 到 driver 会导致 OOM;应使用保持分布式的操作,例如 large_df.write.format("delta").save("/mnt/output")。
  2. 未使用 Delta Lake 优化:逐个文件写入会产生大量小文件;应批量读取并写入,并设置 option("optimizeWrite", "true")。
  3. 低效 join:无 broadcast 提示的 join 效率低;应对小表使用 broadcast,例如 large_df.join(broadcast(small_df), "key")。
  4. 未使用分区:对大表不分区;应按日期等列分区,例如 .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、集群管理或湖仓一体架构相关任务时使用。

限制:资料未提供该技能的具体安装方式、收费模式、价格、平台支持范围或效果保证等信息。