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

如何以DBeaver为中间件从SAP HANA提取数据至Jupyter Notebook?

解决方案

方法1:复用DBeaver已有的SAP HANA JDBC驱动,通过Python的jaydebeapi连接

你已经通过DBeaver成功连接SAP HANA,说明DBeaver本地已存储对应JDBC驱动文件,可直接复用该驱动,结合Python的jaydebeapi库实现连接,无需额外安装hdbcli或付费ODBC驱动。

步骤1:定位DBeaver中的SAP HANA JDBC驱动路径

  • 打开DBeaver,右键已建立的SAP HANA连接 → 选择「编辑连接」
  • 切换到「驱动」标签页,点击「库」按钮,即可看到驱动文件的存储目录(通常路径类似 C:\Users\<你的用户名>\.dbeaver\drivers\maven\maven-central\com.sap.cloud.db.jdbc\ngdbc\<版本号>,目录内包含ngdbc-<版本号>.jar文件)

步骤2:安装jaydebeapi库

在Jupyter Notebook的代码单元格中执行:

!pip install jaydebeapi

步骤3:编写Python代码实现连接与查询

import jaydebeapi
import pandas as pd

# 替换为你的实际配置信息
jdbc_driver_path = r"C:\Users\你的用户名\.dbeaver\drivers\maven\maven-central\com.sap.cloud.db.jdbc\ngdbc\2.19.12\ngdbc-2.19.12.jar"
host = "你的HANA主机名"
port = "你的端口号"
user = "你的用户名"
password = "你的密码"
database = "你的目标数据库名称"

# 构建JDBC连接URL
jdbc_url = f"jdbc:sap://{host}:{port}/?databaseName={database}"

# 建立连接
conn = jaydebeapi.connect(
    "com.sap.db.jdbc.Driver",
    jdbc_url,
    [user, password],
    jdbc_driver_path,
)

# 执行查询并转为DataFrame
query = "SELECT * FROM 你的目标表名 LIMIT 10"
df = pd.read_sql(query, conn)

# 查看数据
print(df)

# 关闭连接
conn.close()

方法2:DBeaver导出静态数据+Python读取(适合批量非实时场景)

如果无需实时查询,可通过DBeaver预先提取数据并导出,再在Jupyter中读取:

  • 在DBeaver中打开SQL编辑器,执行目标查询语句
  • 右键查询结果 → 选择「导出结果」,将数据保存为CSV/Parquet等格式到本地
  • 在Jupyter中用pandas.read_csv()或pandas.read_parquet()直接读取文件

注意事项

  • 驱动路径中的反斜杠需用\\转义,或使用Python原始字符串(前缀加r)
  • 若提示驱动类找不到,检查DBeaver驱动库中的jar文件是否完整,或尝试更新DBeaver的SAP HANA驱动至最新版本

内容的提问来源于stack exchange,提问作者Sam Hinton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:02:48