インデックス

使用状況

ビュー: my_view {
derived_table: {
indexes: ["order_id"]
...
}
}
階層
indexes

または

indexes
デフォルト値
なし

許可
PDT または集約テーブルの 1 つ以上の列の名前

特別なルール
indexes特定の言語でのみサポートされます。

定義

indexes パラメータを使用すると、永続的な派生テーブル(PDT)または集計テーブルの列にインデックスを適用できます。複数の列を追加すると、指定した列ごとに 1 つのインデックスが作成されます。1 つの複数列インデックスは作成されません。クエリに indexes パラメータがない場合は、クエリのパフォーマンスを改善するために indexes パラメータを追加するよう警告するメッセージが表示されます。永続的な派生テーブルのインデックス登録の詳細については、Looker の派生テーブルのドキュメントをご覧ください。

indexes をサポートしている言語のリストについては、このページの indexes の言語サポートをご覧ください。

indexes パラメータは、PDT や集計テーブルなど、永続なテーブルでのみ機能します。indexes は、永続化戦略のない派生テーブルではサポートされていません。

また、indexes パラメータは、create_process または sql_create を使用して定義された派生テーブルではサポートされていません。

Redshift で indexes を使用する場合、インターリーブされた並べ替えキーを作成します。sortkeys を使用して通常の並べ替えキーを作成することもできますが、両方を同時に使用することはできません。ディストリビューション キーは distribution で作成できます。

一般に、インデックスは主キーと日付または時間の列に適用する必要があります。

従来のデータベース(MySQL や Postgres など)の場合は、customer_order_facts 永続的な派生テーブルを作成します。order_datagroup データグループがトリガーされ、customer_id にインデックスがある場合、PDT が再ビルドされます。

view: customer_order_facts {
  derived_table: {
    explore_source: order {
      column: customer_id { field: order.customer_id }
      column: lifetime_orders { field: order.lifetime_orders }
    }
    datagroup_trigger: order_datagroup
    indexes: ["customer_id"]
  }
}

従来のデータベースの場合は、SQL クエリに基づいて customer_id にインデックスを適用する永続的な派生テーブルを customer_order_facts に作成します。

view: customer_order_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        COUNT(*) AS lifetime_orders
      FROM
        order
      GROUP BY
        customer_id ;;
    persist_for: "24 hours"
    indexes: ["customer_id"]
  }
}

従来のデータベースの場合は、customer_day_facts 派生テーブルを作成し、customer_iddate の両方のインデックスを設定します。

view: customer_day_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        DATE(order_time) AS date,
        COUNT(*) AS num_orders
      FROM
        order
      GROUP BY
        customer_id ;;
    persist_for: "24 hours"
    indexes: ["customer_id", "date"]
  }
}

Redshift データベースの場合は、customer_day_facts 派生テーブルを作成し、customer_iddate からビルドしたインターリーブ並べ替えキーを作成します。

view: customer_day_facts {
  derived_table: {
    sql:
      SELECT
        customer_id,
        DATE(order_time) AS date,
        COUNT(*) AS num_orders
      FROM
        order
      GROUP BY
        customer_id ;;
    persist_for: "24 hours"
    indexes: ["customer_id", "date"]
  }
}

indexes の言語サポート

indexes を使用できるかどうかは、Looker 接続で使用されているデータベース言語によって異なります。従来のデータベース以外(MySQL や Postgres など)で作業している場合は、データベースが indexes パラメータをサポートしていない可能性があります。この場合、Looker は警告を発します。indexes パラメータをデータベース接続に適したものに置き換えることができます。そのようなパラメータについて詳しくは、パラメータを表示するをご覧ください。

Looker の最新リリースでは、indexes で以下の言語がサポートされています。