Questa pagina si riferisce al parametro
sql_table_name, che fa parte di una vista.
sql_table_namepuò essere utilizzato anche nell'ambito di un join, come descritto nella pagina della documentazione dedicata al parametrosql_table_name(per i join).
sql_table_namepuò essere utilizzato anche nell'ambito di un'esplorazione, come descritto nella pagina della documentazione dedicata al parametrosql_table_name(per le esplorazioni).
Utilizzo
view: view_name {
sql_table_name: table_name ;;
}
sql_table_name |
Valore predefinito
Nome della vista
Accetta
Un nome di tabella nel database
Regole speciali
|
Definizione
Il parametro sql_table_name specifica la tabella nel database su cui verrà eseguita una query 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 dedicata aderived_table. L'IDE di Looker restituirà un errore se hai siasql_table_namesiaderived_tablein un file di vista.
Se una vista non contiene il parametro sql_table_name o derived_table, Looker presuppone che la vista sia basata 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 questo:
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 che la vista abbia un nome diverso dalla tabella sottostante, ad esempio per ripulire un nome di tabella disordinato:
view: orders {
sql_table_name: prod_orders_2 ;;
}
Inoltre, ci sono casi in cui una vista deve essere basata 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 in questo esempio:
view: desired_view_name {
sql_table_name: database_name.schema_name.table_name ;;
}
Definizione dell'ambito dei nomi delle tabelle
Quando fai riferimento a una tabella utilizzando solo il nome della tabella, Looker utilizzerà il percorso di ricerca predefinito (il database e lo schema) che l'amministratore di Looker ha configurato nelle impostazioni di connessione per la connessione al database. Per ulteriori informazioni, 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 puntare a un altro database o schema:
- Per fare riferimento a una tabella di un altro schema, utilizza
<schema_name>.<table_name>, come mostrato nell'esempio in questa pagina. - Per fare riferimento a una tabella di un altro database, utilizza il formato completo
<database_name>.<schema_name>.<table_name>.
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 Google BigQuery.
Join federati
Il join di due tabelle di database diversi è chiamato join federato. I join federati possono essere eseguiti utilizzando Looker se i due database utilizzano lo stesso dialetto SQL, il dialetto supporta i join federati e i due 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 ;;
}
Quindi unisci queste viste 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 utilizzano 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 definendo l'ambito del nome della tabella in modo da 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 corrente
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 cui a sua volta si fa riferimento in un oggetto modello. L'oggetto modello ha una connection al database definita al suo interno. Quando fai riferimento a una tabella di 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.
I nomi delle tabelle non descrittivi potrebbero richiedere una formattazione aggiuntiva
Alcuni dialetti richiedono che i nomi delle tabelle con caratteri non supportati, noti anche come nomi di tabelle "non descrittivi", 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 potrebbe essere interpretato come una tabella denominata PaymentInfo nello schema Customers. Per correggere questo problema, se il dialetto richiede 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 virgolette singole, devi sostituire le parentesi quadre con questi caratteri.