indeks

Penggunaan

view: my_view {
  derived_table: {
    indexes: ["order_id"]
    ...
  }
}
Hierarki
indexes

- atau -

indexes
Nilai Default
Tidak ada

Menerima
Nama satu atau beberapa kolom dalam PDT atau tabel gabungan

Aturan Khusus
indexes hanya didukung di dialek tertentu

Definisi

Parameter indexes memungkinkan Anda menerapkan indeks ke kolom tabel turunan persisten (PDT) atau tabel gabungan. Saat Anda menambahkan lebih dari satu kolom, Looker akan membuat satu indeks untuk setiap kolom yang Anda tentukan; Looker tidak membuat satu indeks multi-kolom. Jika parameter indexes tidak ada dalam kueri, Looker akan memperingatkan Anda untuk menambahkan parameter indexes guna meningkatkan performa kueri. Pelajari lebih lanjut cara mengindeks tabel turunan persisten di halaman dokumentasi Tabel turunan di Looker.

Lihat bagian Dukungan dialek untuk indexes di halaman ini untuk mengetahui daftar dialek yang mendukung indexes.

Parameter indexes hanya berfungsi dengan tabel yang persisten, seperti PDT dan tabel gabungan. indexes tidak didukung untuk tabel turunan tanpa strategi persistensi.

Selain itu, parameter indexes tidak didukung untuk tabel turunan yang ditentukan menggunakan create_process atau sql_create.

Jika Anda menggunakan indexes dengan Redshift, Anda akan membuat kunci pengurutan yang disisipkan. Anda juga dapat membuat kunci pengurutan reguler menggunakan sortkeys, tetapi Anda tidak dapat menggunakan keduanya secara bersamaan. Kunci distribusi dapat dibuat dengan distribution.

Secara umum, indeks harus diterapkan ke kunci utama dan kolom tanggal atau waktu.

Contoh

Untuk database tradisional (misalnya, MySQL atau Postgres), buat tabel turunan persisten customer_order_facts. PDT harus dibangun ulang saat datagroup order_datagroup dipicu dan akan memiliki indeks pada 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"]
  }
}

Untuk database tradisional, buat tabel turunan persisten customer_order_facts yang didasarkan pada kueri SQL dan menerapkan indeks pada 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"]
  }
}

Untuk database tradisional, buat tabel turunan customer_day_facts dengan indeks pada customer_id dan 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"]
  }
}

Untuk database Redshift, buat tabel turunan customer_day_facts dengan kunci pengurutan yang disisipkan yang dibuat dari customer_id dan 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"]
  }
}

Dukungan dialek untuk indexes

Kemampuan untuk menggunakan indexes bergantung pada dialek database yang digunakan koneksi Looker Anda. Jika Anda menggunakan sesuatu selain database tradisional (misalnya, MySQL atau Postgres), database Anda mungkin tidak mendukung parameter indexes. Looker akan memperingatkan Anda jika hal ini terjadi. Anda dapat menukar parameter indexes dengan parameter yang sesuai untuk koneksi database Anda. Pelajari lebih lanjut parameter tersebut di halaman dokumentasi Melihat parameter.

Dalam rilis Looker terbaru, dialek berikut mendukung indexes:

Dialek Didukung?
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