Apache Phoenix資料連結

1. 概述

1.1 版本

 FineBI 版本功能變動
6.0-

1.2 應用場景

本文將介紹如何在 FineBI 中連結 Apache Phoenix 資料庫。

2. 準備工作

2.1 版本和驅動

  支援的資料庫版本驅動下載連結支援資料庫版本

1.2

phoenix-4.12.0-HBase-1.2-client.jar

org.apache.phoenix.jdbc.PhoenixDriver

2.2 收集連結資訊

在連結資料庫之前,請收集以下資訊:

  • 資料庫所在伺服器的 IP 位址和埠號;

  • 資料庫的名稱;

  • 若是帳號密碼認證,需要收集帳號和密碼;若是 Kerberos 認證,需要收集用戶端 principal 和 keytab 鍵路徑;

  • 需要連結的資料庫模式;

3. 具體連結步驟

1)以管理者身分登入 FineBI ,點選「管理系統>資料連結>資料連結管理」,點選新建資料連結如下圖所示:

注:如果非管理者使用者想要配置資料連結,需要管理者給其分配管理系統下資料連結節點的權限,具體操作請查看 資料連結權限

新建资料连接路径.jpg

2)找到 APACHE Phoenix 的圖示,如下圖所示:

1phoenix圖標.jpg

3)驅動切換為「自訂」選擇 2.1 節上傳的驅動,然後輸入 2.2 節的連結資訊。

Hbase 支援 Kerberos 認證,Kerberos 認證方式詳情可參見:資料連結Kerberos認證

注:使用者可以選擇性修改進階設定,詳細請參見 配置資料連結 4.3 節

2配置連接.jpg

4)點選「點選連結資料庫」,連結成功後選擇資料庫模式(若不選則使用預設模式)。最後儲存該資料連結,如下圖所示:

3連接成功.jpg

4. 新增資料庫的表至 FineBI 

有兩種方式可以將資料庫中的表新增至 FineBI :

两种方式将表增加至BI.jpg

5. 注意事項

5.1 FineBI 一直處於啟動頁面

問題現象:

將 phoenix-4.12.0-HBase-1.2-client.jar 放到目錄%FineBI%\webapps\webroot\WEB-INF\lib後,重啟 FineBI ,FineBI 一直處於啟動頁面。如下圖所示:

一直處於啟動界面.jpg

解決方法:

1)使用壓縮工具開啟 phoenix-4.12.0-HBase-1.2-client.jar 檔案,進入 javax 檔案,刪除 el 和 servlet 檔案,如下圖所示:

删除档案.jpg

3)重啟 FineBI 即可。

5.2 查詢語句

1)A join B on A.a=B.b,A B 不支援子查詢。

2)儘量避免使用多層巢 SQL 語句。多層巢可能會 SQL 報錯,如果使用者原本的 SQL 資料集已經有 SQL 巢, 引擎開啟實時資料時的查詢可能會出現問題。

例如 SQL 語句 select T_2.a from ( select T_1.a from ( select * from A) T_1 ) T_2 會報錯。

5.3 問題報錯及解決方案 

1)描述:JDBC 存取資料庫無法連結, 提示 get locations 錯誤或者 zookeeper 找不到對應的位址。

解決方法:

      檢查/etc/hosts 中的機器名對應IP是否為局域網IP;

      檢查/etc/hostname中機器名設定和/etc/hosts中是否配置一致;

      檢查 BI 所在機器 hosts 配置的 IP  機器名是否正確。

2)描述:BI 測試連結失敗, 報錯 Caused by: java.sql.SQLException: org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.hbase.zookeeper.MetaTableLocator

解決方法:

       將 guava 包更換為 guava-16.0.1.jar 。

3)描述:BI 測試連結失敗,報錯:ERROR 726 (43M10):  Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabledERROR 726 (43M10):  Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled報錯截圖:

測試連接失敗.png

解決方法:

       如果使用了 Hbase 中的自訂 namespace ,不僅僅使用 default ,那麼在 Phoenix 中與之對應的是 schema 的概念。但是預設並沒有開啟,需要在 hbase-site.xml 中增加以下配置項:

代碼配置.png

具體代碼如下所示:

<property>
   <name>phoenix.schema.isNamespaceMappingEnabled</name>
   <value>true</value>
</property>
<property>
   <name>phoenix.schema.mapSystemTablesToNamespace</name>
   <value>true</value>
</property>

附件列表


主题: 資料準備
  • 有帮助
  • 没帮助
  • 只是浏览
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙