Utilisation
view: my_view {
derived_table: {
indexes: ["order_id"]
...
}
}
|
Hiérarchie
indexes- ou - indexes |
Valeur par défaut
Aucun
Acceptation
Noms d'une ou plusieurs colonnes d'une PDT ou d'une table agrégée
Règles spéciales
indexes n'est compatible qu'avec certains dialectes.
|
Définition
Le paramètre indexes vous permet d'appliquer des index aux colonnes d'une table dérivée persistante (PDT) ou d'une table agrégée. Lorsque vous ajoutez plusieurs colonnes, Looker crée un index pour chacune d'elles. Il ne crée pas un seul index multicolonnes. Si le paramètre indexes est manquant dans la requête, Looker vous invitera à l'ajouter pour améliorer les performances de la requête.indexes Pour en savoir plus sur l'indexation des tables dérivées persistantes, consultez la page de documentation Tables dérivées dans Looker.
Pour obtenir la liste des dialectes compatibles avec
indexes, consultez la section Dialectes compatibles avecindexessur cette page.Le paramètre
indexesne fonctionne qu'avec les tables persistantes, telles que les PDT et les tables agrégées.indexesn'est pas compatible avec les tables dérivées sans stratégie de persistance.De plus, le paramètre
indexesn'est pas compatible avec les tables dérivées définies à l'aide decreate_processousql_create.
Si vous utilisez indexes avec Redshift, vous allez créer une clé de tri entrelacée. Vous pouvez également créer des clés de tri régulières à l'aide de sortkeys, mais vous ne pouvez pas les utiliser en même temps. Vous pouvez créer des clés de distribution avec distribution.
En règle générale, les index doivent être appliqués aux clés primaires et aux colonnes de date ou d'heure.
Exemples
Pour une base de données traditionnelle (MySQL ou Postgres, par exemple), créez une table dérivée persistante customer_order_facts. La table PDT doit être recréée lorsque le groupe de données order_datagroup est déclenché et doit comporter un index sur 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"]
}
}
Pour une base de données traditionnelle, créez une table dérivée persistante customer_order_facts basée sur une requête SQL et appliquez un index sur 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"]
}
}
Pour une base de données traditionnelle, créez une table dérivée customer_day_facts avec des index sur customer_id et date :
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"]
}
}
Pour une base de données Redshift, créez une table dérivée customer_day_facts avec une clé de tri entrelacée basée sur customer_id et date :
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"]
}
}
Prise en charge des dialectes pour indexes
La possibilité d'utiliser indexes dépend du dialecte de base de données de votre connexion Looker. Si vous utilisez une base de données autre qu'une base de données traditionnelle (par exemple, MySQL ou Postgres), il est possible que votre base de données ne soit pas compatible avec le paramètre indexes. Looker vous avertira si c'est le cas. Vous pouvez remplacer le paramètre indexes par celui qui convient à votre connexion à la base de données. Pour en savoir plus sur ces paramètres, consultez la page de documentation Afficher les paramètres.
Dans la dernière version de Looker, les dialectes suivants sont compatibles avec indexes :
| Dialecte | Compatibilité |
|---|---|
| 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 |