Reflex 接入 Databricks 完全指南:从凭据获取到数据驱动应用落地
【免费下载链接】reflex🕸️ Web apps in pure Python 🐍项目地址: https://gitcode.com/GitHub_Trending/re/reflex
导读
本指南讲解如何在 Reflex 应用中接入 Databricks 数据平台,实现安全的数据访问、SQL 查询与分析能力。你将掌握从 Databricks 控制台获取连接凭据(HOST / WAREHOUSE_ID / CATALOG / SCHEMA)、配置 OAuth 与 Service Principal 两种认证方式、在 Reflex Build 中完成集成配置,以及管理员为团队启用登录所需的 OIDC 回调设置。读完本文,你可以在纯 Python 的 Reflex 应用里直接查询 Databricks 数据,并在此基础上构建仪表盘、数据可视化与 AI 增强的数据工作流。
一、Databricks 集成能做什么
Databricks 是一个统一的数据分析平台,支持湖仓一体架构下的数据管道与高级分析。Reflex 的 Databricks 集成让应用与 Databricks 工作区建立安全连接,连接后即可在应用内直接执行 SQL 查询、取回结果并驱动数据相关的工作流。具体能力包括:
- 安全连接:应用通过受控凭据连接你的 Databricks 工作区;
- 查询与取数:执行 SQL 查询或以编程方式获取数据;
- 可视化构建:基于 Databricks 表构建仪表盘和数据可视化界面;
- 工作流自动化:由新增或更新的数据自动触发工作流;
- AI 增强分析:将 Databricks 数据与 AI 模型结合,实现高级分析。
该集成属于 Reflex Build 的 AI Builder 能力范畴,配置完成后 AI Builder 可以直接针对你的 Databricks 环境执行查询。相关文档位于仓库 packages/integrations-docs/src/integrations_docs/docs/ 目录,与 Snowflake 等数据类集成的说明并列存放。
二、Step 1:获取 Databricks 连接凭据
在配置集成之前,需要先从 Databricks 控制台收集四类信息。
2.1 获取 DATABRICKS_HOST 与 DATABRICKS_WAREHOUSE_ID
- 登录你的 Databricks 工作区;
- 从侧边栏进入
SQL Warehouses; - 选择目标仓库(Warehouse);
- 点击
Connection details; - 复制Server hostname,即
DATABRICKS_HOST; - 复制HTTP path,并去掉其
/sql/1.0/warehouses/前缀,剩余部分即DATABRICKS_WAREHOUSE_ID。
字段说明:HTTP path 的完整形式通常为
https://<host>/sql/1.0/warehouses/<warehouse_id>,其中<warehouse_id>是 SQL 仓库的唯一标识。集成配置中只使用去掉前缀后的 ID 部分。
2.2 获取 DATABRICKS_CATALOG 与 DATABRICKS_SCHEMA
- 从侧边栏点击
SQL Editor; - 从编辑器的下拉框中选择目标
DATABRICKS_CATALOG(目录,如samples)和DATABRICKS_SCHEMA(模式,如bakehouse)。这两个值决定了应用默认查询的数据范围。
注意:Catalog 与 Schema 是 Databricks 统一目录(Unity Catalog)中组织数据的层级结构,选择错误会导致后续查询找不到表,请务必与目标表所在位置保持一致。
2.3 获取认证凭据(两种方式二选一)
应用与 Databricks 的认证有两种方式:面向个人的交互式U2M OAuth,以及面向服务账户的M2M Service Principal。根据你的使用场景选择其一。
方式 A:OAuth(U2M,交互式登录)
如果你的工作区管理员已把 Reflex 添加为 Databricks 的 Connected App,那么在集成配置页面输入DATABRICKS_HOST后,即可看到"Login with Databricks"按钮,用户点击后以本人账户完成授权。这种方式无需手动维护客户端密钥,适合个人开发或小团队使用。
方式 B:Service Principal(M2M,服务主体)
这种方式需要注册一个服务主体并生成密钥,适合自动化、无人值守的场景。步骤如下:
- 点击右上角下拉菜单,选择Manage Account,进入账户管理页;
- 选择
Users and Groups; - 打开
Service Principals标签页,点击Add Service Principal; - 填写主体信息并点击
Add Service Principal创建; - 进入该主体的
Credentials and Secrets标签页,点击Generate Secret; - 为密钥设置有效期并点击
Generate; - 复制生成的
DATABRICKS_CLIENT_ID与DATABRICKS_CLIENT_SECRET妥善保存。
密钥安全提醒:
DATABRICKS_CLIENT_SECRET只在生成时展示一次,请立即复制并放入安全存储(如 Reflex Build 的 Secrets 管理),切勿提交到代码仓库。
三、Step 2:在 Reflex 应用中配置集成
完成凭据收集后,在应用侧完成连接配置:
- 打开你的应用,进入Integrations页面,点击Add Databricks;
- 粘贴
DATABRICKS_HOST; - 选择认证方式:
- OAuth:前提是工作区已配置好 Reflex Connected App;
- Service Principal:填入此前获取的 Client ID 与 Client Secret;
- 填写或选择:
DATABRICKS_WAREHOUSE_IDDATABRICKS_CATALOGDATABRICKS_SCHEMA
- 点击Connect,系统会验证连接信息并保存集成。
连接成功后,AI Builder 便可以直接针对你的 Databricks 环境执行查询,无需在代码中硬编码连接字符串。集成配置的入口与总览说明见 集成文档总览。
四、Step 3:安全与使用注意事项
- 保护令牌:绝不要在公开代码中暴露令牌(Token)或密钥;应通过应用的 Secrets 机制注入环境变量;
- 权限最小化:确保你的 Token 或服务账户具备工作区与目标表的必要权限——权限过大有安全风险,过小会导致查询失败;
- 与 AI 结合:把查询结果作为输入喂给模型,实时驱动摘要、告警或预测类功能,充分发挥"数据 + AI"的组合价值。
五、管理员篇:如何为团队启用登录
如果你希望团队成员都能通过 OAuth 方式登录,需要在 Databricks 侧把 Reflex 注册为 Connected App。具体步骤:
- 以管理员身份登录 Databricks;
- 进入Manage account;
- 依次进入Settings → Apps Connections → Add new connection;
- 填写应用名称,输入 Reflex Build 提供的重定向 URL;
- 权限选择
All APIs,并取消勾选Generate a client secret(OAuth 公共客户端无需密钥); - 点击Add完成注册。
重定向 URL 为:
https://build.reflex.dev/_reflex_oidc_databricks/authorization-code/callback提示:该回调地址同样遵循 Reflex 集成的统一 OIDC 规范——例如 Snowflake 集成的回调地址为
https://build.reflex.dev/_reflex_oidc_snowflake/authorization-code/callback(见 snowflake.md)。注册后,用户在输入DATABRICKS_HOST后即可看到登录按钮。
六、仓库中的相关资源
- 集成文档源码:packages/integrations-docs/src/integrations_docs/docs/databricks.md,同目录下还有 overview.md 与 Snowflake 等同类集成文档;
- 集成配图:images/docs/ 目录存放 Databricks 配置流程的全部截图,images/logos/ 下提供 Databricks 的明暗两套 Logo;
- Databricks 自托管/部署相关说明:docs/hosting/databricks.md;
- 集成包元信息与构建配置:packages/integrations-docs/pyproject.toml、packages/integrations-docs/README.md。
七、小结
接入 Databricks 的关键在于一次性的凭据准备与认证方式选择:个人使用优先 OAuth(需要管理员预配置 Connected App),自动化场景使用 Service Principal。配置完成后,你的 Reflex 应用就获得了直接查询 Databricks 数据的能力,可以在此基础上构建可视化仪表盘、数据自动化工作流,并与 AI 模型联动实现实时分析。务必遵守令牌保密与权限最小化原则,确保数据访问安全可控。
【免费下载链接】reflex🕸️ Web apps in pure Python 🐍项目地址: https://gitcode.com/GitHub_Trending/re/reflex
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考