Skip to content

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

https://dbeaver.io/download/

2、获取jdbc连接的jar包

https://jira.logisticsteam.com/secure/attachment/886585/886585_athena-http-jdbc-driver-1.0.0-SNAPSHOT.jar

二、创建驱动

1、打开DBeaver,选择数据库->驱动管理器->新建

img

2、填写驱动信息

驱动名称:athena_jdbc

驱动类型:Generic

类名:com.example.athena.jdbc.AthenaHttpDriver

URL 模板:jdbc:athena-http://{host}?database=

3、切换到 库 标签页->添加文件→选择获取的jar包

img

点击确定

三、创建连接

数据库->新建数据库连接->选择 athena_jdbc(也就是上一步创建的驱动)

选择 URL 连接方式

填写 JDBC URL:jdbc:athena-https://bi-apis.item.com/jdbc/private_connect/amanda-query?catalog=AwsDataCatalog&database=default

填写认证信息:

用户名:amanda.li

密码:(上面的密码)

勾选 保存密码

点击 测试连接->确定

img

img

四、数据查询

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

img

2、新建编辑器

img

3、选择刚才的连接

这个连接的名称可以编辑,此时我们就先默认

img

4、查询

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

img

img

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

img

问题:

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;