Cloudera Impala 3.1 以上版本和 Cloudera Impala 搭配原生驅動程式

使用這些指示的方言

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 或使用者驗證的連線,請按照下列步驟操作:

  1. 在「連線設定」頁面中,將「使用者名稱」和「密碼」欄位留空。(欄位名稱旁的 * 表示這些欄位為必填,但其實並非如此)。
  2. 在「Additional JDBC parameters」(其他 JDBC 參數) 欄位中,輸入 ;auth=noSasl

驗證連線字串

如要在記錄檔中驗證 JDBC 連線字串,請在 Looker 的「管理」面板中,按一下左選單中的「記錄」。然後依 jdbcnoSasl 等字詞篩選記錄。記錄行可能如下所示:

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 使用者的 PATHJAVA_HOME 中。如有需要,請在本機的 looker 目錄中安裝。

Java Cryptography Extension
  1. Oracle 網站下載並安裝 Java 8 的 Java Cryptography Extension (JCE)。

    • 找出 Java 安裝的 jre/lib/security 目錄。
    • 從這個目錄移除下列 JAR 檔案:local_policy.jarUS_export_policy.jar
    • 將這兩個檔案替換為 JCE 無限制強度管轄區政策檔案下載內容中的 JAR 檔案。

    您或許可以搭配安裝的 JCE 使用 Java 8 之前的版本,但我們不建議這麼做。

  2. 更新 ~looker/.bash_profile 中的 JAVA_HOMEPATH,指向正確的 Java 安裝位置和 source ~/.bash_profile,或登出後重新登入。

  3. 使用 java -version 驗證 Java 版本。

  4. 使用 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.confkrb5.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 進行驗證

使用者驗證
  1. 如果 krb5.conf 不在 /etc/ 中,請使用環境變數 KRB5_CONFIG 指出其位置。

  2. 執行 klist 指令,確認 Kerberos 票證快取中是否有有效票證。

  3. 如果沒有票證,請執行 kinit username@REALMkinit username 建立票證。

  4. 與 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 檔案,確保反向查詢能如預期解析。

測試連線,確認設定正確無誤。

偵錯

資源

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 後,請為使用者設定登入選項