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 parametrosql_table_name
(per join).
sql_table_name
può essere utilizzato anche come parte di un'esplorazione, descritto nella pagina della documentazione relativa al parametrosql_table_name
(per le esplorazioni).
Utilizzo
sql_table_name: table_name ;;
}
Gerarchia
sql_table_name |
Valore predefinito
Il nome della visualizzazioneAccetta
Un nome tabella nel tuo databaseRegole speciali
|
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 parametroderived table
, descritto nella pagina della documentazione diderived_table
. L'IDE di Looker restituirà un errore se il file di visualizzazione contiene siasql_table_name
chederived_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.