Cette page fait référence au paramètre
sql_table_name
qui fait partie d'une vue.
sql_table_name
peut également être utilisé dans le cadre d'une jointure, décrite sur la page de documentation du paramètresql_table_name
(pour les jointures).
sql_table_name
peut également être utilisé dans le cadre d'une exploration, décrite sur la page de documentation du paramètresql_table_name
(pour les explorations).
Utilisation
sql_table_name: table_name ;;
}
Hiérarchie
sql_table_name |
Valeur par défaut
Nom de la vueAcceptation
Un nom de table dans votre base de donnéesRègles spéciales
|
Définition
Le paramètre sql_table_name
spécifie la table de votre base de données qui sera interrogée par une vue.
Si vous souhaitez créer une vue basée sur une table dérivée, n'utilisez pas le paramètre
sql_table_name
. Utilisez plutôt le paramètrederived table
, décrit sur la page de documentation dederived_table
. L'IDE Looker renverra une erreur si vous avez à la foissql_table_name
etderived_table
dans un fichier d'affichage.
Si une vue ne contient ni le paramètre sql_table_name
, ni le paramètre derived_table
, Looker suppose que la vue est basée sur une table de base de données et que le nom de la table de base de données correspond au nom de la vue. En d'autres termes:
view: my_name { ... }
est équivalent logiquement à ceci:
view: my_name {
sql_table_name: my_name ;;
}
Il est assez fréquent de ne pas utiliser ce comportement par défaut et de ne pas utiliser sql_table_name
. Cependant, il peut arriver que cela soit utile dans certaines situations majeures. Tout d'abord, vous aurez parfois besoin que la vue porte un nom différent de celui de la table sous-jacente, par exemple pour nettoyer un tableau désordonné:
view: orders {
sql_table_name: prod_orders_2 ;;
}
De plus, il existe des cas où une vue doit être basée sur une base de données ou un schéma qui ne se trouve pas dans le chemin de recherche par défaut de l'utilisateur de la base de données. Vous pouvez ensuite créer des références comme celles-ci:
view: desired_view_name {
sql_table_name: database_name.schema_name.table_name ;;
}
Jointures fédérées
La jointure de deux tables à partir de différentes bases de données est appelée jointure fédérée. Les jointures fédérées peuvent être effectuées à l'aide de Looker si les deux bases de données utilisent le même dialecte SQL, résident sur la même machine physique et sont accessibles via la même connexion dans Looker.
Dans ces conditions, vous pouvez créer une jointure fédérée en spécifiant le nom de base de données de chaque table dans le paramètre sql_table_name
pour cette vue:
view: view_1 {
sql_table_name: database_name.table_1 ;;
}
view: view_2 {
sql_table_name: another_database_name.table_2 ;;
}
Ensuite, associez ces vues à l'aide du paramètre sql_on
:
explore: view_1 {
join: view_2 {
sql_on: ${view_1.view_1_ID} = ${view_2.view_2_ID} ;;
}
}
Si vous souhaitez joindre des bases de données dans différents dialectes SQL, nous vous recommandons de répliquer une base de données dans l'autre afin de pouvoir extraire toutes les données d'une source unique.
Si vous souhaitez effectuer une jointure entre deux bases de données MySQL sur des machines distinctes, vous pouvez effectuer une jointure fédérée sur les deux connexions de base de données en créant une table FEDERATED
à l'aide de CONNECTION
. En bref, vous établissez une connexion aux tables sur un autre serveur entièrement dans votre base de données MySQL. Consultez cette documentation MySQL pour en savoir plus.
Examples
Faites en sorte que la vue customers
s'appuie sur la table customer_1
du schéma par défaut:
view: customers {
sql_table_name: customer_1 ;;
}
Faites en sorte que la vue customers
s'appuie sur la table customer_1
du schéma analytics
:
view: customers {
sql_table_name: analytics.customer_1 ;;
}
Difficultés courantes
Les tables référencées par view
doivent être accessibles à partir de la connexion actuelle
Les éléments views
sont référencés par un paramètre explore
ou join
, qui est lui-même référencé par un modèle. Le modèle détermine quelle connexion à la base de données est utilisée (voir connection
pour le modèle). Les connexions à la base de données sont définies dans la section Administration de Looker. Lorsque vous faites référence à une table dans le paramètre sql_table_name
, elle doit être accessible dans la connexion associée.
Les noms de tables non compatibles peuvent nécessiter une mise en forme supplémentaire
Dans certains dialectes, les noms de tables comportant des caractères non compatibles (également appelés noms de tables "non conviviaux") doivent être placés entre crochets, de guillemets doubles ou de guillemets simples. Par exemple, le nom de la table Customers.PaymentInfo
inclut un point, qui peut être interprété comme une table appelée PaymentInfo
dans le schéma Customers
. Pour résoudre ce problème, si votre dialecte nécessite des crochets, vous pouvez placer le nom du tableau entre crochets, comme suit:
sql_table_name: [Customers.PaymentInfo] ;;
Si votre dialecte nécessite des guillemets doubles ou des guillemets simples, vous devez remplacer les crochets de ces caractères.