使用這些指示的方言
Looker 會連線至下列 Impala 資料庫:
- Cloudera Impala 3.1 以上版本
- Cloudera Impala 3.1 以上版本 (搭配原生驅動程式)
- Cloudera Impala (搭配原生驅動程式)
加密網路流量
最佳做法是加密 Looker 應用程式與資料庫之間的網路流量。請考慮使用「啟用安全資料庫存取權」說明文件頁面所述的其中一個選項。
設定 Looker 以連線至 Cloudera Impala
Looker 會透過 JDBC 連線連至資料庫。如果是 Impala 資料庫,Looker 預設會連線至在通訊埠 21050 上執行 impalad
Daemon 的伺服器。詳情請參閱 Cloudera 網站說明文件的「Configuring Impala to work with JDBC」一節。
在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」。
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
Looker 分析師團隊可能需要協助您正確設定這項連線。
通常,Cloudera 環境的 Kerberos 驗證會透過 Apache Sentry 處理。詳情請參閱 Cloudera 說明文件。
如要設定 Looker,透過 Kerberos 驗證直接連線至 Impala 資料庫,請按照本頁步驟操作。
設定 Kerberos 用戶端設定
首先,您必須確保 Looker 電腦上已安裝多項軟體,並存在多個檔案。
Kerberos 用戶端
嘗試執行 kinit
,確認 Looker 電腦上已安裝 Kerberos 用戶端。如果未安裝 Kerberos 用戶端,請安裝 Kerberos 用戶端的二進位檔。
舉例來說,在 Redhat/CentOS 上,這會是:
sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8
Java 8 必須安裝在 Looker 電腦上,以及 Looker 使用者的 PATH
和 JAVA_HOME
中。如有需要,請在本機的 looker
目錄中安裝。
Java Cryptography Extension
從 Oracle 網站下載並安裝 Java 8 的 Java Cryptography Extension (JCE)。
- 找出 Java 安裝的
jre/lib/security
目錄。 - 從這個目錄移除下列 JAR 檔案:
local_policy.jar
和US_export_policy.jar
。 - 將這兩個檔案替換為 JCE 無限制強度管轄區政策檔案下載內容中的 JAR 檔案。
您或許可以搭配安裝的 JCE 使用 Java 8 之前的版本,但我們不建議這麼做。
- 找出 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 的「管理」部分中,選取「連線」,然後按一下「新增連線」。
填寫連線詳細資料,如下所示 (詳情請參閱「將 Looker 連線至資料庫」說明文件頁面):
- 名稱:連線名稱。這是 LookML 模型中參照連線的方式。
方言:Cloudera Impala 3.1 以上版本、Cloudera Impala 3.1 以上版本 (使用原生驅動程式) 或 Cloudera Impala (使用原生驅動程式)。
主機:主機名稱。
「Port」(通訊埠):資料庫通訊埠 (預設為 21050)。
資料庫:要模擬的預設結構定義/資料庫。如果未指定資料表所屬的資料庫,系統會假設資料表屬於這個資料庫。
使用者名稱:請將這個欄位留空。
密碼:請將這個欄位留空。
啟用 PDT:使用這個切換按鈕啟用永久衍生資料表。啟用 PDT 後,「連線」視窗會顯示其他 PDT 設定和「PDT 覆寫」部分。
暫存資料庫:用於儲存 PDT 的暫時結構定義/資料庫。您必須事先建立這個值區。
其他 JDBC 參數:JDBC 字串的其他參數。 在此指出 Kerberos 主體,例如
;principal=impala/impala.company.com@REALM
。三部分原則是標準做法。第一個 (impala
) 通常是服務名稱,最後一個 (REALM
) 通常是領域。SSL:勾選這個選項即可使用 SSL 連線。 如果您的 SSL 憑證並非由廣為人知的憑證授權單位核發,且您使用的是自訂憑證,則必須:
- 將憑證檔案複製到 Looker 伺服器。這項功能僅適用於客戶代管的 Looker 部署作業。
- 在「其他 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 手冊頁面
- gss-jaas.conf 說明文件
- Krb5LoginModule 說明文件
PDT 的權限
連線至永久衍生資料表 (PDT) 的暫時性結構定義時,使用者必須具備讀取/寫入權限。
功能支援
如要讓 Looker 支援某些功能,資料庫方言也必須支援這些功能。
Cloudera Impala (搭配原生驅動程式)
自 Looker 25.10 起,Cloudera Impala (搭配原生驅動程式) 支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 支援 |
Looker (Google Cloud Core) | 否 |
對稱式匯總函式 | 否 |
衍生資料表 | 是 |
永久 SQL 衍生資料表 | 是 |
永久原生衍生資料表 | 是 |
穩定版檢視畫面 | 是 |
終止查詢 | 是 |
以 SQL 為基礎的樞紐 | 是 |
時區 | 是 |
SSL | 是 |
小計 | 否 |
JDBC 其他參數 | 是 |
區分大小寫 | 是 |
位置類型 | 是 |
名單類型 | 否 |
百分位數 | 否 |
不重複值的百分位數 | 否 |
SQL Runner 顯示程序 | 否 |
SQL Runner 說明資料表 | 是 |
SQL Runner 顯示索引 | 否 |
SQL Runner 選取 10 | 是 |
SQL Runner 計數 | 是 |
SQL 說明 | 是 |
OAuth 2.0 憑證 | 否 |
背景資訊註解 | 是 |
連線集區 | 否 |
HLL 草圖 | 否 |
匯總知名度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 是 |
Cloudera Impala 3.1 以上版本
自 Looker 25.10 起,Cloudera Impala 3.1 以上版本支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 支援 |
Looker (Google Cloud Core) | 是 |
對稱式匯總函式 | 是 |
衍生資料表 | 是 |
永久 SQL 衍生資料表 | 是 |
永久原生衍生資料表 | 是 |
穩定版檢視畫面 | 是 |
終止查詢 | 是 |
以 SQL 為基礎的樞紐 | 是 |
時區 | 是 |
SSL | 是 |
小計 | 否 |
JDBC 其他參數 | 是 |
區分大小寫 | 是 |
位置類型 | 是 |
名單類型 | 否 |
百分位數 | 否 |
不重複值的百分位數 | 否 |
SQL Runner 顯示程序 | 否 |
SQL Runner 說明資料表 | 是 |
SQL Runner 顯示索引 | 否 |
SQL Runner 選取 10 | 是 |
SQL Runner 計數 | 是 |
SQL 說明 | 是 |
OAuth 2.0 憑證 | 否 |
背景資訊註解 | 是 |
連線集區 | 否 |
HLL 草圖 | 否 |
匯總知名度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 是 |
Cloudera Impala 3.1 以上版本 (搭配原生驅動程式)
自 Looker 25.10 起,Cloudera Impala 3.1 以上版本搭配原生驅動程式支援下列功能:
功能 | 是否支援? |
---|---|
支援級別 | 支援 |
Looker (Google Cloud Core) | 否 |
對稱式匯總函式 | 是 |
衍生資料表 | 是 |
永久 SQL 衍生資料表 | 是 |
永久原生衍生資料表 | 是 |
穩定版檢視畫面 | 是 |
終止查詢 | 是 |
以 SQL 為基礎的樞紐 | 是 |
時區 | 是 |
SSL | 是 |
小計 | 否 |
JDBC 其他參數 | 是 |
區分大小寫 | 是 |
位置類型 | 是 |
名單類型 | 否 |
百分位數 | 否 |
不重複值的百分位數 | 否 |
SQL Runner 顯示程序 | 否 |
SQL Runner 說明資料表 | 是 |
SQL Runner 顯示索引 | 否 |
SQL Runner 選取 10 | 是 |
SQL Runner 計數 | 是 |
SQL 說明 | 是 |
OAuth 2.0 憑證 | 否 |
背景資訊註解 | 是 |
連線集區 | 否 |
HLL 草圖 | 否 |
匯總知名度 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 是 |
具體化檢視表 | 否 |
與前一段時期相比的指標 | 否 |
不重複值的概略計數 | 是 |
後續步驟
將資料庫連線至 Looker 後,請為使用者設定登入選項。