1. 概述
本文將介紹如何連結 Apache Impala 資料源。
注:Impala裏存在多個資料庫,一個資料連結只能連結一個資料庫,不支援單個資料連結連結多個資料庫。
2. 準備工作
2.1 版本和驅動
下載驅動,並將其上傳至 FineReport,如何上傳可參見:驅動管理 2.1 節
注:由於10.0和11.0的驅動不完全相同,若使用者工程由10升級11,建議重新下載本文驅動包進行配置。
支援的資料庫版本 | 驅動包連結 |
---|---|
Impala 2.2 Impala 2.3 Impala 2.8 Impala 2.9 Impala 2.10 | |
Impala 2.10 kudu1.5 |
ClouderaImpalaJDBC41_2.5.43.rar |
2.2 收集連結資訊
在連結資料庫之前,請收集以下資訊:
資料庫所在伺服器的 IP 地址和埠號;
資料庫的名稱;
若是帳號密碼認證,需要收集帳號和密碼;若是 Kerberos 認證,需要收集用戶端 principal 和 keytab 金鑰路徑;
3. 具體連結步驟
FineReport 提供了兩種資料連結方式:
方式一:在設計器中進行連結 ,具體方法請參見: [設計器]JDBC連結資料庫 。
方式二:在資料決策平台進行連結。本文主要介紹此種方式。
1)以管理者身分登入數據決策系統,點選「管理系統>資料連結>資料連結管理」,點選「建立資料連結」,如下圖所示:
注:如果非管理者使用者想要配置資料連結,需要管理者給其分配管理系統下資料連結節點的權限,具體操作請查看 資料連結權限
2)選擇 APACHE IMPALA 圖示,如下圖所示:
3)驅動切換為「自訂」選擇 2.1 節上傳的驅動,然後輸入 2.2 節的連結資訊。如下圖所示:
Kerberos 認證方式詳情可參見:資料連結 kerberos 認證
若 Impala 資料庫存在認證,則需要在 URL 後加入AuthMech參數,不同參數值代表了不同的認證,如下表所示:
注:若資料庫沒有帳號密碼時不需要加該參數。
值 | 含義 |
---|---|
3 | username and password(帳號密碼認證) |
2 | username(帳號認證) |
1 | kerberos(Kerberos認證) |
0 | 不認證 |
URL 格式為:jdbc:impala://ip:port/dbname;authmech=n( n 可以等於 0、1、2、3 分別代表上面的認證方式)
帳號密碼認證:AuthMech 參數值為 3 ,則 URL 格式為:jdbc:impala://ip:port/dbname;authmech=3
帳號認證:AuthMech 參數值為 2 ,則 URL 格式為:jdbc:impala://ip:port/dbname;authmech=2
Kerberos 認證:AuthMech 參數值為 1 ,則 URL 格式為:jdbc:impala://ip:port/dbname;authmech=1
若資料庫的認證方式為 Kerberos 認證,除了要加 AuthMech 參數,需填入註冊過 kdc 的用戶端名稱、keytab 金鑰路徑和 Kerberos 認證對應 URL(加上AuthMech、KrbHostFQDN、KrbServiceName 三個參數)
參數 | 值 | 含義 |
---|---|---|
AuthMech | 1 | Kerberos 認證 |
KrbHostFQDN | impala server 為 krb5.conf 檔案中 admin_server 的值 | 指定連結哪台伺服器的 Impala |
KrbServiceName | 對應的服務名 | 伺服器的別名,請參見 參數含義 |
URL 格式為:jdbc:impala://ip:port/default;AuthMech=1;KrbHostFQDN=hostalias;KrbServiceName=impala
例如:jdbc:impala://192.168.5.127:21050/default;AuthMech=1;KrbHostFQDN=quickstart.cloudera;KrbServiceName=impala,具體請參見 [平台]資料連結Kerberos認證
4)點選「測試連結」,若連結成功則點選「儲存」,如下圖所示: