indexes

Utilizzo

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

- oppure -

indexes
Valore predefinito
Nessuna

Accetta
I nomi di una o più colonne di una PDT o di una tabella aggregata

Regole speciali
indexes è supportato solo su dialetti specifici

Definizione

Il parametro indexes consente di applicare gli indici alle colonne di una tabella derivata permanente (PDT) o di una tabella aggregata. Quando aggiungi più di una colonna, Looker crea un indice per ogni colonna specificata, non un unico indice a più colonne. Se la query non contiene il parametro indexes, Looker ti avvisa di aggiungere un parametro indexes per migliorare le prestazioni della query. Scopri di più sull'indicizzazione delle tabelle derivate permanenti nella pagina della documentazione Tabelle derivate in Looker.

Consulta la sezione Assistenza di Dialetto per indexes di questa pagina per l'elenco di dialetti che supportano indexes.

Il parametro indexes funziona solo con tabelle persistenti, come le PDT e le tabelle aggregate. indexes non è supportato per le tabelle derivate senza una strategia di persistenza.

Inoltre, il parametro indexes non è supportato per le tabelle derivate definite con create_process o sql_create.

Se utilizzi indexes con Redshift, creerai una chiave di ordinamento con interfoliazione. Puoi anche creare chiavi di ordinamento regolari utilizzando sortkeys, ma non puoi utilizzarle contemporaneamente. Le chiavi di distribuzione possono essere create con distribution.

In generale, gli indici devono essere applicati alle chiavi primarie e alle colonne data o ora.

Esempi

Per un database tradizionale (ad esempio MySQL o Postgres), crea una tabella derivata permanente customer_order_facts. La PDT deve essere ricreata quando il gruppo di dati order_datagroup viene attivato e avrà un indice su 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"]
  }
}

Per un database tradizionale, crea una tabella derivata permanente customer_order_facts basata su una query SQL e applica un indice su 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"]
  }
}

Per un database tradizionale, crea una tabella derivata customer_day_facts con indici sia su customer_id che su 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"]
  }
}

Per un database Redshift, crea una tabella derivata customer_day_facts con una chiave di ordinamento con interfoliazione creata da customer_id e 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"]
  }
}

Supporto del dialetto per indexes

La possibilità di utilizzare indexes dipende dal dialetto del database utilizzato dalla connessione di Looker. Se stai lavorando con qualcosa di diverso da un database tradizionale (ad esempio, MySQL o Postgres), il tuo database potrebbe non supportare il parametro indexes. Looker ti avviserà in questo caso. Puoi sostituire il parametro indexes con uno appropriato per la tua connessione al database. Scopri di più su questi parametri nella pagina della documentazione Visualizzazione dei parametri.

Nell'ultima release di Looker i seguenti dialetti supportano indexes: