sql_table_name (per le visualizzazioni)

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

sql_table_name può essere utilizzato anche come parte di un join, descritto nella pagina della documentazione relativa al parametro sql_table_name (per join).

sql_table_name può essere utilizzato anche come parte di un'esplorazione, descritto nella pagina della documentazione relativa 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 visualizzazione

Accetta
Un nome tabella nel tuo database

Regole speciali
  • La tabella deve essere accessibile all'interno della connessione al database
  • Se la tabella è in uno schema diverso, è necessario specificare lo schema
  • Se la tabella si trova in un database diverso, è necessario specificare il database e lo schema, mentre l'altro database deve essere sulla stessa macchina e avere lo stesso dialetto SQL

Definizione

Il parametro sql_table_name specifica la tabella nel database che verrà interrogata da una vista.

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 della documentazione di derived_table. L'IDE di Looker restituirà un errore se il file di visualizzazione contiene sia sql_table_name che derived_table.

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, quanto segue:

view: my_name { ... }

è logicamente equivalente a questo:

view: my_name {
  sql_table_name: my_name ;;
}

È abbastanza comune questo procedimento predefinito e non utilizzare sql_table_name. Tuttavia, in alcuni casi importanti può essere utile. Innanzitutto, in alcuni casi è preferibile che la vista abbia un nome diverso da quello della tabella sottostante, ad esempio quello di ripulire il nome di una tabella disordinata:

view: orders {
  sql_table_name: prod_orders_2 ;;
}

Inoltre, in alcuni casi una visualizzazione deve essere basata su un database o su uno schema che non si trova nel percorso di ricerca predefinito dell'utente del database. A questo punto, puoi creare riferimenti come segue:

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

Partecipazioni federate

L'unione di due tabelle da database diversi viene denominata join federato. Le unioni federate possono essere eseguite utilizzando Looker se i due database sono sullo stesso dialetto SQL, risiedono sulla stessa macchina fisica e sono accessibili dalla stessa connessione in Looker.

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 che si trovano in dialetti SQL diversi, ti consigliamo di replicare un database nell'altro in modo da poter estrarre tutti i dati da una singola origine.

Se vuoi partecipare a due database MySQL su macchine separate, puoi eseguire un join federato su entrambe le connessioni al database creando una tabella FEDERATED con CONNECTION. In sostanza, stabilisci una connessione alle tabelle su un server diverso interamente nel tuo database MySQL. Per ulteriori informazioni, consulta questa documentazione di MySQL.

Esempi

Fai in modo che la vista customers si basi sulla tabella customer_1 dello schema predefinito:

view: customers {
  sql_table_name: customer_1 ;;
}

Fai in modo che la vista customers si basi sulla tabella customer_1 dello schema analytics:

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

Sfide comuni

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

views fa riferimento a un parametro explore o join, che a sua volta fa riferimento a un modello. Il modello determina quale connessione al database utilizzare (vedi connection per il modello). Le connessioni ai database sono definite nella sezione Admin (Amministrazione) di Looker. Quando fai riferimento a una tabella nel parametro sql_table_name, la tabella deve essere accessibile all'interno della connessione associata.

I nomi delle tabelle non conformi 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 adatti", siano racchiusi tra parentesi quadre, virgolette doppie o virgolette singole. Ad esempio, il nome della tabella Customers.PaymentInfo include un punto nel nome della tabella, che può essere interpretato come una tabella chiamata PaymentInfo nello schema Customers. Per risolvere il problema, se il dialetto richiede parentesi quadre, puoi inserire il nome della tabella tra parentesi quadre, come indicato di seguito:

sql_table_name: [Customers.PaymentInfo] ;;

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