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 的连接:
- 打开 DBeaver
- 从菜单中点击 Database > New Database Connection
- 在 Connect to a database 窗口中,搜索 "Vertica"
- 点击 Next
- 输入连接详细信息
- 点击 Edit Driver Settings,打开 Edit Driver 'Vertica' 窗口
- 选择 Libraries,然后点击 Add File
- 选择下载的 Vertica JDBC 文件
- 点击 Open,文件出现在 Edit Driver Vertica 窗口中
- 点击 OK
- 点击 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:随机选取下一个主机
检查负载均衡是否生效:
设置负载均衡为 ROUNDROBIN:
客户端配置
在 DBeaver 中:
1. 打开 Vertica 连接的 Driver properties 页面
2. 选择 Driver properties
3. 设置 connectionloadbalance 为 true
使用客户端日志记录¶
可以在驱动属性中设置日志路径和日志级别来启用 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 驱动属性允许追踪标记会话中的查询。示例:设置 sessionlabel 为 testlog。
设置后,以下查询可返回标记会话的相关信息:
使用实体关系图(ER Diagram)¶
DBeaver UI 包含以实体关系(ER)图查看数据的选项。ER 图直观展示了管理表之间关系的业务规则,有助于更好地理解数据结构。
使用 SSL 安全连接¶
Vertica 支持 SSL v3/TLS 1.2。SSL/TLS 通过加密形式发送数据而非明文,确保 Vertica 与其客户端之间交换数据的隐私和完整性。
在 Vertica 中配置 SSL
在 Linux 命令行中执行以下操作:
-
生成服务器密钥:
-
生成证书签名请求:
指定以下信息: - Country Name:两位字母代码,如 GB 或 US - State or Province Name:完整的州或省名称 - Locality Name:城市名称 - Organization Name:公司名称 - Organizational Unit Name:公司内部门 - Common Name:您的名称或服务器主机名 - Email Address:邮箱地址
-
生成有效期为 365 天的自签名证书:
-
使用 root.crt/root.key 创建用户证书。对于自签名证书,root.crt 与 server.crt 相同:
-
配置 Vertica 数据库使用 SSL:
-
启用 SSL:
-
重启数据库。再次启动 vsql 时,应看到类似以下信息:
在 DBeaver 中启用 SSL
-
在 Vertica 服务器的 Linux 命令行执行:
此命令将 Vertica 服务器证书转换为 Java 可识别的格式。 -
将 server.crt.der 复制到 DBeaver 客户端机器,执行:
keytool.exe 通常位于> Keytool.exe -keystore verticassl -keypasswd -storepass test123 -importkeystore -noprompt -alias verticasql -import -file server.crt.derC:\Program Files\Java\jdk1.8.0_71\bin -
启动 DBeaver:
-
在 DBeaver 驱动属性中,设置
ssl为true -
可通过检查 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