Utilisation
view: my_view {
derived_table: {
indexes: ["order_id"]
...
}
}
|
Hiérarchie
indexes- ou - indexes |
Valeur par défaut
Aucun
Acceptation
Noms d'une ou de plusieurs colonnes dans une table PDT ou un tableau cumulé
Règles spéciales
indexes n'est compatible qu'avec des dialectes spécifiques
|
Définition
Le paramètre indexes vous permet d'appliquer des index aux colonnes d'une table dérivée persistante (PDT) ou d'un tableau cumulé. Lorsque vous ajoutez plusieurs colonnes, Looker crée un index pour chaque colonne que vous spécifiez. Il ne crée pas un seul index à plusieurs colonnes. Si le paramètre indexes est manquant dans la requête, Looker vous invite à ajouter un paramètre indexes pour améliorer les performances de la requête. Pour en savoir plus sur l'indexation des tables dérivées persistantes, consultez la page de documentation sur les tables dérivées dans Looker.
Consultez la section Compatibilité des dialectes pour
indexessur cette page pour obtenir la liste des dialectes compatibles avecindexes.Le paramètre
indexesne fonctionne qu'avec les tables persistantes, telles que les tables 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 créez 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 utiliser les deux en même temps. Les clés de distribution peuvent être créées 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 (par exemple, MySQL ou Postgres), créez une table dérivée persistante customer_order_facts. La table PDT doit être reconstruite lorsque le order_datagroup groupe de données est déclenché et comporte 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 créée à partir de 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"]
}
}
Compatibilité 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 autre chose qu'une base de données traditionnelle (par exemple, MySQL ou Postgres), votre base de données peut ne pas être compatible avec le paramètre indexes. Looker vous avertit si tel est le cas. Vous pouvez remplacer le paramètre indexes par un paramètre adapté à votre connexion à la base de données. Pour en savoir plus sur ces paramètres, consultez la page de documentation sur les paramètres de vue.
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.x - 0.17.x | |
| 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 AlloyDB for PostgreSQL | |
| 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 | |
| MongoSQL | |
| 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 |