跳转至

Vertica 集成 DBeaver

连接指南

关于 Vertica 连接指南

Vertica 连接指南为将第三方合作伙伴产品连接到 Vertica 提供基本说明。连接指南基于我们对特定版本的 Vertica 和合作伙伴产品的测试。

Vertica 和 DBeaver:最新测试版本

软件 版本
合作伙伴产品 DBeaver 23.1.3
桌面平台 Windows Server 2019
Vertica 客户端 Vertica JDBC 驱动 23.3.0
Vertica 服务器 Vertica Server 23.3.0

DBeaver 概述

DBeaver 是一款免费开源的数据库工具,适用于开发人员和数据库管理员。它基于开源框架构建,允许用户编写各种扩展。

安装 DBeaver

DBeaver 网站 下载最新版本的 DBeaver。按照安装程序提示进行安装。

注意: 不要将 DBeaver 解压到已安装旧版本 DBeaver 的同一文件夹中。在同一文件夹中安装新版本之前,请确保先移除之前的版本。

下载 Vertica 客户端驱动

在使用 DBeaver 连接到 Vertica 之前,必须安装 Vertica JDBC 客户端驱动: 1. 访问 Vertica Client Drivers 页面 2. 下载 JDBC 驱动包

注意: 有关客户端和服务器兼容性的详细信息,请参阅 Vertica 文档中的"客户端驱动与服务器版本兼容性"。

连接 DBeaver 到 Vertica

按照以下步骤创建到 Vertica 的连接:

  1. 打开 DBeaver
  2. 从菜单中点击 Database > New Database Connection
  3. 在 Connect to a database 窗口中,搜索 "Vertica"
  4. 点击 Next
  5. 输入连接详细信息
  6. 点击 Edit Driver Settings,打开 Edit Driver 'Vertica' 窗口
  7. 选择 Libraries,然后点击 Add File
  8. 选择下载的 Vertica JDBC 文件
  9. 点击 Open,文件出现在 Edit Driver Vertica 窗口中
  10. 点击 OK
  11. 点击 Test Connection 测试连接,成功后会显示消息

已知限制(连接指南)

  • DOUBLE 数据类型:最小 double 值不受支持,显示为零
  • TIME 数据类型:不支持毫秒
  • TIMETZ 数据类型:不显示毫秒和时区值
  • TIMESTAMPTZ 数据类型:不显示时区
  • TIMESTAMP 数据类型:不支持毫秒。解决方法:在 DBeaver 中选择 Window > Preferences,选择 Editors > Data Editor > Data Formats,将 Type 更改为 Time 或 Timestamp,这将显示毫秒值

技巧与实践

关于 Vertica 技巧与实践文档

Vertica 技巧与实践文档提供将 Vertica 与第三方产品结合使用所需的信息。本文档基于特定版本的 Vertica 和第三方供应商软件提供指导。其他组合也可能适用,但这些版本可能未经测试。

使用 DBeaver 与 Vertica 的技巧

编辑驱动属性

可以从 DBeaver 修改 Vertica 驱动属性。要访问 Vertica 驱动属性: 1. 在 DBeaver 主菜单的 Database Navigator 中 2. 右键单击 Vertica 数据库连接,点击 Edit Connection 3. 在连接设置下,选择 Driver properties

有关 Vertica JDBC 连接属性的详细信息,请参阅 Vertica 文档。

使用本地连接负载均衡

本地连接负载均衡是内置于 Vertica 服务器和客户端库中的功能,有助于将客户端连接的资源需求均匀分布到集群各主机上。连接负载均衡需要在服务器端和客户端进行配置。

服务器端配置

可将负载均衡设置为以下之一: - NONE:禁用负载均衡(默认) - ROUNDROBIN:从循环列表中选取下一个主机 - RANDOM:随机选取下一个主机

检查负载均衡是否生效:

SELECT LOAD_BALANCE_POLICY FROM V_CATALOG.DATABASES;

设置负载均衡为 ROUNDROBIN:

SELECT SET_LOAD_BALANCE_POLICY('ROUNDROBIN');

客户端配置

在 DBeaver 中: 1. 打开 Vertica 连接的 Driver properties 页面 2. 选择 Driver properties 3. 设置 connectionloadbalancetrue

使用客户端日志记录

可以在驱动属性中设置日志路径和日志级别来启用 DBeaver 的日志记录。通过日志记录,可以调试或追踪连接细节或问题。

  • Log Path:设置日志文件的写入路径
  • Log Level:设置 JDBC 驱动记录的信息类型。可选值:Debug、Error、Trace、Warning、Info、Off

示例:将日志级别设置为 info,路径设置为 C:\,则该连接相关的负载均衡信息将被写入日志文件。

使用可路由查询(Routable Queries)

JDBC 可路由查询 API 非常适合高并发、短请求且返回少量结果到单个节点的场景。可路由查询 API 提供更低的延迟、更高的吞吐量,且相比分布式查询使用更少的系统资源。但是,必须对数据进行分段,以便 JDBC 客户端可以确定数据所在的节点。

示例驱动设置:启用可路由查询,设置 maxpooledconnections 为 200,maxpooledconnectionspernode 为 24。

可通过检查日志验证可路由查询是否生效并评估吞吐量提升。

使用会话标签追踪查询

sessionlabel 驱动属性允许追踪标记会话中的查询。示例:设置 sessionlabeltestlog

设置后,以下查询可返回标记会话的相关信息:

SELECT * FROM SESSIONS WHERE client_label = 'testlog';

使用实体关系图(ER Diagram)

DBeaver UI 包含以实体关系(ER)图查看数据的选项。ER 图直观展示了管理表之间关系的业务规则,有助于更好地理解数据结构。

使用 SSL 安全连接

Vertica 支持 SSL v3/TLS 1.2。SSL/TLS 通过加密形式发送数据而非明文,确保 Vertica 与其客户端之间交换数据的隐私和完整性。

在 Vertica 中配置 SSL

在 Linux 命令行中执行以下操作:

  1. 生成服务器密钥:

    $ openssl genrsa -out server.key
    

  2. 生成证书签名请求:

    $ openssl req -new -nodes -key ./server.key -out ./server.csr
    

指定以下信息: - Country Name:两位字母代码,如 GB 或 US - State or Province Name:完整的州或省名称 - Locality Name:城市名称 - Organization Name:公司名称 - Organizational Unit Name:公司内部门 - Common Name:您的名称或服务器主机名 - Email Address:邮箱地址

  1. 生成有效期为 365 天的自签名证书:

    openssl x509 -req -days 365 -in ./server.csr -signkey ./server.key -out ./server.crt
    

  2. 使用 root.crt/root.key 创建用户证书。对于自签名证书,root.crt 与 server.crt 相同:

    $ cp ./server.crt ./root.crt
    $ cp ./server.key ./root.key
    

  3. 配置 Vertica 数据库使用 SSL:

    $ /opt/vertica/bin/admintools -t set_ssl_params -d <dbname> -p <password> -k ./server.key -c ./server.crt -a ./root.crt
    

  4. 启用 SSL:

    echo "ALTER TLS CONFIGURATION server TLSMODE 'ENABLE';" | vsql
    

  5. 重启数据库。再次启动 vsql 时,应看到类似以下信息:

    SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, protocol: TLSv1.2)
    

在 DBeaver 中启用 SSL

  1. 在 Vertica 服务器的 Linux 命令行执行:

    > openssl x509 -in server.crt -out server.crt.der -outform der
    
    此命令将 Vertica 服务器证书转换为 Java 可识别的格式。

  2. 将 server.crt.der 复制到 DBeaver 客户端机器,执行:

    > Keytool.exe -keystore verticassl -keypasswd -storepass test123 -importkeystore -noprompt -alias verticasql -import -file server.crt.der
    
    keytool.exe 通常位于 C:\Program Files\Java\jdk1.8.0_71\bin

  3. 启动 DBeaver:

    > dbeaver -vmargs -Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk1.8.0_71\bin\verticassl" -Djavax.net.ssl.trustStorePassword=test123 Setssl
    

  4. 在 DBeaver 驱动属性中,设置 ssltrue

  5. 可通过检查 JDBC 日志验证 SSL 已启用

使用查询管理器(Query Manager)

DBeaver 在查询管理器中记录会话中执行的所有查询。要打开查询管理器,从 DBeaver 主菜单中选择 Window > Show View

注意: DBeaver 企业版将所有已执行的查询持久化到内部数据库中,因此程序重启后执行历史仍然可用。

导出和导入表

DBeaver 支持跨数据库连接导入导出,以及从不同文件格式导入和导出。

在数据库连接之间导出数据的步骤: 1. 在 DBeaver 主菜单中选择一个表 2. 点击 Export Data 3. 在 Data Transfer 对话框中,选择 Database 作为导出目标类型,Database table(s) 作为导出目标 4. 点击 Next 5. 检查源和目标,可指定目标位置 6. 点击 Start 导出数据

注意: 导出大量数据可能导致 DBeaver 的 Java 堆空间错误。如果发生此错误,从命令提示符使用 -vmargs -Xms500m 重新启动 DBeaver。根据导出需求增加内存。

使用存储过程

可以在 DBeaver 中查看 Vertica 的存储过程。存储过程位于 DBeaver 的 Procedures 文件夹中。可以从 DBeaver 创建和调用存储过程,还可以将过程导出为 DDL 命令。

使用查询计划执行

可以使用 DBeaver 显示解释计划(explain plan)查询,支持图形化视图。也可以使用 explain 查询命令查看查询执行计划。


原文来源:https://www.vertica.com/kb/DbeaverTT/Content/Partner/DbeaverTT.htm