sql_table_name (per le visualizzazioni)

Questa pagina si riferisce al parametro sql_table_name che fa parte di una visualizzazione.

sql_table_name può essere utilizzato anche nell'ambito di un'unione, come descritto nella pagina della documentazione relativa al parametro sql_table_name (per le unioni).

sql_table_name può essere utilizzato anche nell'ambito di un'esplorazione, come descritto nella pagina della documentazione dedicata al parametro sql_table_name (per le esplorazioni).

Utilizzo

view: view_name {
  sql_table_name: table_name ;;
}
Gerarchia
sql_table_name
Valore predefinito
Il nome della vista

Accetta
Il nome di una tabella nel database

Regole speciali

Definizione

Il parametro sql_table_name specifica la tabella del database su cui verrà eseguita una query da una visualizzazione.

Se vuoi creare una vista basata su una tabella derivata, non utilizzare il parametro sql_table_name. Utilizza invece il parametro derived table, descritto nella pagina di documentazione derived_table. L'IDE di Looker restituirà un errore se hai sia sql_table_name che derived_table in un file di visualizzazione.

Se una vista non contiene il parametro sql_table_name o derived_table, Looker presuppone che la vista si basi su una tabella di database e che il nome della tabella di database corrisponda al nome della vista. In altre parole, questo:

view: my_name { ... }

è logicamente equivalente a:

view: my_name {
  sql_table_name: my_name ;;
}

È abbastanza comune ricorrere a questo comportamento predefinito e non utilizzare sql_table_name. Tuttavia, ci sono alcune situazioni importanti in cui può essere utile. Innanzitutto, in alcuni casi vuoi semplicemente che la visualizzazione abbia un nome diverso da quello della tabella sottostante, ad esempio per pulire un nome di tabella disordinato:

view: orders {
  sql_table_name: prod_orders_2 ;;
}

Inoltre, in alcuni casi una vista deve basarsi su un database o uno schema che non si trova nel percorso di ricerca predefinito dell'utente del database. Puoi quindi definire l'ambito del nome della tabella utilizzando il formato <schema_name>.<table_name>, come segue:

view: desired_view_name {
  sql_table_name: database_name.schema_name.table_name ;;
}

Nomi delle tabelle con ambito

Quando fai riferimento a una tabella utilizzando solo il nome della tabella, Looker utilizzerà il percorso di ricerca predefinito (il database e lo schema) configurato dall'amministratore di Looker nelle impostazioni di connessione per la connessione al database. Per saperne di più, consulta la sezione Aspetti da considerare in questa pagina.

Se devi fare riferimento a una tabella in un database e uno schema diversi che non si trovano nel percorso di ricerca predefinito dell'utente del database, puoi definire l'ambito del nome della tabella utilizzando il formato <database_name>.<schema_name>.<table_name> per indirizzare un altro database o schema:

  • Per fare riferimento a una tabella di uno schema diverso, utilizza <schema_name>.<table_name>, come mostrato nell'esempio in questa pagina.
  • Per fare riferimento a una tabella di un database diverso, utilizza il <database_name>.<schema_name>.<table_name> completo.

Per una connessione Google BigQuery, puoi fare riferimento a una tabella in un progetto e un set di dati diversi definendo l'ambito del nome della tabella utilizzando il formato <project_name>.<dataset_name>.<table_name>. Per ulteriori informazioni, consulta la pagina della documentazione relativa alla connessione a Google BigQuery.

Join federati

L'unione di due tabelle di database diversi è chiamata unione federata. I join federati possono essere eseguiti utilizzando Looker se i due database utilizzano lo stesso dialetto SQL, se il dialetto supporta i join federati e se entrambi i database sono accessibili dalla stessa connessione in Looker. A seconda della configurazione del database, le tabelle potrebbero anche dover risiedere sulla stessa macchina fisica.

In queste condizioni, puoi creare un join federato specificando il nome del database di ogni tabella nel parametro sql_table_name per quella vista:

view: view_1 {
  sql_table_name: database_name.table_1 ;;
}

view: view_2 {
  sql_table_name: another_database_name.table_2 ;;
}

Poi unisci queste visualizzazioni utilizzando il parametro sql_on:

explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.view_1_ID} = ${view_2.view_2_ID} ;;
  }
}

Se vuoi unire database in dialetti SQL diversi, ti consigliamo di replicare un database nell'altro in modo da poter estrarre tutti i dati da un'unica origine.

Esempi

Questo esempio fa sì che la vista customers si basi sulla tabella customer_1 dello schema predefinito:

view: customers {
  sql_table_name: customer_1 ;;
}

Questo esempio fa sì che la vista customers si basi sulla tabella customer_1 di analytics tramite l'ambito del nome della tabella per includere il nome dello schema (utilizzando il formato <schema_name>.<table_name>):

view: customers {
  sql_table_name: analytics.customer_1 ;;
}

Aspetti da considerare

Le tabelle a cui fa riferimento view devono essere accessibili dalla connessione attuale

Quando il parametro sql_table_name viene utilizzato all'interno di un oggetto view, è possibile fare riferimento a questo oggetto view in un oggetto explore, a sua volta referenziato in un oggetto model. L'oggetto di modello ha un database connection definito al suo interno. Quando fai riferimento a una tabella del database nel parametro sql_table_name, la tabella deve essere accessibile all'interno della connessione associata specificata nel file del modello.

Il database e lo schema predefiniti (o, per Google BigQuery, il progetto di fatturazione e il set di dati) vengono definiti dall'amministratore di Looker quando crea la connessione Looker al database per la connessione al database.

I nomi delle tabelle non intuitivi potrebbero richiedere una formattazione aggiuntiva

Alcuni dialetti richiedono che i nomi delle tabelle che contengono caratteri non supportati, noti anche come nomi di tabelle "non compatibili", siano racchiusi tra parentesi quadre, virgolette doppie o virgolette singole. Ad esempio, il nome della tabella Customers.PaymentInfo include un punto, che potrebbe essere interpretato come una tabella chiamata PaymentInfo nello schema Customers. Per correggere questo errore, se il tuo dialetto richiede le parentesi quadre, puoi racchiudere il nome della tabella tra parentesi quadre, come segue:

sql_table_name: [Customers.PaymentInfo] ;;

Se il dialetto richiede virgolette doppie o singole, devi sostituire le parentesi quadre con questi caratteri.