本文將介紹如何在 FineBI 中連結 Apache Phoenix 資料庫。
1.2
org.apache.phoenix.jdbc.PhoenixDriver
在連結資料庫之前,請收集以下資訊:
資料庫所在伺服器的 IP 位址和埠號;
資料庫的名稱;
若是帳號密碼認證,需要收集帳號和密碼;若是 Kerberos 認證,需要收集用戶端 principal 和 keytab 鍵路徑;
需要連結的資料庫模式;
1)以管理者身分登入 FineBI ,點選「管理系統>資料連結>資料連結管理」,點選「新建資料連結」,如下圖所示:
注:如果非管理者使用者想要配置資料連結,需要管理者給其分配管理系統下資料連結節點的權限,具體操作請查看 資料連結權限
2)找到 APACHE Phoenix 的圖示,如下圖所示:
3)驅動切換為「自訂」選擇 2.1 節上傳的驅動,然後輸入 2.2 節的連結資訊。
Hbase 支援 Kerberos 認證,Kerberos 認證方式詳情可參見:資料連結Kerberos認證
注:使用者可以選擇性修改進階設定,詳細請參見 配置資料連結 4.3 節
4)點選「點選連結資料庫」,連結成功後選擇資料庫模式(若不選則使用預設模式)。最後儲存該資料連結,如下圖所示:
有兩種方式可以將資料庫中的表新增至 FineBI :
新增資料庫表
新增SQL資料集
問題現象:
將 phoenix-4.12.0-HBase-1.2-client.jar 放到目錄%FineBI%\webapps\webroot\WEB-INF\lib後,重啟 FineBI ,FineBI 一直處於啟動頁面。如下圖所示:
解決方法:
1)使用壓縮工具開啟 phoenix-4.12.0-HBase-1.2-client.jar 檔案,進入 javax 檔案,刪除 el 和 servlet 檔案,如下圖所示:
3)重啟 FineBI 即可。
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 會報錯。
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報錯截圖:
如果使用了 Hbase 中的自訂 namespace ,不僅僅使用 default ,那麼在 Phoenix 中與之對應的是 schema 的概念。但是預設並沒有開啟,需要在 hbase-site.xml 中增加以下配置項:
具體代碼如下所示:
<property> <name>phoenix.schema.isNamespaceMappingEnabled</name> <value>true</value></property><property> <name>phoenix.schema.mapSystemTablesToNamespace</name> <value>true</value></property>
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙