- Catégories :
SEMANTIC_VIEW¶
Spécifie la vue sémantique à interroger. Vous spécifiez SEMANTIC_VIEW(…) dans une FROM clause de l’instruction SELECT.
Note
Vous ne pouvez pas interroger des faits ou des métriques privés ou les utiliser dans la condition WHERE.
- Voir aussi :
Syntaxe¶
SEMANTIC_VIEW(
[<namespace>.]<semantic_view_name>
[
{
METRICS <metric> [ , ... ] |
FACTS <fact_expr> [ , ... ]
}
]
[ DIMENSIONS <dimension_expr> [ , ... ] ]
[ WHERE <predicate> ]
)
Paramètres¶
[namespace.]semantic_view_name
Spécifie l’identificateur de la vue sémantique à interroger.
Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Pour plus d’informations, voir Exigences relatives à l’identificateur.
METRICS metric [ , ... ]
Spécifie les métriques que vous souhaitez voir apparaître dans les résultats.
Note
Vous ne pouvez pas spécifier une expression qui utilise une métrique. Par exemple, vous ne pouvez pas spécifier
t1.metric_1 + 1
.Vous ne pouvez pas spécifier de métriques privées.
Pour les noms des métriques :
Vous pouvez qualifier le nom de la métrique (par exemple,
my_logical_table.my_metric
).L’utilisation du nom non qualifié ne fonctionne que s’il n’y a pas d’autres identificateurs portant le même nom non qualifié dans la vue sémantique. Par exemple, si une métrique et une dimension utilisent le même nom non qualifié, vous devez qualifier le nom de la métrique dans la requête.
Pour spécifier toutes les métriques d’une table logique, utilisez un astérisque comme caractère générique, qualifié par le nom de la table logique (par exemple,
my_logical_table.*
).Vous ne pouvez pas spécifier un astérisque sans le qualifier avec un nom de table.
Spécifiez les métriques dans l’ordre dans lequel elles doivent apparaître dans les résultats.
FACTS fact_expr [ , ... ]
Spécifie les faits que vous souhaitez renvoyer dans les résultats. Vous pouvez également spécifier des expressions scalaires qui font référence à des faits ou à des dimensions dans la vue sémantique. Si vous spécifiez une expression scalaire, les dimensions et les faits de cette expression doivent appartenir à la même table logique.
Note
Vous ne pouvez pas spécifier de faits privés.
Contrairement aux dimensions spécifiées dans la clause DIMENSIONS, la requête ne regroupe pas les faits spécifiés dans la clause FACTS. Différentes lignes peuvent inclure la même valeur pour un fait.
Précisez les faits dans l’ordre dans lequel ils doivent apparaître dans les résultats.
DIMENSIONS dimension_expr [ , ... ]
Spécifie les dimensions que vous souhaitez renvoyer dans les résultats. Vous pouvez également spécifier des expressions scalaires qui font référence à des dimensions ou à des faits dans la vue sémantique. Si vous spécifiez une expression scalaire, les dimensions et les faits de cette expression doivent appartenir à la même table logique.
La requête regroupe les résultats selon les dimensions que vous spécifiez ici. Par exemple, si une table logique comprend cinq valeurs distinctes pour une dimension, la spécification de cette dimension dans la clause DIMENSIONS renvoie cinq lignes.
Pour les noms des dimensions :
Vous pouvez qualifier le nom de la dimension (par exemple,
my_logical_table.my_dimension
). L’utilisation du nom non qualifié ne fonctionne que s’il n’y a pas d’autres identificateurs portant le même nom non qualifié dans la vue sémantique. Par exemple, si une métrique et une dimension utilisent le même nom non qualifié, vous devez qualifier le nom de la dimension dans la requête.Pour spécifier toutes les dimensions d’une table logique, utilisez un astérisque comme caractère générique, qualifié par le nom de la table logique (par exemple,
my_logical_table.*
).Vous ne pouvez pas spécifier un astérisque sans le qualifier avec un nom de table.
Si vous spécifiez une expression scalaire, vous ne pouvez pas faire référence à des dimensions dans d’autres vues ou métriques sémantiques.
Spécifiez les dimensions dans l’ordre dans lequel elles doivent apparaître dans les résultats.
Note
Si vous renvoyez une métrique de fonction de fenêtre, vous devez également renvoyer les dimensions spécifiées dans les clauses PARTITION BY
dimension
, PARTITION BY EXCLUDINGdimension
et ORDER BYdimension
dans l’instruction CREATE SEMANTIC VIEW pour cette vue sémantique.Voir Définition et requête des métriques des fonctions de fenêtre.
WHERE predicate
Une expression booléenne. L’expression peut inclure des opérateurs logiques, des fonctions intégrées et des fonctions définies par l’utilisateur (UDFs).
Dans la condition, vous ne pouvez faire référence qu’à des dimensions, des faits et des expressions qui utilisent des dimensions et des faits.
Si vous spécifiez des faits provenant de différentes entités, la clause RELATIONSHIPS dans la définition de la vue sémantique doit définir une relation entre ces entités.
Cette condition de filtre est appliquée avant le calcul des métriques.
Notes sur l’utilisation¶
Dans la clause SEMANTIC_VIEW, vous devez spécifier au moins l’une des clauses suivantes :
METRICS
DIMENSIONS
FACTS
Vous ne pouvez pas omettre toutes ces clauses dans la clause SEMANTIC_VIEW.
Lorsque vous spécifiez une combinaison de ces clauses, notez ce qui suit :
Vous ne pouvez pas spécifier des FACTS et des METRICS dans la même clause SEMANTIC_VIEW.
Bien que vous puissiez spécifier à la fois des FACTS et des DIMENSIONS dans une requête, vous ne devez le faire que si les dimensions peuvent déterminer les faits de manière unique.
La requête regroupe les résultats par dimensions. Si les faits ne dépendent pas des dimensions, les résultats peuvent être non déterministes.
Si vous spécifiez les FACTS et les DIMENSIONS, tous les faits et dimensions utilisés dans la requête (y compris ceux spécifiés dans la clause WHERE) doivent être définis dans la même table logique.
Si vous spécifiez une dimension et une métrique, la table logique de la dimension doit être associée à la table logique de la métrique.
En outre, la table logique de la dimension doit avoir un niveau de granularité égal ou inférieur à celui de la table logique de la métrique.
Pour déterminer quelles dimensions répondent à ces critères, vous pouvez exécuter la commande SHOW SEMANTIC DIMENSIONS FOR METRIC.
Pour plus de détails, voir Choix des dimensions que vous pouvez renvoyer pour une métrique donnée.
Dans la clause DIMENSIONS, vous pouvez spécifier une expression qui fait référence à un fait. De même, dans la clause FACTS, vous pouvez spécifier une expression qui fait référence à une dimension. Par exemple :
-- Dimension expression that refers to a fact DIMENSIONS my_table.my_fact -- Fact expression that refers to a dimension FACTS my_table.my_dimension
Une des principales différences entre l’utilisation de DIMENSIONS et de FACTS est que la requête regroupe les résultats selon les dimensions et les expressions spécifiées dans la clause DIMENSIONS.
Spécifiez les clauses METRICS, DIMENSIONS et FACTS dans l’ordre dans lequel vous voulez qu’elles apparaissent dans les résultats.
Si vous souhaitez que les dimensions apparaissent en premier dans les résultats, indiquez DIMENSIONS avant METRICS. Sinon, indiquez d’abord METRICS.
Par exemple, supposons que vous indiquiez la clause METRICS en premier :
SELECT * FROM SEMANTIC_VIEW( tpch_analysis METRICS customer.customer_order_count DIMENSIONS customer.customer_name ) ORDER BY customer_name LIMIT 5;
Dans la sortie, la première colonne est celle de la métrique (
customer_order_count
) et la deuxième colonne est celle de la dimension (customer_name
) :+----------------------+--------------------+ | CUSTOMER_ORDER_COUNT | CUSTOMER_NAME | |----------------------+--------------------| | 6 | Customer#000000001 | | 7 | Customer#000000002 | | 0 | Customer#000000003 | | 20 | Customer#000000004 | | 4 | Customer#000000005 | +----------------------+--------------------+
Inversement, si vous spécifiez d’abord la clause DIMENSIONS :
SELECT * FROM SEMANTIC_VIEW( tpch_analysis DIMENSIONS customer.customer_name METRICS customer.customer_order_count ) ORDER BY customer_name LIMIT 5;
Dans la sortie, la première colonne est celle de la dimension (
customer_name
) et la deuxième colonne est celle de la métrique (customer_order_count
) :+--------------------+----------------------+ | CUSTOMER_NAME | CUSTOMER_ORDER_COUNT | |--------------------+----------------------| | Customer#000000001 | 6 | | Customer#000000002 | 7 | | Customer#000000003 | 0 | | Customer#000000004 | 20 | | Customer#000000005 | 4 | +--------------------+----------------------+
Vous pouvez utiliser la relation définie par une clause SEMANTIC_VIEW dans d’autres constructions SQL, notamment JOIN, PIVOT, UNPIVOT, GROUP BY et les expressions de table communes (CTE).
Les en-têtes des colonnes de sortie utilisent les noms non qualifiés des métriques et des dimensions.
Si plusieurs métriques et dimensions portent le même nom, utilisez un alias de table pour attribuer des noms différents aux en-têtes de colonne. Voir Gestion des noms de colonnes en double dans la sortie.