You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级DBR与NiFi后,无需自定义HiveConnectionPool的Databricks取数方案

从Apache NiFi提取Databricks数据的推荐方案(替代弃用的HiveQL处理器)

针对你升级DBR 14.3和NiFi 1.27后遇到的HiveQL处理器弃用问题,以下是无需自行编写连接池的推荐方案:

1. 使用JDBC处理器(通用且稳定)

  • 配置DBCPConnectionPool连接池:
    • 驱动类设置为 com.databricks.client.jdbc.Driver
    • JDBC URL格式:jdbc:databricks://<你的Databricks实例地址>:443/default;transportMode=http;ssl=1;httpPath=<SQL仓库的HTTP路径>;AuthMech=3;UID=token;PWD=<你的个人访问令牌>
  • 使用ExecuteSQL处理器执行查询:
    • 关联上述配置好的DBCP连接池,直接编写SQL语句即可提取数据,功能完全替代原有的SelectHiveQL/SelectHive3QL处理器。

2. 使用NiFi官方Databricks专用处理器

NiFi 1.27提供了适配Databricks的原生处理器,无需手动维护连接池:

  • 配置DatabricksSQLConnectionService:
    • 填入Databricks实例URL、SQL仓库的HTTP路径、个人访问令牌,系统会自动管理连接。
  • 使用QueryDatabricksSQL处理器:
    • 关联上述连接服务,输入要执行的SQL查询,处理器会直接返回结构化查询结果,适配最新DBR版本的特性。

3. 调用Databricks SQL REST API(灵活但需额外处理)

如果需要更定制化的逻辑,可通过InvokeHTTP处理器调用API:

  • 构造POST请求到/api/2.0/sql/statements端点,请求体携带SQL查询内容,请求头添加Authorization: Bearer <你的访问令牌>
  • 对返回的JSON结果,使用SplitJSON、ConvertJSONToAvro等处理器解析和转换数据。不过这种方式需要处理API分页和结果格式,适合有定制需求的场景。

注意事项

  • 使用JDBC方式时,需确保NiFi环境中已上传Databricks JDBC驱动包(可通过NiFi UI的External Resources功能添加)。
  • 个人访问令牌需具备sql_select等必要权限,确保能执行查询操作。

内容的提问来源于stack exchange,提问作者Vijay Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:22:35