Interroger les vues de métriques avec le mode de compatibilité BI
Bêta
Cette fonctionnalité est en Bêta.
Le mode de compatibilité BI vous permet d’interroger les vues de métriques Unity Catalog depuis des outils de BI externes. Lorsqu'elle est activée, Databricks réécrit les requêtes générées par l'outil de BI pour évaluer correctement les mesures de la vue métrique.
Cette page explique comment activer le mode de compatibilité BI, son fonctionnement, les scénarios pris en charge et les limitations connues.
Le mode de compatibilité BI est l'une des plusieurs façons d'interroger les vues de métriques à partir des outils BI. Pour un aperçu de toutes les approches, y compris le SQL personnalisé avec la fonction MEASURE(), consultez Utiliser des vues de métriques avec des outils de BI externes.
Exigences
Microsoft a supprimé l'option mode de compatibilité BI , qui vous permet d'interroger les vues métriques de Unity Catalog dans Power BI, du connecteur Power BI vers Databricks. Les rapports qui utilisent cette option de connecteur ne fonctionnent plus. Autrement, vous pouvez interroger les vues de métriques Unity Catalog dans Power BI en utilisant la fonction MEASURE() avec l'option Requête native du connecteur en mode DirectQuery. Consultez Utiliser des vues de métriques avec des outils BI externes. Pour demander la restauration du support des vues de métriques Databricks dans Power BI, votez et donnez votre avis sur le billet de la communauté Fabric Ideas. Vous pouvez également utiliser les tableaux de bord AI/BI Databricks, qui fonctionnent en mode natif avec les vues de métriques.
- Un warehouse Databricks SQL, ou un cluster qui exécute Databricks Runtime 18.0 ou une version ultérieure.
- Un outil de BI qui prend en charge les connexions SQL pass-through ou DirectQuery à Databricks.
- La possibilité d'exécuter une configuration SQL au niveau de la session dans l'outil de BI (par exemple, via un script SQL initial ou une commande de Startup).
Activer le mode de compatibilité BI
Activez le mode de compatibilité BI en exécutant la commande de configuration SQL suivante au start de votre session. La commande dépend du compute auquel vous vous connectez :
-
Sur un Databricks SQL warehouse :
SQLSET metric_view_bi_compatibility_mode = true; -
Sur un cluster :
SQLSET spark.databricks.sql.metricView.bi.compatibilityMode.enabled = true;
La manière dont vous définissez la configuration dépend de votre outil de BI. Par exemple, dans Tableau, vous pouvez utiliser le champ SQL initial dans la boîte de dialogue de connexion.
Le mode de compatibilité BI s'applique uniquement à la session où vous le configurez. Chaque nouvelle connexion doit configurer les paramètres de nouveau.
Mode DirectQuery
Le mode de compatibilité BI exige que les requêtes s'exécutent sur le moteur Databricks SQL. Si votre outil de BI offre des modes d'importation et de requête directe, utilisez la requête directe (ou connexion en direct) afin que les requêtes passent par Databricks où le mécanisme de réécriture peut s'appliquer.
Fonctionnement du mode de compatibilité BI
Les vues métriques apparaissent comme des tables régulières pour les outils BI. Lorsque le mode de compatibilité BI est activé, Databricks réécrit les queries générées par l'outil BI pour interroger correctement la vue métrique.
Le mode de compatibilité BI gère automatiquement deux types de queries :
- **Requêtes d'agrégation** : Lorsqu'un outil de BI génère une query avec des fonctions d'agrégation standard (telles
SUMque) sur des mesures, le mode de compatibilité BI réécrit ces agrégations afin d'adhérer aux définitions de mesure dans votre vue métrique. Utilisez toujoursSUMcomme type d'agrégation pour les colonnes de mesure. Le moteur SQL applique toujours la logique de mesure sous-jacente correcte. - **Aperçu des données et découverte du schéma** : Lorsque l'outil de BI demande des données non agrégées (par exemple, des aperçus de colonnes ou des échantillons de données), les colonnes de mesure renvoient des valeurs nulles au lieu d'une erreur. Les colonnes de dimension renvoient leurs valeurs normalement.
Scénarios pris en charge
Les fonctionnalités suivantes des outils de BI fonctionnent avec la plupart des outils de BI lorsque vous activez le mode de compatibilité BI.
Scénario | Description |
|---|---|
Visualisation de mesure de base | Utilisez une mesure dans un champ de valeur de graphique ou de tableau pour afficher les résultats agrégés. |
Filtres | Appliquez des filtres aux colonnes de dimension ou de mesure dans vos visuels. |
Segments de dimension | Utilisez les colonnes de dimension comme contrôles de segment ou de filtre. |
Filtrage croisé | Cliquez sur une valeur dans un visuel pour filtrer les visuels associés sur la même page. |
Exploration en profondeur | Accédez à une page détaillée filtrée par une valeur spécifique. |
Filtrage TopN | Afficher les N premières ou dernières valeurs classées par une colonne. |
Aperçu des données | Utilisez l'aperçu des données et la découverte de schémas. Les mesures s'affichent comme nulles dans les aperçus. |
Calculs visuels | Calculs côté client appliqués aux résultats déjà agrégés (par exemple, totaux cumulés et classement). |
Dimensions et mesures
Les vues métriques contiennent deux types de colonnes : des mesures et des dimensions. Comprendre la différence est important lors de l'élaboration de rapports.
- Mesures : la logique d'agrégation d'une mesure est définie dans la vue métrique (par exemple,
SUM(price * quantity)ouCOUNT(DISTINCT customer_id)). Dans votre outil de BI, laissez toujours l'agrégation définie surSUMpour les colonnes de mesure. Le moteur SQL applique automatiquement la logique de mesure correcte. Si vous avez besoin d'une agrégation différente, modifiez la définition de la mesure dans la vue métrique elle-même. Ne modifiez pas l'agrégation côté outil BI. - Dimensions : les dimensions se comportent comme des colonnes de table ordinaires. Vous pouvez appliquer toute opération BI standard aux dimensions, notamment les agrégations, le regroupement, le filtrage, le tri et le partitionnement. Si un champ numérique agit comme une dimension (et non comme une mesure), tous les types d'agrégation standard fonctionnent normalement sur ce champ.
Bonnes pratiques
- Incluez toujours une vue métrique unique dans votre jeu de données. La vue sous forme métrique est votre définition sémantique.
- Créez des dossiers pour organiser les colonnes de dimension (par exemple, un dossier « Date » pour chaque colonne de dimension de la dimension Date).
- Renommez les dimensions pour qu'elles aient des noms conviviaux.
- Modifiez les colonnes de dimension numérique en un type de récapitulatif non agrégé.
- Créez des mesures d'encapsulation en utilisant
SUM()pour chaque colonne de mesure et masquez les colonnes de mesure d'origine (par exemple,Total Sales = SUM('Store Sales'[total_sales])). - Organisez les mesures dans un dossier dédié.
- Utilisez uniquement des mesures d'encapsulation dans vos visuels.
Limitations
Le mode de compatibilité BI a un contrôle limité sur la façon dont les outils BI génèrent et traitent les queries. Les limitations suivantes s'appliquent.
Utilisez uniquement SUM pour les agrégations de mesures
Laissez toujours le type d'agrégation défini sur SUM pour les colonnes de mesure. Toutes les fonctions d'agrégation (SUM, COUNT, MIN, MAX) sont réécrites pour la définition de la mesure sous-jacente, de sorte qu'elles retournent toutes le même résultat. La sélection d'un type d'agrégation différent peut entraîner un comportement inattendu :
AVGindique1.0parce que certains outils de BI computeAVGcommeSUM / COUNTen interne, et les deux renvoient la même valeur de mesure.- Count (Distinct), Standard Deviation, Variance et Median génèrent des modèles de query qui sont incompatibles avec le mécanisme de réécriture et produisent des erreurs ou des résultats incorrects.
Si vous avez besoin d'une agrégation différente, modifiez la définition de la mesure dans la vue de métrique. Tous les types d'agrégation sont entièrement pris en charge dans les définitions de vue de métriques.
Totaux généraux pour les mesures non additives
Certains outils de BI calculent les totaux généraux en réagrégeant les valeurs par groupe côté client plutôt qu'en émettant une query distincte. Cela produit des résultats corrects pour les mesures additives (par exemple, SUM(revenue)) car la ré-agrégation locale donne la bonne réponse.
Cependant, pour les mesures non additives (par exemple, SUM(revenue) / COUNT(DISTINCT customer), ou tout ratio, pourcentage ou expression impliquant DISTINCT), les totaux généraux pourraient afficher des valeurs incorrectes, car l'addition de ratios pré-groupés n'est pas mathématiquement équivalente au calcul du ratio sur l'ensemble complet des données.
Segments quantitatifs sur les colonnes de mesure.
Un sélecteur quantitatif (de plage) sur une colonne de mesure peut ne pas fonctionner comme prévu. Certains outils de BI peuvent query le MIN et le MAX de la mesure pour déterminer la plage du curseur, mais les deux sont réécrits à la même valeur de mesure sous-jacente, réduisant la plage à un point unique. Les filtres sur les mesures fonctionnent toujours. Seuls les sélecteurs de plage sont affectés.
Les mesures ne peuvent pas être utilisées comme valeurs catégorielles ou dimensionnelles
Si vous utilisez une colonne de mesure comme valeur catégorique (par exemple, comme axe, légende ou segment), la query échoue et renvoie l'erreur suivante :
[METRIC_VIEW_MEASURE_IN_GROUP_BY] '<measure>' measure columns cannot be used in GROUP BY clause or as categorical values. We recommend wrapping them with an aggregate function such as SUM() for the expected behavior. SQLSTATE: 42K0E
Plusieurs fonctionnalités d'outils de BI dépendent du traitement d'une colonne de mesure comme une dimension discrète, elles produisent donc la même erreur. Par exemple, dans Tableau :
- Un histogramme basé sur une colonne de mesure (par exemple, depuis Show Me ) échoue parce qu'il regroupe la mesure en catégories.
- Les compartiments créés à partir d'une colonne de mesure semblent réussir, mais échouent avec l'erreur précédente lorsque vous les ajoutez à une visualisation.
Pour utiliser une mesure dans ces fonctionnalités, définissez une dimension ou une mesure équivalente dans la définition de la vue métrique.
Champs calculés avec plusieurs mesures
Les champs calculés qui référencent une seule mesure fonctionnent correctement. Certains outils de BI récupèrent d'abord le résultat agrégé et effectuent ensuite le calcul côté client (par exemple, classer les revenus en catégories faibles, moyennes et élevées).
Cependant, les expressions qui combinent plusieurs colonnes de mesure dans un même agrégat (par exemple, SUM(m1 + m2)) ne sont pas réécrites par le mode de compatibilité BI et produisent des erreurs ou des résultats inattendus.
Fonctionnalités qui nécessitent des jointures
Les vues métriques ne peuvent pas être jointes à d'autres tables ou à une autre vue métrique. Toute requête qui joint une vue métrique échoue avec l’erreur suivante :
[METRIC_VIEW_JOIN_NOT_SUPPORTED] The metric view is not allowed to use joins.
Cela affecte plus que les jointures explicites. Certaines fonctionnalités d'outils BI génèrent automatiquement du SQL qui se joint à une sous-requête ou une table temporaire, de sorte qu'elles échouent avec la même erreur même si vous n'ajoutez pas de jointure. Dans Tableau, les fonctionnalités suivantes peuvent compiler en jointures et pourraient ne pas fonctionner avec le mode de compatibilité BI. Pour utiliser chacun d'eux, modélisez la logique équivalente dans la définition de la vue métrique :
- Jointures et relations définies dans la source de données. Modélisez la jointure dans la définition de la vue métrique elle-même.
- Filtres Top N, filtres conditionnels, ensembles et ensembles conditionnels, que Tableau implémente comme une sous-query qui se joint à la query principale. Modélisez la valeur selon laquelle vous classez ou filtrez en tant que dimension distincte dans la vue métrique.
- Expressions de niveau de détail (LOD) (
FIXED,INCLUDE,EXCLUDE), que Tableau compute souvent à l'aide d'une sous-requête distincte qui se joint à la requête principale. Le succès d'une expression donnée dépend de la query que Tableau génère. Vous pouvez modéliser de nombreuses expressions LOD en tant que mesures dans la vue d'indicateur.
Vues métriques matérialisées
Le mode de compatibilité BI prend en charge l'interrogation des vues de métriques qui utilisent des matérialisations. Lorsque vous interrogez une vue métrique matérialisée, l’optimiseur de query achemine automatiquement la query vers une matérialisation appropriée pour des performances plus rapides, ou revient aux données source si aucune matérialisation appropriée n’est disponible. Ce routage est transparent et ne change pas votre façon de créer des rapports.
Veuillez garder les mises en garde suivantes à l’esprit :
- **Actualisation des données** : les résultats des requêtes peuvent refléter les données du plus récent refresh de la matérialisation plutôt que les dernières données sources. Dans le mode de réécriture de la query default
relaxed, l'optimiseur utilise une matérialisation sans vérifier si elle est à jour. - Refresh behavior : Les matérialisations s'actualisent selon la planification définie dans la vue des métriques. Vous pouvez également Trigger une refresh manuelle en exécutant
REFRESH MATERIALIZED VIEW. Une matérialisation doit finir de s'actualiser avant que l'optimiseur ne l'utilise pour la réécriture des query.
Pour plus d'informations sur le fonctionnement de la matérialisation, y compris les plannings de refresh et la réécriture de query, consultez Matérialisation pour les vues métriques.