crea_processo

Utilizzo

-
Gerarchia
create_process
Valore predefinito
Nessuna

Accetta
Uno o più sottoparametri sql_step

Definizione

Se il dialetto del database utilizza comandi DDL (Data Definition Language) personalizzati, puoi utilizzare create_process per creare tabelle derivate persistenti (PDT). create_process definisce un elenco di istruzioni SQL che verranno eseguite nell'ordine indicato. Ogni singola istruzione SQL viene specificata utilizzando il sottoparametro sql_step. Ogni sottoparametro sql_step può includere qualsiasi query SQL legale. Puoi definire più sottoparametri sql_step che verranno eseguiti uno alla volta, nell'ordine in cui sono specificati. Looker invia le istruzioni nei sottoparametri sql_step così come sono, senza la consueta correzione degli errori di Looker.

Ad esempio, alcuni dialetti di database non supportano CREATE TABLE as SELECT come istruzione SQL singola, ma richiedono istruzioni SQL separate. Di conseguenza, non è possibile creare tradizionali tabelle derivate permanenti basate su SQL su questi dialetti. Il parametro create_process fornisce un modo alternativo per creare PDT, creando un elenco di istruzioni SQL separate che vengono inviate in sequenza.

Puoi anche utilizzare create_process per supportare dialetti come i modelli predittivi di machine learning BigQuery ML di Google.

Il parametro create_process indica che stai scrivendo le istruzioni CREATE complete per la tabella derivata, inclusi eventuali indici. Per aggiungere un indice per una tabella derivata con create_process, utilizza un parametro sql_step per specificare l'SQL per l'indice.

Per le PDT definite utilizzando create_process, non puoi utilizzare i seguenti parametri:

  • indexes
  • cluster_keys
  • distribution
  • distribution_style
  • partition_keys
  • sortkeys
  • Esempio

    Crea una tabella derivata permanente ctasless_customer_order_facts in un database MySQL in due passaggi. Innanzitutto, invia l'istruzione SQL CREATE TABLE, definita dal primo sottoparametro sql_step. In secondo luogo, invia l'istruzione INSERT INTO SQL con un'istruzione SELECT definita dal secondo sottoparametro sql_step:

    view: ctasless_customer_order_facts {
      derived_table: {
        datagroup_trigger: some_datagroup
        create_process: {
          sql_step: CREATE TABLE ${SQL_TABLE_NAME} (
                             customer_id int(11),
                             lifetime_orders int(11)
                           ) ;;
          sql_step: INSERT INTO ${SQL_TABLE_NAME}(customer_id, lifetime_orders)
                            SELECT customer_id, COUNT(*) AS lifetime_orders
                             FROM order
                             GROUP BY customer_id ;;
        }
      }
    }
    

    Aspetti da considerare

    ${SQL_TABLE_NAME} operatore di sostituzione

    Puoi utilizzare l'operatore di sostituzione ${SQL_TABLE_NAME} per sostituire il nome calcolato della PDT creata. Ciò garantisce che l'istruzione SQL includa correttamente il nome PDT specificato nel parametro LookML view.

    create_process deve creare una tabella con il nome indicato dall'operatore di sostituzione ${SQL_TABLE_NAME}, altrimenti verrà ricreata da zero a ogni intervallo di controllo del trigger specificato nell'impostazione PDT and Datagroup Maintenance Schedule (Pianificazione manutenzione PDT) e gruppi di dati (il valore predefinito è di cinque minuti). Ciò può causare traffico di query imprevisto sul tuo database o data warehouse.

    Usa sql_create per creare una PDT in un solo passaggio

    Se il dialetto del database richiede comandi DDL personalizzati e vuoi creare una PDT in un solo passaggio, puoi utilizzare sql_create per definire un'istruzione SQL CREATE completa per eseguire e creare una PDT in un solo passaggio.

    Le tabelle definite con create_process non possono essere utilizzate per le PDT incrementali

    Da utilizzare come PDT incrementale, per una PDT basata su SQL è necessario definire una query con il parametro sql. Le PDT basate su SQL definite con il parametro sql_create o il parametro create_process non possono essere create in modo incrementale.

    Il motivo è che Looker utilizza un comando INSERT o USC per creare gli incrementi per una PDT incrementale. La tabella derivata non può essere definita utilizzando istruzioni DDL (Data Definition Language) personalizzate, poiché Looker non è in grado di determinare quali istruzioni DDL sarebbero necessarie per creare un incremento preciso.