管理者設定 - クエリ

Looker 22.16 以降では、Looker 管理者は拡張クエリ管理者の試験運用版ラボ機能を有効にして、[クエリ] ページを拡張できます。[ラボ] 機能を使用すると、[クエリ] ページのパフォーマンスが向上し、ページ分けされたクエリが 50 件ではなく 500 件表示されます。

[管理] メニューの [データベース] セクションの [クエリ] ページには、Looker がデータベースに送信した過去 50 件のクエリに関する情報が一覧表示されます。それより前のクエリについては、Looker の使用のセクションをご覧ください。

基本的なクエリ情報

定義
時間 クエリの開始時間。アプリケーションのタイムゾーンで表示されます。
ステータス クエリのステータス。次の情報が表示されます。
  • キャッシュ: Looker は、データベースに対して重複するクエリを実行する代わりに、キャッシュから結果を返しました。
  • 完了: クエリが正常に完了しました。
  • エラー: エラーが発生したため、クエリを完了できませんでした。エラーの詳細については、[詳細] ボタンをクリックしてください。
  • キャンセル: Looker またはユーザーによってクエリがキャンセルされました。
  • PDT 待ち: クエリを実行するには、永続的な派生テーブルが作成されるのを待つ必要があります。
  • PDT の構築: 永続的な派生テーブルは作成中です。
  • キューに格納済み: 実行中のクエリが多すぎるため、クエリの実行を待機しています(接続の設定またはデータベースの Looker でクエリを制限できます)。
  • 実行中: クエリは実行中です。
  • 不明: このクエリで何が起きたかを Looker が判断できませんでした。
接続 このクエリが実行された Looker 接続
ユーザー このクエリを実行したユーザー(決定できる場合)。一部のクエリは実行されません。たとえば、Looker によって永続的な派生テーブルが作成された場合や、不明なユーザーが一般公開 Look にアクセスした場合などです。
ソース Looker のクエリのソース(Explore ページや SQL Runner など)。可能であれば、保存済みの Look へのリンク、またはモデルと Explore の名前とともにクエリ ID も表示されます。クエリによっては、追加情報(SQL Runner で実行するクエリなど)が含まれていない場合があります。
ランタイム クエリの実行にかかった時間。たとえば、クエリの作成、キューでのクエリの実行時間、データベースとの間のやり取り、クエリのデータベース実行などを確認できます。

クエリが現在実行中の場合、ランタイムにはクエリの実行時間が表示されます。以前に実行されたクエリについては、ランタイムにクエリの実行完了までにかかる時間の推定値も表示されます。推定値は、お客様が最後に実行した時間に基づいており、「約 2 秒」のように表示されます。
詳細ボタン 詳細については、このページの詳細ボタンをご覧ください。

[詳細] ボタン

クエリの右側にある [詳細] ボタンをクリックすると、そのクエリに関する追加情報が表示されます。[クエリの詳細] ポップアップには、次の情報が表示されます。

  • クエリの詳細を含む [情報] セクション(次の表をご覧ください)
  • SQL セクション。データベースに対して実行された未加工の SQL が表示されます。コンテキスト コメントは [クエリの詳細] 情報に表示されません。コメントがクエリのキャッシュに影響を与えないように、Looker は SQL がデータベースに送信される直前に、コンテキスト SQL を送信 SQL コマンドに追加します。
  • [SQL Runner] リンク。SQL Runner でクエリが開きます。

[情報] セクションには、次の情報が表示されます。

セクション 定義
履歴 ID クエリの履歴 ID(ある場合)。
ステータス 上記で説明したクエリのステータス。
接続 このクエリが実行された Looker 接続
ユーザー このクエリを実行したユーザー(決定できる場合)。一部のクエリは実行されません。たとえば、Looker によって永続的な派生テーブルが作成された場合や、不明なユーザーが一般公開 Look にアクセスした場合などです。
ソース Looker のクエリのソース([Explore] ページや SQL Runner など)。可能であれば、保存された Look へのリンク、クエリ ID、モデル名、Explore 名、選択したフィールドなどの追加情報が表示されます。
Start Time クエリの開始時間。アプリケーションのタイムゾーンで表示されます。
終了時刻 クエリの終了時間(アプリケーションのタイムゾーンで表示されます)。
ランタイム クエリの実行にかかった時間。

クエリの強制終了

Looker は、実行中のブラウザタブを閉じると、実行中のクエリを自動的に停止します。Looker 管理者は [Queries] ページで、実行中のクエリを停止することもできます。(see_queries 権限を持つユーザーは [クエリ] ページを表示できますが、実行中のクエリを停止できるのは Looker 管理者のみです)。まだ実行されているクエリには、クエリの右側に [停止] ボタンが表示されます。[停止] をクリックしてクエリを停止します。

Looker がクエリを強制終了するには、データベース言語がクエリキルをサポートしている必要があります。以下に、Looker の最新リリースでクエリ強制終了をサポートする言語を示します。

クエリのタイムアウトとキュー

Looker はキューで長時間待機していたクエリを強制終了します。この操作はタイムアウトと呼ばれます。クエリに複数のタイムアウトが適用される場合があります。

  • 接続プールのタイムアウト: 同時実行クエリによるデータベースの過負荷を防ぐために、Looker は Looker クエリキュー内の過剰な同時実行クエリを保持し、キューに留まったままではないクエリを強制終了します。デフォルトでは、接続あたり最大 75 件の同時実行クエリが許可され、0 秒後にキューに入れられたクエリはタイムアウトします。これらのデフォルトを変更するには、接続の接続設定ページで最大接続数接続プールのタイムアウトの設定を行います。

  • ユーザーごとのクエリの上限とタイムアウト: 1 人のユーザーが Looker クエリキューを埋めてしまうのを防ぐために、各ユーザーに同時に実行可能なクエリの最大数と、対応するキューのタイムアウトが設定されます。デフォルトでは、各ユーザーは最大 15 件の同時実行クエリを実行できます。この上限によりキューに入れられたクエリのタイムアウトは 600 秒です。Looker インスタンスが顧客ホスト型である場合は、--per-user-query-limit--per-user-query-timeout起動オプションを構成することで、これらのデフォルト値を変更できます。

  • スケジューラのクエリ制限とタイムアウト: Looker スケジューラ プロセスの過負荷を防ぐために、Looker インスタンスは最大 10 件の同時実行スケジュールされたクエリを実行できます。また、スケジューラ キュー内のクエリのタイムアウトは 1,200 秒です。Looker インスタンスが顧客ホスト型である場合は、--scheduler-query-limit--scheduler-query-timeout起動オプションを構成することで、これらのデフォルト値を変更できます。

    Looker インスタンスがクラスタ化されている場合、クラスタの各ノードは独自のスケジューラ キューを使用します。そのため、クラスタにノードを追加すると、Looker スケジューラ プロセスに余分な負荷をかけることなく、同時に実行できるスケジュールされたクエリの総数が増加します。

  • レンダラのクエリ制限とタイムアウト: Looker のレンダラ プロセスの過負荷を防ぐために、Looker インスタンスでは最大 2 つの画像ベースのダウンロード(PDF 形式と PNG 形式など)を同時にレンダリングできます。Looker インスタンスが顧客ホスト型である場合は、--concurrent-render-jobs 起動オプションを構成することで、このデフォルトを変更できます。

    Looker インスタンスがクラスタ化されている場合、クラスタの各ノードは独自のレンダラキューを使用します。そのため、クラスタにノードを追加すると、Looker レンダラ プロセスに余分な負担をかけることなく、許可される同時実行レンダラ ジョブの総数が増加します。

  • Webhook タイムアウト: Looker は、最大 30 分間の Webhook へのデータ配信を試行します。30 分後に Looker が Webhook の宛先と通信できない場合、クエリはタイムアウトします。このタイムアウトは構成できません。

  • プロキシ タイムアウト: Looker がホストするインスタンスは、60 分間実行されているクエリを強制終了するプロキシを使用します。このタイムアウトは構成できません。

    顧客がホストするインスタンスは、デフォルトのタイムアウトが 60 秒のプロキシを使用することがよくあります。このタイムアウトは 60 分に延長することをおすすめします。詳細については、プロキシ サーバーまたはロードバランサの背後での Looker の実行に関する Looker コミュニティの投稿をご覧ください。

  • データベースのタイムアウト: ほとんどのデータベースには、Looker のキューとタイムアウトとは独立したキューイングとタイムアウトのルールがあります。たとえば、クエリが Looker のキューから離れていても、データベースではキューに入れられる場合があります。データベース クエリのタイムアウトのカスタマイズの詳細については、データベースのドキュメントをご覧ください。