これらのインストラクションを使用するダイアレクト
Looker は、次の Impala データベースに接続します。
- Cloudera Impala 3.1+
- ネイティブ ドライバを使用した Cloudera Impala 3.1+
- ネイティブ ドライバを使用した Cloudera Impala
ネットワークトラフィックの暗号化
Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。
Cloudera Impala に接続するための Looker の構成
Looker は JDBC 接続を介してデータベースに接続します。Impala データベースの場合、Looker はデフォルトで、ポート 21050 で impalad
デーモンを実行するサーバーに接続します。詳細については、Cloudera ウェブサイトのドキュメントの JDBC と連携するように Impala を構成するをご覧ください。
Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
Looker の接続構成は、使用するセキュリティによって異なります。
Kerberos またはユーザー認証を使用しないクラスタへの接続
Kerberos またはユーザー認証を使用しない接続を構成するには、次の手順を行います。
- [接続設定] ページで、[ユーザー名] と [パスワード] のフィールドは空欄のままにします。(フィールド名の横の
*
は、これらのフィールドは必須であるものの、入力されていないことを示します)。 - [その他の JDBC パラメータ] フィールドに「
;auth=noSasl
」と入力します。
接続文字列の確認
ログファイル内の JDBC 接続文字列を確認するには、Looker の [管理] パネルで、左側のメニューの [ログ] をクリックします。次に、jdbc
や noSasl
などの用語でログをフィルタします。ログが次のようになります。
jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl
JDBC と連携するように Impala データベースを構成する方法については、外部 Cloudera ウェブサイトのドキュメントをご覧ください。
LDAP 認証を必要とするクラスタに接続する
LDAP 認証が必要なクラスタ(Apache Sentry と Kerberos を使用するクラスタを含む)の場合、[接続設定] ページで、Looker でアクセスするスキーマへのアクセス権を持つ [ユーザー名] と [パスワード] を入力します。
Kerberos で保護されたクラスタに接続するが Apache Sentry は使用しない
この接続を正しく構成するには、Looker アナリスト チームの支援が必要になる場合があります。
通常、Cloudera 環境での Kerberos 認証は、Apache Sentry を介して処理されます。詳しくは、Cloudera のドキュメントをご覧ください。
Kerberos 認証を使用して Impala データベースに直接接続するように Looker を構成する場合は、このページの手順に沿って操作します。
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 ウェブサイトから Java8用の Java Cryptography Extension(JCE)をダウンロードしてインストールします。
- Java のインストール用の
jre/lib/security
ディレクトリを見つけます。 - JAR ファイル
local_policy.jar
とUS_export_policy.jar
をこのディレクトリから削除します。 - これら 2 つのファイルは、JCE Unlimited Strength Jurisdiction Policy Files ダウンロードに含まれている JAR ファイルに置き換えます。
JCE がインストールされていれば、Java 8 より前のバージョンの Java を使用できますが、これはおすすめしません。
- 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 チケットを取得します。
チケットを自動更新する
アクティブなチケットを Kerberos チケット キャッシュに保持するために、頻繁に実行される cron ジョブを設定します。実行する頻度は、クラスタの構成によって異なります。klist
は、チケットが期限切れになるまでの時間を示します。
データベースへの Looker 接続の作成
Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
接続の詳細を次のように入力します(詳しくは、Looker をデータベースに接続のドキュメント ページをご覧ください)。
- Name: 接続の名前。これは LookML モデルで接続を参照する仕組みです。
ダイアレクト: Cloudera Impala 3.1+、ネイティブ ドライバを使用した Cloudera Impala 3.1+、または ネイティブ ドライバを使用した Cloudera Impala。
ホスト: ホスト名。
ポート: データベース ポート(デフォルトでは 21050)。
データベース: モデル化されるデフォルトのスキーマ / データベース。テーブルにデータベースが指定されていない場合は、これが想定されます。
ユーザー名: 空白のままにします。
パスワード: 空白のままにします。
PDT を有効にする: 有効にするには、この切り替えボタンを使用して永続的な派生テーブルを有効にします。PDT が有効になると、追加の PDT 設定と [PDT オーバーライド]が [接続] ウィンドウに表示されます。
一時データベース: PDT を保存するための一時スキーマ/データベース。これは事前に作成する必要があります。
その他の JDBC パラメータ: JDBC 文字列のその他のパラメータ。Kerberos プリンシパルを指定します(例:
;principal=impala/impala.company.com@REALM
)。3 部構成のプリンシパルは標準です。最初のもの(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
ファイルを変更して、逆引き参照が意図したとおりに解決されるようにする必要があります。
接続をテストして、正しく構成されていることを確認します。
デバッグ
- Impala 認証の問題のデバッグに関する Cloudera のドキュメント。
- 構成にデバッグを追加すると、余分なデバッグ情報が
looker/logs/looker.log
に追加されます。
リソース
- Impala への Kerberos 認証の有効化(Cloudera のドキュメント)
- kinit の man ページ
- klist のマニュアル ページ
- gss-jaas.conf のドキュメント
- Krb5LoginModule のドキュメント
PDT の権限
永続的な派生テーブル(PDT)のスクラッチ スキーマに接続するユーザーには、読み取り / 書き込み権限が必要です。
機能のサポート
一部の機能については、Looker でサポートするには、データベース言語が同じ機能に対応している必要があります。
ネイティブ ドライバを使用した Cloudera Impala
ネイティブ ドライバを使用した Cloudera Impala は、Looker 24.18 時点で、次の機能をサポートしています。
機能 | サポート対象 |
---|---|
サポート レベル | 対応 |
Looker(Google Cloud コア) | × |
対称集計 | × |
派生テーブル | ○ |
永続的な SQL 派生テーブル | ○ |
永続的なネイティブ派生テーブル | ○ |
安定したビュー | ○ |
クエリの強制終了 | ○ |
SQL ベースのピボット | ○ |
タイムゾーン | ○ |
SSL | ○ |
Subtotals | × |
JDBC の追加パラメータ | ○ |
大文字と小文字を区別 | ○ |
ロケーション タイプ | ○ |
リストのタイプ | × |
パーセンタイル | × |
個別のパーセンタイル | × |
SQL Runner の表示プロセス | × |
SQL Runner の説明テーブル | ○ |
SQL Runner 表示インデックス | × |
SQL Runner Select 10 | ○ |
SQL ランナーの数 | ○ |
SQL の説明 | ○ |
Oauth 認証情報 | × |
コンテキスト コメント | ○ |
接続プーリング | × |
HLL スケッチ | × |
集計認識 | ○ |
増分PDT | × |
ミリ秒 | ○ |
マイクロ秒 | ○ |
マテリアライズド ビュー | × |
Approximate Count Distinct | ○ |
Cloudera Impala 3.1+
Cloudera Impala 3.1 以降では、Looker 24.18 の時点で、次の機能をサポートしています。
機能 | サポート対象 |
---|---|
サポート レベル | 対応 |
Looker(Google Cloud コア) | ○ |
対称集計 | ○ |
派生テーブル | ○ |
永続的な SQL 派生テーブル | ○ |
永続的なネイティブ派生テーブル | ○ |
安定したビュー | ○ |
クエリの強制終了 | ○ |
SQL ベースのピボット | ○ |
タイムゾーン | ○ |
SSL | ○ |
Subtotals | × |
JDBC の追加パラメータ | ○ |
大文字と小文字を区別 | ○ |
ロケーション タイプ | ○ |
リストのタイプ | × |
パーセンタイル | × |
個別のパーセンタイル | × |
SQL Runner の表示プロセス | × |
SQL Runner の説明テーブル | ○ |
SQL Runner 表示インデックス | × |
SQL Runner Select 10 | ○ |
SQL ランナーの数 | ○ |
SQL の説明 | ○ |
Oauth 認証情報 | × |
コンテキスト コメント | ○ |
接続プーリング | × |
HLL スケッチ | × |
集計認識 | ○ |
増分PDT | × |
ミリ秒 | ○ |
マイクロ秒 | ○ |
マテリアライズド ビュー | × |
Approximate Count Distinct | ○ |
ネイティブ ドライバを使用した Cloudera Impala 3.1+
ネイティブ ドライバを使用した Cloudera Impala 3.1 以降では、Looker 24.18 時点で、次の機能をサポートしています。
機能 | サポート対象 |
---|---|
サポート レベル | 対応 |
Looker(Google Cloud コア) | × |
対称集計 | ○ |
派生テーブル | ○ |
永続的な SQL 派生テーブル | ○ |
永続的なネイティブ派生テーブル | ○ |
安定したビュー | ○ |
クエリの強制終了 | ○ |
SQL ベースのピボット | ○ |
タイムゾーン | ○ |
SSL | ○ |
Subtotals | × |
JDBC の追加パラメータ | ○ |
大文字と小文字を区別 | ○ |
ロケーション タイプ | ○ |
リストのタイプ | × |
パーセンタイル | × |
個別のパーセンタイル | × |
SQL Runner の表示プロセス | × |
SQL Runner の説明テーブル | ○ |
SQL Runner 表示インデックス | × |
SQL Runner Select 10 | ○ |
SQL ランナーの数 | ○ |
SQL の説明 | ○ |
Oauth 認証情報 | × |
コンテキスト コメント | ○ |
接続プーリング | × |
HLL スケッチ | × |
集計認識 | ○ |
増分PDT | × |
ミリ秒 | ○ |
マイクロ秒 | ○ |
マテリアライズド ビュー | × |
Approximate Count Distinct | ○ |
次のステップ
データベースを Looker に接続した後、ユーザーのログイン オプションを構成します。