databricks/databricks-sdk-py
Databricks SDK for Python (Beta)
Databricks SDK for Python(测试版)
是什么 – 一个封装了全部公开 Databricks REST API 的 Python 客户端库。它允许您通过 Python 代码程序化地管理 Databricks 工作区、集群、作业、Unity Catalog 以及其他 Lakehouse 资源。
为何重要 – Databricks 是一个广泛使用的云数据湖/数据仓库平台,同时也托管基于 Spark 的机器学习工作负载。该 SDK 抽象了原始的 HTTP 调用,增加了智能重试、分页处理和统一认证,使得构建与 Databricks 交互的自动化、CI/CD 流水线或自定义工具变得简单得多。
快速入门
pip install databricks-sdk
from databricks.sdk import WorkspaceClient
w = WorkspaceClient() # 从 .databrickscfg、环境变量或默认值中获取主机/令牌
for c in w.clusters.list():
print(c.cluster_name)
该 SDK 支持 Python 3.7–3.11。在 Databricks Runtime 13.1+ 中,该库已预先安装;否则,请在笔记本中运行 %pip install --upgrade databricks-sdk 并重启 Python 进程。
核心功能(详见 README)
- 完整 API 覆盖 – 所有公开的 Databricks REST 端点均作为 Python 方法暴露。
- 健壮的 HTTP 客户端 – 对临时失败自动重试和退避。
- 分页响应 – 迭代器助手隐藏了分页细节。
- 长运行操作处理 – 提供帮助程序以等待作业、集群等达到所需状态。
- 统一认证 – 支持:
- Databricks 个人访问令牌(PAT)认证
- 工作负载身份联合(OIDC)令牌
- Azure 原生流程(客户端密钥、Azure CLI、托管服务身份)
- GCP 原生流程(服务账户 JSON、默认应用凭证)
- 自动检测云提供商(AWS、Azure、GCP)并选择相应方法。
- 配置来源 – 凭据可通过函数参数、环境变量或
~/.databrickscfg配置文件提供。SDK 按指定顺序搜索这些位置,找到第一个有效配置即停止。 - 统一主机支持 – 当
account_id和workspace_id存在时,单个主机可同时提供账户级和工作区级 API,允许使用同一配置文件创建WorkspaceClient和AccountClient对象。 - 用户代理归属 – 客户端添加可识别的头部,供 Databricks 跟踪 SDK 使用情况。
- 错误处理与日志 – 一致的异常类型和可选的日志钩子。
仓库中展示的示例用例
- Flask Web 服务器中的 OAuth 流程(
examples/flask_app_with_oauth.py)。 - 启动作业并等待其完成(
examples/starting_job_and_waiting.py)。 - 本地浏览器 OAuth 登录(
examples/local_browser_oauth.py)。 - 实际项目如 Unity Catalog 迁移和 IP 访问列表分析均依赖此 SDK。
进一步学习
- 完整 API 参考: https://databricks-sdk-py.readthedocs.io
- 云特定文档:README 中包含 AWS、Azure、GCP 链接。
- 相关 SDK:Java、Go 以及 Terraform 提供者。
许可证 – 在与上游 Databricks 仓库相同的许可证下开源(详见 LICENSE)。
相关
- 项目
- 项目
- 项目
- 项目
- 项目