用途
view: my_view {
derived_table: {
indexes: ["order_id"]
...
}
}
|
階層
indexesまたは indexes |
デフォルト値
なし
許可
PDT または集計テーブルの 1 つ以上の列の名前
特別なルール
indexes は特定の言語でのみサポートされています |
定義
indexes パラメータを使用すると、永続的な派生テーブル(PDT)または集約テーブルの列にインデックスを適用できます。複数の列を追加すると、Looker は指定した列ごとに 1 つのインデックスを作成します。単一の複数列インデックスは作成されません。クエリに indexes パラメータがない場合、クエリのパフォーマンスを改善するために indexes パラメータを追加するよう Looker から警告が表示されます。永続的な派生テーブルのインデックス登録について詳しくは、Looker の派生テーブルのドキュメント ページをご覧ください。
indexesをサポートする言語のリストについては、このページのindexesの言語サポートをご覧ください。
indexesパラメータは、PDT や集約テーブルなど、永続的なテーブルでのみ機能します。indexesは、永続性戦略のない派生テーブルではサポートされていません。また、
create_processまたはsql_createを使用して定義された派生テーブルでは、indexesパラメータはサポートされていません。
Redshift で indexes を使用すると、インターリーブ ソートキーが作成されます。sortkeys を使用して通常のソートキーを作成することもできますが、両方を同時に使用することはできません。分散キーは distribution で作成できます。
一般的に、インデックスは主キーと日付または時刻の列に適用する必要があります。
例
従来型のデータベース(MySQL や Postgres など)の場合は、customer_order_facts 永続的な派生テーブルを作成します。PDT は order_datagroup データグループがトリガーされたときに再構築され、customer_id にインデックスが設定されます。
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_order_facts 永続派生テーブルを作成し、customer_id にインデックスを適用します。
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_id と date の両方にインデックスを設定した customer_day_facts 派生テーブルを作成します。
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_id と date から作成されたインターリーブ ソートキーを使用して customer_day_facts 派生テーブルを作成します。
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 がサポートされています。
| 方言 | サポート対象 |
|---|---|
| Actian Avalanche | |
| Amazon Athena | |
| Amazon Aurora MySQL | |
| Amazon Redshift | |
| Amazon Redshift 2.1+ | |
| Amazon Redshift Serverless 2.1+ | |
| Apache Druid | |
| Apache Druid 0.13+ | |
| Apache Druid 0.18+ | |
| Apache Hive 2.3+ | |
| Apache Hive 3.1.2+ | |
| Apache Spark 3+ | |
| ClickHouse | |
| Cloudera Impala 3.1+ | |
| Cloudera Impala 3.1+ with Native Driver | |
| Cloudera Impala with Native Driver | |
| DataVirtuality | |
| Databricks | |
| Denodo 7 | |
| Denodo 8 & 9 | |
| Dremio | |
| Dremio 11+ | |
| Exasol | |
| Google BigQuery Legacy SQL | |
| Google BigQuery Standard SQL | |
| Google Cloud PostgreSQL | |
| Google Cloud SQL | |
| Google Spanner | |
| Greenplum | |
| HyperSQL | |
| IBM Netezza | |
| MariaDB | |
| Microsoft Azure PostgreSQL | |
| Microsoft Azure SQL Database | |
| Microsoft Azure Synapse Analytics | |
| Microsoft SQL Server 2008+ | |
| Microsoft SQL Server 2012+ | |
| Microsoft SQL Server 2016 | |
| Microsoft SQL Server 2017+ | |
| MongoBI | |
| MySQL | |
| MySQL 8.0.12+ | |
| Oracle | |
| Oracle ADWC | |
| PostgreSQL 9.5+ | |
| PostgreSQL pre-9.5 | |
| PrestoDB | |
| PrestoSQL | |
| SAP HANA | |
| SAP HANA 2+ | |
| SingleStore | |
| SingleStore 7+ | |
| Snowflake | |
| Teradata | |
| Trino | |
| Vector | |
| Vertica |