目錄
伴隨着技術的不斷髮展與進步,我們會接觸和使用越來越多的數據源。從經久不衰的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所示。
本例中HiveServer2部署在node1主機上。
2. 從CDH所在主機(任一)下載hive jdbc jar文件。
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:\dbeaver\drivers\hive目錄中。
4. 運行D:\dbeaver\dbeaver.exe打開DBeaver,點擊左上角的“新建連接”,如圖2所示。
5. 在“選擇連接類型”窗口中選擇“Hadoop / BigData” -> “Apache Hive”,如圖3所示。
6. 點擊“Next”,在“主機”中輸入“node1”,然後點擊“編輯驅動設置”按鈕,如圖4所示。
7. 在打開的“編輯驅動'Apache Hive'”窗口中,點擊“添加文件”按鈕,選擇D:\dbeaver\drivers\hivehive-jdbc-2.1.1-cdh6.3.1-standalone.jar文件,然後點擊“找到類”按鈕,選擇“org.apache.hive.jdbc.HiveDriver”,如圖5所示。然後點擊“OK”按鈕關閉窗口。
8. 點擊“測試連接(T)...”按鈕,如圖6所示,顯示已經正常連接到hive。
9. 點擊“Finish”關閉窗口,左側連接樹中出現“node1”,在其上點擊右鍵選擇“重命名”,如圖7所示。然後輸入“CDH631_hive211”,點擊“OK”,關閉對話框。
至此建立好了hive連接。
四、連接impala
本節說明用DBeaver連接CDH 6.3.1中的impala服務。
1. 在Cloudera Manager中確認impala實例所在主機,如圖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:\dbeaver\drivers目錄中。
4. 運行D:\dbeaver\dbeaver.exe打開DBeaver,點擊左上角的“新建連接”。
5. 在“選擇連接類型”窗口中選擇“Hadoop / BigData” -> “Cloudera Impala”。
6. 點擊“Next”,在“主機”中輸入“node1”,在“數據庫/模式”中輸入“default”,然後點擊“編輯驅動設置”按鈕。
7. 在打開的“編輯驅動'Cloudera Impala'”窗口中,點擊“添加文件”按鈕,選擇D:\dbeaver\drivers\ImpalaJDBC42.jar文件,然後點擊“找到類”按鈕,選擇“com.cloudera.impala.jdbc.Driver”,如圖9所示。然後點擊“OK”按鈕關閉窗口。
8. 點擊“測試連接(T)...”按鈕,如圖10所示,顯示已經正常連接到impala。
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所示。
本例中Query Server部署在node1、node2、node3、manager四臺主機上,我們連接node1。
2. 在Cloudera Manager中下載Hbase客戶端配置文件,如圖12所示。
3. 從CDH所在主機(任一)下載phoenix client jar文件。
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所示。
5. 將phoenix-5.0.0-cdh6.2.0-client.jar文件複製到D:\dbeaver\drivers目錄中。
6. 運行D:\dbeaver\dbeaver.exe打開DBeaver,點擊左上角的“新建連接”。
7. 在“選擇連接類型”窗口中選擇“Hadoop / BigData” -> “Apache Phoenix”。
8. 點擊“Next”,在“主機”中輸入“node1”,然後點擊“編輯驅動設置”按鈕。
9. 在打開的“編輯驅動'Apache Phoenix'”窗口中,點擊“添加文件”按鈕,選擇D:\dbeaver\drivers\phoenix-5.0.0-cdh6.2.0-client.jar文件,然後點擊“找到類”按鈕,選擇“org.apache.phoenix.jdbc.PhoenixDriver”,如圖14所示。然後點擊“OK”按鈕關閉窗口。
10. 點擊“測試連接(T)...”按鈕,如圖15所示,顯示已經正常連接到phoenix。
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文件,如下添加如下一行並保存:
host all gpadmin 0.0.0.0/0 password
(2)重載pg_hba.conf文件使配置修改生效
hawq stop cluster -u -M fast
(3)修改gpadmin角色的密碼
[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:\dbeaver\dbeaver.exe打開DBeaver,點擊左上角的“新建連接”。
3. 在“選擇連接類型”窗口中選擇“Analytical” -> “Greenplum”。
4. 點擊“Next”,在“主機”中輸入HAWQ Master主機IP,本例爲“172.16.1.124”。“數據庫”爲“postgres”,“用戶名”爲“gpadmin”,“密碼”爲“123456”,如圖16所示。
5. 然後點擊“編輯驅動設置”按鈕,在對話框中點擊“找到類”按鈕,選擇“org.postgresql.Driver”,如圖17所示。然後點擊“OK”按鈕關閉窗口。
6. 點擊“測試連接(T)...”按鈕,如圖18所示,顯示已經正常連接到HAWQ。
7. 點擊“Finish”關閉窗口,左側連接樹中出現“postgres”,在其上點擊右鍵選擇“重命名”。然後輸入“HAWQ240”,點擊“OK”,關閉對話框。
至此建立好了HAWQ連接。
七、連接redis
1. 運行D:\dbeaver\dbeaver.exe打開DBeaver,點擊左上角的“新建連接”。
2. 在“選擇連接類型”窗口中選擇“NoSQL” -> “Redis”。
3. 點擊“Next”,在“主機”中輸入redis主機IP,本例爲“172.16.1.127”。“Password”爲“123456”,如圖19所示。
4. 點擊“測試連接(T)...”按鈕,如圖20所示,顯示已經正常連接到redis。
5. 點擊“Finish”關閉窗口,左側連接樹中出現“172.16.1.127”,在其上點擊右鍵選擇“重命名”。然後輸入“redis503”,點擊“OK”,關閉對話框。
至此建立好了redis連接。