將 Cloudera Impala 資料庫連線至 Looker,即可將資料視覺化並進行分析。您可以為各種 Impala 方言設定這些連線。Looker 支援 Cloudera Impala 3.1 以上版本,包括標準和原生驅動程式設定。系統不支援連線至較舊的 Impala 方言 (缺少版本號碼或原生驅動程式),對這些方言的查詢會傳回錯誤。
使用這些指令的方言
Looker 會連線至下列 Impala 資料庫:
- Cloudera Impala 3.1 以上版本
- Cloudera Impala 3.1 以上版本 (使用原生驅動程式)
- Cloudera Impala (使用原生驅動程式)
加密網路流量
最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全的資料庫存取權」說明文件頁面所述的其中一個選項。
設定 Looker 以連線至 Cloudera Impala
Looker 透過 JDBC 連線至資料庫。對於 Impala 資料庫,Looker 預設會連線至在通訊埠 21050 上執行 impalad 精靈的伺服器。詳情請參閱 Cloudera 網站說明文件的「Configuring Impala to work with JDBC」(設定 Impala 搭配 JDBC 使用) 一節。
在 Looker 的「Admin」(管理) 部分,依序選取「Connections」(連線) 和「Add Connection」(新增連線)。
Looker 連線設定取決於使用的安全性:
連線至沒有 Kerberos 或使用者驗證的叢集
如要設定不使用 Kerberos 或使用者驗證的連線,請按照下列步驟操作:
- 在「連線設定」頁面中,將「使用者名稱」和「密碼」欄位留空。(欄位名稱旁的
*表示這些欄位為必填,但其實並非如此)。 - 在「Additional JDBC parameters」(其他 JDBC 參數) 欄位中,輸入
;auth=noSasl。
驗證連線字串
如要驗證記錄檔中的 JDBC 連線字串,請在 Looker「管理」面板中,點選左選單的「記錄」。然後依 jdbc 或 noSasl 等字詞篩選記錄。記錄行可能如下所示:
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
如要進一步瞭解如何設定 Impala 資料庫,以便與 JDBC 搭配使用,請參閱外部 Cloudera 網站上的說明文件。
連線至需要 LDAP 驗證的叢集
如果叢集需要 LDAP 驗證 (包括使用 Apache Sentry 和 Kerberos 的叢集),請在「連線設定」頁面輸入使用者名稱和密碼,以便存取 Looker 將存取的結構定義。
連線至受 Kerberos 保護的叢集,但不使用 Apache Sentry
通常,Cloudera 環境的 Kerberos 驗證會透過 Apache Sentry 處理。詳情請參閱 Cloudera 說明文件。
如要設定 Looker,使用 Kerberos 驗證直接連線至 Impala 資料庫,請按照本頁步驟操作。
設定 Kerberos 用戶端
首先,請確認 Looker 機器已安裝必要軟體,且有必要檔案。
Kerberos 用戶端
嘗試執行 kinit,確認 Looker 機器上已安裝 Kerberos 用戶端。如果尚未安裝 Kerberos 用戶端,請安裝 Kerberos 用戶端的二進位檔。
舉例來說,在 Red Hat/CentOS 上執行下列指令:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Looker 機器和 Looker 使用者的 PATH 和 JAVA_HOME 中,必須安裝 Java 8。如有需要,請在本機的 looker 目錄中安裝。
Java Cryptography Extension
前往 Oracle 網站,下載並安裝 Java 8 的 Java Cryptography Extension (JCE)。
- 找出 Java 安裝作業的
jre/lib/security目錄。 - 從這個目錄中移除下列 JAR 檔案:
local_policy.jar和US_export_policy.jar。 - 將這兩個檔案替換為 JCE Unlimited Strength Jurisdiction Policy Files 下載內容中的 JAR 檔案。
您或許可以使用 Java 8 之前的 Java 版本,並安裝 JCE,但我們不建議這麼做。
- 找出 Java 安裝作業的
更新
~looker/.bash_profile中的JAVA_HOME和PATH,指向正確的 Java 和source ~/.bash_profile安裝位置,或登出後再重新登入。使用
java -version驗證 Java 版本。使用
echo $JAVA_HOME驗證JAVA_HOME環境變數。
gss-jaas.conf
在 looker 目錄中建立 gss-jaas.conf 檔案,並加入以下內容:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true;
};
如有測試需要,可以將 debug=true 新增至這個檔案,如下所示:
com.sun.security.jgss.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true
doNotPrompt=true
debug=true;
};
krb5.conf
執行 Looker 的伺服器也應具備有效的 krb5.conf 檔案。根據預設,這個檔案位於 /etc/krb5.conf。如果位於其他位置,則必須在環境中指出 (殼層環境中的 KRB5_CONFIG)。
您可能需要從其他 Kerberos 用戶端機器複製這個檔案。
lookerstart.cfg
在 looker 目錄 (包含 looker 開機指令碼的目錄) 中建立名為 lookerstart.cfg 的檔案,並在當中加入下列幾行內容,指向 gss-jaas.conf 和 krb5.conf 檔案:
JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
LOOKERARGS=""
如果 krb5.conf 檔案不在 /etc/krb5.conf,也必須新增這個變數:
-Djava.security.krb5.conf=/path/to/krb5.conf
如要進行偵錯,請新增下列變數:
-Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true
然後使用 ./looker restart 重新啟動 Looker。
使用 Kerberos 進行驗證
使用者驗證
如果
krb5.conf不在/etc/中,請使用環境變數KRB5_CONFIG指出其位置。執行
klist指令,確認 Kerberos 票證快取中有有效票證。如果沒有票證,請執行
kinit username@REALM或kinit username建立票證。與 Looker 搭配使用的帳戶可能沒有前端介面,因此您可以從 Kerberos 取得 keytab 檔案,儲存憑證以供長期使用。使用
kinit -k -t looker_user.keytab username@REALM等指令取得 Kerberos 票證。
自動更新票證
設定 Cron 工作,定期執行以在 Kerberos 票證快取中保留有效票證。執行頻率取決於叢集設定。klist 應顯示票證即將過期的時間。
建立 Looker 資料庫連線
在 Looker 的「Admin」(管理) 部分,依序選取「Connections」(連線) 和「Add Connection」(新增連線)。
填寫連線詳細資料,如下所示 (詳情請參閱「將 Looker 連線至資料庫」說明文件頁面):
- 名稱:連線名稱。這是 LookML 模型中參照連線的方式。
Dialect:Cloudera Impala 3.1+、Cloudera Impala 3.1+ with Native Driver 或 Cloudera Impala with Native Driver。
主機:主機名稱。
通訊埠:資料庫通訊埠 (預設為 21050)。
資料庫:要模擬的預設結構定義/資料庫。如果未指定資料表所屬的資料庫,系統會假設資料表屬於這個資料庫。
使用者名稱:留空。
密碼:請將這個欄位留空。
啟用 PDT:使用這個切換鈕啟用永久衍生資料表。啟用 PDT 後,「連線」視窗會顯示其他 PDT 設定和「PDT 覆寫」部分。
暫存資料庫:用於儲存 PDT 的暫存結構定義/資料庫。您必須事先建立這項資源。
其他 JDBC 參數:新增其他 JDBC 參數。如需支援的參數清單,請參閱本頁的「支援的 JDBC 參數」一節。
SSL:勾選即可使用 SSL 連線。 如果 SSL 憑證不是由廣受認可的憑證授權單位核發,且您使用的是自訂憑證,請按照下列步驟操作:
- 將憑證檔案複製到 Looker 伺服器。這項功能僅適用於客戶託管的 Looker 部署作業。
- 在「Additional JDBC parameters」(其他 JDBC 參數) 欄位中新增下列參數:
sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword
如要進一步瞭解如何為 Impala 資料庫建立正確的 JDBC 字串,請參閱 Cloudera 說明文件。
- 資料庫時區:資料庫中儲存資料的時區。通常可以留空或設為 UTC。
最佳做法是將伺服器名稱 (本例中為 impala.company.com) 設為伺服器的正規名稱,並將其 IP 位址的反向 DNS 查詢結果設為該名稱。不過,伺服器名稱應與 Kerberos 網域控制站中列出的名稱相同:
nslookup servername # get canonical server name and IP address
nslookup ipaddress # get the canonical name back
有時伺服器名稱會設為主機名稱,而非完整網域名稱。在這種情況下,您可能需要修改 /etc/hosts 和 /etc/nsswitch.conf 檔案,確保反向查詢能正常解析。
測試連線,確認設定正確無誤。
偵錯
- Cloudera 說明文件,說明如何偵錯 Impala 驗證問題。
- 在設定中加入偵錯功能後,額外的偵錯資訊會儲存在
looker/logs/looker.log中。
資源
- 為 Impala 啟用 Kerberos 驗證 (Cloudera 說明文件)
- kinit 線上手冊頁面
- klist man page
- gss-jaas.conf 說明文件
- Krb5LoginModule 說明文件
PDT 權限
使用者連線至永久衍生資料表 (PDT) 的臨時結構定義時,必須具備讀取/寫入權限。
支援的 JDBC 參數
如果是 Cloudera Impala,Looker 支援連線的「Additional JDBC parameters」(其他 JDBC 參數) 欄位中的下列 JDBC 參數。如要瞭解這些參數,請參閱資料庫的說明文件。
AllowSelfSignedCertsauthAuthMechCAIssuedCertNamesMismatchhttpPathKrbHostFQDNKrbRealmKrbServiceNameprincipalPWDSocketTimeoutSSLtransportModeUIDUseNativeQueryUseSasl
功能支援
資料庫方言也必須支援某些功能,Looker 才能支援這些功能。
Cloudera Impala (使用原生驅動程式)
自 Looker 26.20 起,Cloudera Impala (原生驅動程式) 支援下列功能:
| 功能 | 是否支援? |
|---|---|
| Looker (Google Cloud Core) | |
| 對稱式匯總函式 | |
| 衍生資料表 | |
| 永久 SQL 衍生資料表 | |
| 永久原生衍生資料表 | |
| 穩定檢視畫面 | |
| 終止查詢 | |
| 以 SQL 為基礎的透視表 | |
| 時區 | |
| SSL | |
| 小計 | |
| JDBC 其他參數 | |
| 區分大小寫 | |
| 位置類型 | |
| 清單類型 | |
| 百分位數 | |
| 不重複值的百分位數 | |
| SQL Runner 顯示程序 | |
| SQL Runner 說明資料表 | |
| SQL Runner 顯示索引 | |
| SQL Runner Select 10 | |
| SQL Runner 計數 | |
| SQL 說明 | |
| OAuth 2.0 憑證 | |
| 背景資訊註解 | |
| 連線集區 | |
| HLL Sketch | |
| 匯總感知 | |
| 增量 PDT | |
| 毫秒 | |
| 微秒 | |
| materialized view | |
| 期間比較指標 | |
| 近似不重複值的計數 | |
| 資料庫內分析模型 | |
| 自訂日曆 |
Cloudera Impala 3.1+
Looker 26.20 起,Cloudera Impala 3.1 以上版本支援下列功能:
| 功能 | 是否支援? |
|---|---|
| Looker (Google Cloud Core) | |
| 對稱式匯總函式 | |
| 衍生資料表 | |
| 永久 SQL 衍生資料表 | |
| 永久原生衍生資料表 | |
| 穩定檢視畫面 | |
| 終止查詢 | |
| 以 SQL 為基礎的透視表 | |
| 時區 | |
| SSL | |
| 小計 | |
| JDBC 其他參數 | |
| 區分大小寫 | |
| 位置類型 | |
| 清單類型 | |
| 百分位數 | |
| 不重複值的百分位數 | |
| SQL Runner 顯示程序 | |
| SQL Runner 說明資料表 | |
| SQL Runner 顯示索引 | |
| SQL Runner Select 10 | |
| SQL Runner 計數 | |
| SQL 說明 | |
| OAuth 2.0 憑證 | |
| 背景資訊註解 | |
| 連線集區 | |
| HLL Sketch | |
| 匯總感知 | |
| 增量 PDT | |
| 毫秒 | |
| 微秒 | |
| materialized view | |
| 期間比較指標 | |
| 近似不重複值的計數 | |
| 資料庫內分析模型 | |
| 自訂日曆 |
Cloudera Impala 3.1 以上版本 (使用原生驅動程式)
自 Looker 26.20 起,Cloudera Impala 3.1 以上版本搭配原生驅動程式支援下列功能:
| 功能 | 是否支援? |
|---|---|
| Looker (Google Cloud Core) | |
| 對稱式匯總函式 | |
| 衍生資料表 | |
| 永久 SQL 衍生資料表 | |
| 永久原生衍生資料表 | |
| 穩定檢視畫面 | |
| 終止查詢 | |
| 以 SQL 為基礎的透視表 | |
| 時區 | |
| SSL | |
| 小計 | |
| JDBC 其他參數 | |
| 區分大小寫 | |
| 位置類型 | |
| 清單類型 | |
| 百分位數 | |
| 不重複值的百分位數 | |
| SQL Runner 顯示程序 | |
| SQL Runner 說明資料表 | |
| SQL Runner 顯示索引 | |
| SQL Runner Select 10 | |
| SQL Runner 計數 | |
| SQL 說明 | |
| OAuth 2.0 憑證 | |
| 背景資訊註解 | |
| 連線集區 | |
| HLL Sketch | |
| 匯總感知 | |
| 增量 PDT | |
| 毫秒 | |
| 微秒 | |
| materialized view | |
| 期間比較指標 | |
| 近似不重複值的計數 | |
| 資料庫內分析模型 | |
| 自訂日曆 |
後續步驟
將資料庫連線至 Looker 後,請為使用者設定登入選項。