
# 配置DBeaver连接DLI进行数据查询和分析
DBeaver 是一个免费且开源的数据库管理工具，支持多种数据库，通过DBeaver这款可视化数据库管理工具可以查看数据库结构、执行SQL查询和脚本、浏览和导出数据等。本节操作介绍DBeaver连接DLI服务的操作步骤。
#### 操作前准备
- **工具包**
  - **DLI的JDBC驱动：**
    单击[dli-jdbc-x.x.x.jar](https://uquery-sdk.obs-website.cn-north-1.myhuaweicloud.com)获取JDBC驱动，驱动名称：huaweicloud-dli-jdbc-xxx-dependencies.jar。
    
  
  - **DBeaver客户端安装包：**
    DBeaver官网提供了针对不同操作系统的客户端安装包，单击[下载DBeaver](https://dbeaver.io/files/)访问DBeaver官网下载系统对应的DBeaver客户端安装包并完成安装 。推荐使用24.0.3版本的DBeaver。
    
   
- **连接信息：**
  表1连接信息 
  | 类别             | 说明                                | 获取方式                                                                                   |
  |:---|:---|:---|
  | DLI AKSK       | AK/SK认证就是使用AK/SK对请求进行签名，从而通过身份认证。 | [获取AK/SK](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)     |
  | DLI Endpoint地址 | 地区与终端节点，即云服务在不同Region有不同的访问域名。    | [获取EndPoint](https://support.huaweicloud.com/devg-apisign/api-sign-provide-start.html) |
  | DLI所在的项目ID     | 项目编号，用于资源隔离。                      | [获取项目ID](https://support.huaweicloud.com/api-dli/dli_02_0183.html)                     |
  | DLI区域信息        | DLI所属区域信息                         | [地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint)                      |
     
  
 
 #### 步骤1：在DBeaver新建DLI JDBC驱动
1. 在**DBeaver** 单击"数据库 \> 驱动管理器"，创建新的驱动连接。
   使用驱动类加载DLI的JDBC驱动，请确保使用的jar包为huaweicloud-dli-jdbc-2.1.1-jar-with-dependencies.jar。
   图1新建驱动连接   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001886074792.png "点击放大") 
2. 打开创建新驱动界面。
3. 在"设置"页输入驱动相关参数说明，单击"确定"创建驱动。
   驱动参数配置说明请参考[表2]。
   图2编辑驱动连接   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001980673745.png "点击放大")
    表2驱动相关参数说明 
   | 参数               | 说明                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 驱动名称             | 命名为便于识别的名称，例如GaussDB Driver。                                                                                                                                                                                                                                               |
   | 驱动类型             | 驱动类型选择Generic。                                                                                                                                                                                                                                                             |
   | 类名               | 在JDBC驱动中用于建立数据库连接的Java类名。                                                                                                                                                                                                                                                  |
   | URL模板            | DLI JDBC驱动连接的格式： DLI JDBC驱动连接配置示例请参考[•DLIJDBC驱动连接的格式：]和[•DLIJDBC驱动连接配置示例：]。 ``` jdbc:dli://<endPoint>/projectId?<key1>=<val1>;<key2>=<val2>... ``` |
   | 默认端口             | 需要连接的数据库端口。                                                                                                                                                                                                                                                                |
   | Default Database | 需要连接的数据库名。                                                                                                                                                                                                                                                                 |
   | Default User     | 账号名称。默认root。                                                                                                                                                                                                                                                               |
      
   - **DLI JDBC驱动连接的格式**
     ```
     jdbc:dli://<endPoint>/projectId?<key1>=<val1>;<key2>=<val2>...
     ```
     ? 后面接其他配置项，每个配置项以 key=value 的形式列出，配置项之间以 ; 隔开。
     
   
   - **DLI JDBC驱动连接** **配置示例**
     ```
     jdbc:dli://dli.ap-southeast-2.myhuaweicloud.com/0b33ea2a7e0010802fe4c009bb05076d?databasename=tpch;queuename=auto;accesskey=XXXX;secretkey=XXXXX;regionname=ap-southeast-2;enginetype=spark;catalog=lfcatalog
     ```
     详细参数说明请参考[表3]和[表4]。
      表3驱动连接配置信息参数说明 
     | 参数                | 说明                                                | 获取方式                                                                                   |
     |:---|:---|:---|
     | endPoint          | 地区与终端节点，即云服务在不同Region有不同的访问域名。                    | [获取EndPoint](https://support.huaweicloud.com/devg-apisign/api-sign-provide-start.html) |
     | projectId         | DLI资源所在的项目ID。                                     | [获取项目ID](https://support.huaweicloud.com/devg-apisign/api-sign-provide-start.html)     |
     | \<key1\>=\<val1\> | 连接中? 后面接其他配置项，每个配置项以 key=value 的形式列出，配置项之间以 ; 隔开。 | 请参考[表4]                                              |
        
      表4key=value参数说明 
     | 参数                  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                | 是否必选 | 示例                                                                              |
     |:---|:---|:---|:---|
     | queuename           | DLI服务的队列名称。                                                                                                                                                                                                                                                                                                                                                                                                       | 是    | dli_test                                                                        |
     | databasename        | 数据库名称。                                                                                                                                                                                                                                                                                                                                                                                                            | 是    | tpch                                                                            |
     | accesskey和secretkey | AK/SK认证密钥。 如果使用AK/SK认证方式。                                                                                                                                                                                                                                                                                                                                                           | 是    | accesskey=your-access-key secretkey=your-secret-key |
     | regionname          | DLI的区域名称。 如果使用AK/SK认证方式时配置。                                                                                                                                                                                                                                                                                                                                                            | 是    | -                                                                               |
     | charset             | JDBC编码方式。 默认为UTF-8。                                                                                                                                                                                                                                                                                                                                                                 | 否    | -                                                                               |
     | enginetype          | DLI的队列类型。 spark：代表Spark引擎的队列。 默认配置为spark。                                                                                                                                                                                                                                                                                                               | 否    | spark                                                                           |
     | catalog             | 元数据catalog名称。 - 使用Lakeformation catalog时必填，对应的Lakeformation catalog名称。 查询Lakeformation catalog时， catalog下面必须有 default数据库。   - 不填写时默认DLI catalog，使用DLI catalog时无需配置该参数。   | 否    | 假设使用名称为lfcatalog的Lakeformation catalog时，配置如下：catalog=lfcatalog                  |
        
     
     
4. 在"库"页中，单击添加文件，添加[1]中的huaweicloud-dli-jdbc-xxx-dependencies.jar。
   图3上传驱动   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001932874981.png) 
5. 添加后驱动类为空，需要单击"找到类"。识别出来的驱动类，需要与"设置"页的"类名"一致。
6. 单击"确定"，驱动设置完成。
 
#### 步骤2：测试连接数据库
1. 在DBeaver客户端单击"数据库 \> 新建数据库连接"，选择[步骤1：在DBeaver新建DLI JDBC驱动]中创建的数据驱动。
   图4新建数据库连接   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001886126930.png "点击放大") 
2. 单击"完成"，即可连接到DLI。在"数据库导航"栏可查看到连接的数据库信息。
3. 通过新建的连接即可对DLI执行后续的数据查询相关工作。
 
#### 步骤3：在DBeaver编写SQL查询
在DBeaver建立与DLI的连接后，即可在DBeaver编写SQL查询：
1. 您可以在左侧的数据库导航面板中选择数据库对象，然后在中间的查询编辑器中编写SQL语句。
2. 编写完查询后，可以单击工具栏上的"运行"按钮（通常是一个绿色的播放图标）来执行查询。
3. 查询执行后，结果将显示在查询编辑器下方的数据网格中。
   图5在DBeaver编写SQL查询   
   ![](https://support.huaweicloud.com/bestpractice-dli/zh-cn_image_0000001980673465.png "点击放大") 
 
