Apache Hive

このページでは、Looker を Apache Hive に接続する方法について説明します。

はじめに

Looker は、JDBC 経由でデータベース サーバーに接続できるように設計されています。Hive の場合、これは Thrift サーバー(HiveServer2)です。詳細については、Apache のドキュメントをご覧ください。

デフォルトでは、このサーバーはポート 10000 でリッスンします。

Looker はインタラクティブなクエリツールです。インタラクティブ SQL エンジンと連携することが想定されています。Hive が MapReduce で実行されている場合(hive.execution.enginemr に設定されている場合)、Hive はクエリ結果をあまりにも遅く返すため実用的ではありません。

Looker は Hive on Tez(hive.execution.engine=tez)でテストされていますが、Spark 上で Hive に対して Looker を実行することもできます。Spark のサポートは、Hive バージョン 1.1 で追加されました。(Looker は Hive 1.2.1 以降をサポートしています)。

永続的な派生テーブル(PDT)

Hive 接続を使用して Looker で永続的な派生テーブル(PDT)を有効にするには、Looker が使用するスクラッチ スキーマを作成します。looker_scratch スキーマの作成に使用できるコマンドの例を次に示します。

 CREATE SCHEMA looker_scratch;

Looker が Hive への接続に使用するユーザー アカウント(認証を使用しない場合は匿名でもかまいません)には、スクラッチ スキーマで以下のアビリティが必要です。

  • テーブルの作成
  • テーブルを変更する
  • テーブルの削除

Hive で PDT を作成する前に、JDBC クライアントでテストしてください。

キュー

Looker からのクエリを特定のキューに入れる場合は、[Connection Settings] ページの [Additional Params] フィールドにキュー名パラメータを入力します。

?tez.queue.name=the_bi_queue

その他の Hive パラメータは、[Connection Settings] ページの [Additional Params] フィールドで変更できます。

ユーザー属性を使用すると、異なるユーザーまたは異なるユーザー グループからのクエリを、異なるキューに入れることができます。これを行うには、queue_name のような名前のユーザー属性を作成して、[Additional Params] フィールドに次の行を追加します。

?tez.queue.name={{ _user_attributes['queue_name'] }}

これを使用して、ユーザーごと、またはグループごとに他の hive-site.xml パラメータをカスタマイズすることもできます。

接続の追加

Looker の [Admin] セクションで [Connections] を選択し、[Add Connection] をクリックします。

接続の詳細を入力します(詳細については、Looker のデータベースへの接続ページをご覧ください)。

  • 名前: 接続の名前を指定します。これは、LookML プロジェクトの接続の参照方法です。
  • 言語: Apache Hive 2、Apache Hive 2.3 以降、または Apache Hive 3.1.2 以降のいずれかの言語を指定します。

    Apache Hive 3.1.2 以降の場合、Looker は、バージョン 3.1.2 以降の Apache Hive 3 データベースとのみ完全に統合できます。これは、Hive バージョン 2.4.0 ~ 3.1.2 でのクエリ解析の問題により、Looker で生成された SQL の解析時間が極端に長くなったためです。

  • Host: ホスト名を指定します。

  • ポート: データベース ポートを指定します。

  • データベース: データベース名を指定します。

  • ユーザー名: データベースのユーザー名を指定します。

  • パスワード: データベース ユーザーのパスワードを指定します。

  • 永続的な派生テーブル: 永続派生テーブルを有効にするには、このチェックボックスをオンにします。この設定により、[Temp Database] フィールドと [PDT Overrides] 列が表示されます。

  • 一時データベース: PDT セクションで作成したスクラッチ スキーマの名前を指定します。

  • 最大 PDT ビルダー接続: この接続で可能な同時 PDT ビルドの数を指定します。この値を大きくしすぎると、クエリ時間に悪影響を及ぼす可能性があります。詳細については、Looker のデータベースへの接続ドキュメント ページをご覧ください。

  • Additional Params: 追加の JDBC 文字列パラメータを指定します。

  • PDT とデータグループのメンテナンス スケジュール: Looker でデータグループと永続的な派生テーブルをいつチェックするかを示す cron 式を指定します。この設定の詳細については、PDT とデータグループのメンテナンス スケジュールのドキュメントをご覧ください。

  • SSL: SSL 接続を使用する場合はチェックボックスをオンにします。

  • SSL 証明書の検証: ホスト名の検証を行います。

  • 最大接続数: この設定はデフォルト値のままにできます。この設定の詳細については、Looker のデータベースへの接続ドキュメントで最大接続数をご覧ください。

  • Connection Pool Timeout: 最初はデフォルト値のままにします。この設定の詳細については、Looker のデータベースへの接続に関するドキュメントの接続プールのタイムアウトをご覧ください。

  • SQL Runner のプリキャッシュ: SQL Runner でテーブル情報をプリロードせず、テーブルが選択されている場合にのみテーブル情報を読み込みないようにするには、このオプションをオフにします。この設定の詳細については、Looker のデータベースへの接続ドキュメント ページの SQL Runner プリキャッシュ セクションをご覧ください。

  • データベースのタイムゾーン: データベースで使用するタイムゾーンを指定します。タイムゾーンの変換を希望しない場合は、このフィールドを空白のままにします。詳しくは、タイムゾーンの設定の使用に関するドキュメントをご覧ください。

機能のサポート

一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。

Looker の最新リリースでは、Apache Hive 2 が次の Looker 機能をサポートしています。

Looker の最新リリースでは、Apache Hive 2.3 以降が次の Looker 機能をサポートしています。

Looker の最新リリースでは、Apache Hive 3.1.2 以降が次の Looker 機能をサポートしています。

次のステップ

データベースを Looker に接続したら、ユーザーのログイン オプションを構成します。