Appearance
DBeaver 连接 Athena 指南
DBeaver连接Athena
本文是关于如何使用DBeaver连接Athena的文档,以如下账户和链接为例
jdbc连接:jdbc:athena-https://bi-apis.item.com/jdbc/private_connect/amanda-query?catalog=AwsDataCatalog&database=default
用户名:amanda.li
邮箱:amanda.li@unisco.com
密码:(略)
注:如需使用,请找BI申请权限
参考文献: BI-2159 - Athena | Wms app JDBC Closed
一、准备
1、下载DBeaver
2、获取jdbc连接的jar包
二、创建驱动
1、打开DBeaver,选择数据库->驱动管理器->新建

2、填写驱动信息
驱动名称:athena_jdbc
驱动类型:Generic
类名:com.example.athena.jdbc.AthenaHttpDriver
URL 模板:jdbc:athena-http://{host}?database=
3、切换到 库 标签页->添加文件→选择获取的jar包

点击确定
三、创建连接
数据库->新建数据库连接->选择 athena_jdbc(也就是上一步创建的驱动)
选择 URL 连接方式
填写 JDBC URL:jdbc:athena-https://bi-apis.item.com/jdbc/private_connect/amanda-query?catalog=AwsDataCatalog&database=default
填写认证信息:
用户名:amanda.li
密码:(上面的密码)
勾选 保存密码
点击 测试连接->确定


四、数据查询
1、如图就是可以查询的数据库、schema、表

2、新建编辑器

3、选择刚才的连接
这个连接的名称可以编辑,此时我们就先默认

4、查询
建议查询时使用 database.schema.table/view 这种三段式的写法


五、针对于提出问题的解答

问题:
1、WMS的activity report的,通过customer+facility+date range查activity report的数据
2、通过invoice number查BNP的invoice details
3、通过customer查BNP的price list
回答:
问题一
sql
SELECT * FROM "s3tablescatalog/dwd"."wms"."wms_activity_report"
WHERE facility = 'LT_F1'
AND customerid = 'ORG-629731'
AND starttime BETWEEN TIMESTAMP '2026-04-01' AND TIMESTAMP '2026-04-20'
ORDER BY starttime DESC核心筛选字段: facility — 仓库 ID(如 LT_F1) customerid / customername — 客户 starttime — 时间范围
问题二
sql
--查询 invoicenumber为 19120420 的invoice detail 数据
SELECT * FROM AwsDataCatalog.accounting_bnp_external.accounting_ar_dws_invoice_line_detail
WHERE pt = (SELECT MAX(pt) FROM AwsDataCatalog.accounting_bnp_external.accounting_ar_dws_invoice_line_detail)
AND h_invoice_number IN ('19120420');问题三
sql
--查询客户VIZIO,版本号码2931的price list 数据
SELECT
c.version_number,
c.effective_date_from,
c.effective_date_end,
d.*
FROM AwsDataCatalog.accounting_bnp_external.accounting_billing_dws_price_list_detail d
LEFT JOIN AwsDataCatalog.accounting_bnp_external.accounting_billing_dwd_check_list c
ON d.version_id = c.id
AND c.pt = (SELECT MAX(pt) FROM AwsDataCatalog.accounting_bnp_external.accounting_billing_dwd_check_list)
WHERE d.pt = (SELECT MAX(pt) FROM AwsDataCatalog.accounting_bnp_external.accounting_billing_dws_price_list_detail)
AND d.customer_name IN ('VIZIO')
AND c.version_number = 2931;