目录
一、DBeaver简介
二、下载与安装
三、连接hive
四、连接impala
五、连接phoenix
六、连接HAWQ
七、连接redis
伴随着技术的不断发展与进步,我们会接触和使用越来越多的数据源。从经久不衰的MySQL、Oracle、SQLserver、DB2等关系数据库,到方兴未艾的MongoDB、Redis、Cassandra等NoSQL产品,再到屡见不鲜的各种大数据组件,如Hive、Impala、HBase、Phoenix、Spark,以及林林总总的时序数据库、全文检索系统、图数据库等等。如果有一个Client,能够连接所有这些数据源,并将常规开发环境(如SQL脚本)都集中在一个GUI中,则必将为技术人员节省大量寻找并熟悉相应工具的时间,从而提高工作效率。正所谓工欲善其事,必先利其器,本篇介绍的DBeaver正是这样一款工具软件。
一、DBeaver简介
DBeaver是一个是经过精心设计和开发的通用数据库管理工具和客户端,易用性是该产品的主要目标。DBeaver具有跨平台、基于开源框架和允许各种扩展插件等特点,支持任何具有JDBC驱动程序的数据库,可以处理多种外部数据源。它提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据,处理BLOB/CLOB 数据,修改数据库结构等。
下面是DBeaver具有的主要功能特性。 1. 可连接多种数据库
支持各种类型数据库的驱动程序,包括关系数据库、面向文档数据库、键值数据库、时间序列数据库和其它数据库等。同时支持用户定义的连接类型和创建自定义驱动程序。支持标准配置(主机、端口、用户名、口令)以及高级连接属性:
- SSH隧道
- SOCKS代理
- 在实际数据库连接之前/之后执行Shell命令
在连接后可以立即在数据库会话中自动执行初始SQL查询。最新DBeaver企业版支持的全部数据库参见https://DBeaver.com/databases/。
2. NoSQL与BigData
DBeaver企业版具有以下NoSQL与BigData的扩展:
- MongoDB
- Couchbase
- Amazon DynamoDB
- Google Bigtable
- InfluxDB
- Apache Cassandra
- Redis
- Apache Hive
所有这些数据库都有SQL接口,可以像处理关系数据库一样使用它们。DBeaver 企业版支持这些数据库的所有原生数据类型和数据库结构浏览。
3. 一体式
DBeaver企业版包括以下扩展,而不需要安装任何其它插件:
- Office格式支持
- 矢量图形支持
- SQL调试框架
- 高级SSH算法
大多数流行的数据库驱动程序都包含在发行版中。为了使用Eclipse Marketplace实现高级安全性和方便安装第三方插件,提供了许多Eclipse扩展。
4. 高级安全性
- 使用Kerberos或Active Directory身份验证与企业用户管理系统集成。
- 将数据库密码保存在受密码保护的安全存储中,或使用本机操作系统密码加密存储。
- 使用BouncyCastle高级安全算法通过SSH或SSL进行连接。
5. 数据查看和编辑
- 多个数据视图以满足用户的各种需要,例如将图像内容(gif、png、jpeg、bmp)显示为图像。
- 在专用空间内联编辑数据。
- 方便数据导航。
- 表内容或查询结果的自定义过滤器,包括基于单元格值的过滤。
- 查询结果按列排序。
- 应用过滤和排序导出数据。
- 基于选定行生成SQL语句。
- 所选列的基本统计信息。
6. 模拟数据生成器
可以为表生成随机数据(或“模拟”数据)。企业版包括基本和高级数据生成器,包括:灵活的数字生成器、随机字符串、姓名、地址、信用卡、域名和IP地址、自定义正则表达式等。
7. SQL编辑器
- 将脚本组织到文件夹中并为特定脚本重新分配数据库连接。
- 由与脚本关联的数据库确定的SQL语法突出显示。
- 支持不同数据库的不同保留关键字集和系统功能。
- 脚本的导入和导出。
8. 简单友好的图形化界面
- 可以在不了解SQL的情况下构造复杂的SQL查询。
- 可视化生成表联接/过滤/排序。
- 在可视化模式下打开现有的SQL查询,编辑并保存它们。
- 随时执行可视化构造的查询并获得结果。
- 可视化分析复杂的SQL查询。
9. 元数据管理
- 提供数据库连接树,其元数据结构可向下到最低级别:表、视图、列、索引、过程、触发器、存储实体(表空间、分区)和安全实体(用户、角色)。
- 根据数据库驱动程序的功能修改大多数元数据实体的能力。
- 数据库对象DDL的显示及按对象结构生成标准sql92ddl。
- 能够编辑/重命名/删除连接和大多数数据库对象。
- 全局和本地过滤器,能够按名称筛选数据库对象。
10. 数据传输 将数据导出到一个文件或另一个数据库表,如果目标表不存在,可以选择创建该表。支持的文件格式包括:CSV、HTML、XML、JSON、XLS、XLSX。也可以直接从CSV文件将数据导入数据库表,在向导中设置列映射和数据类型。可将数据传输配置另存为任务并随时运行。
11. ER图
为db/schema(包含所有表)或单个表(包含所有引用/引用表)自动生成ER图,可以自定义列的可见性。能将图表导出为以下格式:GIF、PNG、BMP、GraphML。
12. 数据和元数据搜索
- 可以对所有选定表/视图进行全文数据搜索。
- 数据库系统表中行的元数据搜索。
- 能够设置精确的对象名或搜索掩码。
13.数据库结构比较 能够比较任意类型的几个数据库对象:表、模式、整个数据库等,并在HTML报表中显示比较结果。
最新DBeaver企业版功能特性参见https://DBeaver.com/features/。
二、下载与安装
与很多开源软件一样,DBeaver也提供社区版和企业版两种下载,社区版自由使用,而企业版是收费的,当然两者功能上必然存在差别,参见https://DBeaver.com/edition/。
本次安装DBeaver最新企业版,介质选择64位Windows平台的Zip包,官方下载地址为https://DBeaver.com/files/DBeaver-ee-latest-win32.win32.x86_64.zip。
DBeaver需要Java 1.8或更高版本,因此首先需要确认Windows已经安装了Java(OpenJDK11)。然后解压DBeaver zip安装包,并运行dbeaver.exe文件即可。解压缩目录为D:dbeaver。已经在Windows的hosts文件中配置好域名解析,能够通过主机名访问CDH集群。
三、连接hive
本节说明用DBeaver连接CDH 6.3.1中的hive服务。
1. 在Cloudera Manager中确认hive实例所在主机,如图1所示。
图1
本例中HiveServer2部署在node1主机上。
2. 从CDH所在主机(任一)下载hive jdbc jar文件。
代码语言:javascript复制sz /opt/cloudera/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567/jars/hive-jdbc-2.1.1-cdh6.3.1-standalone.jar
3. 将hive-jdbc-2.1.1-cdh6.3.1-standalone.jar文件复制到D:dbeaverdrivershive目录中。
4. 运行D:dbeaverdbeaver.exe打开DBeaver,点击左上角的“新建连接”,如图2所示。
图2
5. 在“选择连接类型”窗口中选择“Hadoop / BigData” -> “Apache Hive”,如图3所示。
图3
6. 点击“Next”,在“主机”中输入“node1”,然后点击“编辑驱动设置”按钮,如图4所示。
图4
7. 在打开的“编辑驱动'Apache Hive'”窗口中,点击“添加文件”按钮,选择D:dbeaverdrivershivehive-jdbc-2.1.1-cdh6.3.1-standalone.jar文件,然后点击“找到类”按钮,选择“org.apache.hive.jdbc.HiveDriver”,如图5所示。然后点击“OK”按钮关闭窗口。
图5
8. 点击“测试连接(T)...”按钮,如图6所示,显示已经正常连接到hive。
图6
9. 点击“Finish”关闭窗口,左侧连接树中出现“node1”,在其上点击右键选择“重命名”,如图7所示。然后输入“CDH631_hive211”,点击“OK”,关闭对话框。
图7
至此建立好了hive连接。
四、连接impala
本节说明用DBeaver连接CDH 6.3.1中的impala服务。
1. 在Cloudera Manager中确认impala实例所在主机,如图8所示。
图8
本例中Impala Daemon部署在node1、node2、node3三台主机上,我们连接node1。
2. 下载impala JDBC文件 下载地址为https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-17.html。
3. 将下载包中的ImpalaJDBC42.jar文件复制到D:dbeaverdrivers目录中。
4. 运行D:dbeaverdbeaver.exe打开DBeaver,点击左上角的“新建连接”。
5. 在“选择连接类型”窗口中选择“Hadoop / BigData” -> “Cloudera Impala”。
6. 点击“Next”,在“主机”中输入“node1”,在“数据库/模式”中输入“default”,然后点击“编辑驱动设置”按钮。
7. 在打开的“编辑驱动'Cloudera Impala'”窗口中,点击“添加文件”按钮,选择D:dbeaverdriversImpalaJDBC42.jar文件,然后点击“找到类”按钮,选择“com.cloudera.impala.jdbc.Driver”,如图9所示。然后点击“OK”按钮关闭窗口。
图9
8. 点击“测试连接(T)...”按钮,如图10所示,显示已经正常连接到impala。
图10
9. 点击“Finish”关闭窗口,左侧连接树中出现“default”,在其上点击右键选择“重命名”。然后输入“CDH631_impala320”,点击“OK”,关闭对话框。
至此建立好了impala连接。
五、连接phoenix
本节说明用DBeaver连接CDH 6.3.1中的phoenix服务。CDH本身没有集成phoenix,关于如何在CDH 6.3中安装phoenix服务,参见https://wxy0327.blog.csdn.net/article/details/104766465。
1. 在Cloudera Manager中确认phoenix实例所在主机,如图11所示。
图11
本例中Query Server部署在node1、node2、node3、manager四台主机上,我们连接node1。
2. 在Cloudera Manager中下载Hbase客户端配置文件,如图12所示。
图12
3. 从CDH所在主机(任一)下载phoenix client jar文件。
代码语言:javascript复制sz /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/phoenix-5.0.0-cdh6.2.0-client.jar
4. 用WinRAR打开phoenix-5.0.0-cdh6.2.0-client.jar文件,将第2步中下载的hbase-site.xml文件添加到phoenix-5.0.0-cdh6.2.0-client.jar中,如图13所示。
图13
5. 将phoenix-5.0.0-cdh6.2.0-client.jar文件复制到D:dbeaverdrivers目录中。
6. 运行D:dbeaverdbeaver.exe打开DBeaver,点击左上角的“新建连接”。
7. 在“选择连接类型”窗口中选择“Hadoop / BigData” -> “Apache Phoenix”。
8. 点击“Next”,在“主机”中输入“node1”,然后点击“编辑驱动设置”按钮。
9. 在打开的“编辑驱动'Apache Phoenix'”窗口中,点击“添加文件”按钮,选择D:dbeaverdriversphoenix-5.0.0-cdh6.2.0-client.jar文件,然后点击“找到类”按钮,选择“org.apache.phoenix.jdbc.PhoenixDriver”,如图14所示。然后点击“OK”按钮关闭窗口。
图14
10. 点击“测试连接(T)...”按钮,如图15所示,显示已经正常连接到phoenix。
图15
11. 点击“Finish”关闭窗口,左侧连接树中出现“node1”,在其上点击右键选择“重命名”。然后输入“CDH631_phoenix500”,点击“OK”,关闭对话框。
至此建立好了phoenix连接。
六、连接HAWQ
关于在CDH 6.3.1上安装HAWQ 2.4.0,参见https://wxy0327.blog.csdn.net/article/details/104845576。
1. 配置允许连接至HAWQ (1)编辑HAWQ Master主机上的/opt/gpadmin/hawq-data-directory/masterdd/pg_hba.conf文件,如下添加如下一行并保存:
代码语言:javascript复制host all gpadmin 0.0.0.0/0 password
(2)重载pg_hba.conf文件使配置修改生效
代码语言:javascript复制hawq stop cluster -u -M fast
(3)修改gpadmin角色的密码
代码语言:javascript复制[gpadmin@manager/opt/gpadmin]$psql -d postgres
psql (8.2.15)
Type "help" for help.
postgres=# alter role gpadmin with password '123456';
ALTER ROLE
postgres=#
关于HAWQ连接管理的详细说明,参见https://blog.csdn.net/wzy0623/article/details/60141550。
2. 运行D:dbeaverdbeaver.exe打开DBeaver,点击左上角的“新建连接”。
3. 在“选择连接类型”窗口中选择“Analytical” -> “Greenplum”。
4. 点击“Next”,在“主机”中输入HAWQ Master主机IP,本例为“172.16.1.124”。“数据库”为“postgres”,“用户名”为“gpadmin”,“密码”为“123456”,如图16所示。
图16
5. 然后点击“编辑驱动设置”按钮,在对话框中点击“找到类”按钮,选择“org.postgresql.Driver”,如图17所示。然后点击“OK”按钮关闭窗口。
图17
6. 点击“测试连接(T)...”按钮,如图18所示,显示已经正常连接到HAWQ。
图18
7. 点击“Finish”关闭窗口,左侧连接树中出现“postgres”,在其上点击右键选择“重命名”。然后输入“HAWQ240”,点击“OK”,关闭对话框。
至此建立好了HAWQ连接。
七、连接redis
1. 运行D:dbeaverdbeaver.exe打开DBeaver,点击左上角的“新建连接”。
2. 在“选择连接类型”窗口中选择“NoSQL” -> “Redis”。
3. 点击“Next”,在“主机”中输入redis主机IP,本例为“172.16.1.127”。“Password”为“123456”,如图19所示。
图19
4. 点击“测试连接(T)...”按钮,如图20所示,显示已经正常连接到redis。
图20
5. 点击“Finish”关闭窗口,左侧连接树中出现“172.16.1.127”,在其上点击右键选择“重命名”。然后输入“redis503”,点击“OK”,关闭对话框。
至此建立好了redis连接。