Aller au contenu principal

Connecter Tableau et Databricks

Tableau est une plateforme de Business Intelligence et de visualisation de données qui aide les utilisateurs à connecter, analyser et partager leurs données en créant des tableaux de bord et des rapports interactifs, permettant ainsi une prise de décision data-driven. Cet article vous explique comment utiliser Partner Connect pour vous connecter de Databricks à Tableau Desktop et de Tableau Desktop ou Tableau Cloud à Databricks. Cet article contient également des informations sur Tableau Server sur Linux.

remarque

Pour configurer la connexion Databricks à partir de Tableau Server, consultez Configurer la connexion Databricks à partir de Tableau Server.

Lorsque vous utilisez Databricks comme source de données avec Tableau, vous pouvez fournir une analytique interactive puissante, en apportant les contributions de vos data scientists et data engineers à vos analystes métier en les adaptant à des datasets massifs.

Explorer dans Tableau Cloud à partir de Databricks

Lorsque vous utilisez Databricks comme source de données avec Tableau Cloud, vous pouvez créer des sources de données Tableau à partir de tables ou de schémas directement depuis l'interface utilisateur de Databricks.

Exigences

  • Vos données doivent se trouver dans Unity Catalog, et votre compute (cluster) doit être compatible avec Unity Catalog. Le Hive metastore n'est pas pris en charge actuellement.

Explorez les tables Databricks dans Tableau Cloud

  1. Connectez-vous à votre Databricks workspace et cliquez sur Icône de données. Catalog dans la barre latérale pour ouvrir l'Explorateur de catalogues.
  2. Sélectionnez une ressource de compute dans le panneau de catalogue en haut à gauche.
  3. Ouvrez un catalogue et sélectionnez le schéma ou la table que vous souhaitez explorer. Ne sélectionnez pas à partir d'un Hive metastore ou du catalogue d'échantillons.
  4. En haut à droite, cliquez sur Utiliser avec les outils BI pour un schéma ou sur Ouvrir dans un tableau de bord pour une table.
  5. Sélectionnez Explorer dans Tableau Cloud dans le menu déroulant.
  6. Vérifiez que le Compute et le schéma ou la table sélectionnés sont corrects, puis cliquez sur Explorer dans Tableau Cloud .
  7. Un nouveau tab s'ouvrira et vous invitera à vous connecter à votre compte Tableau Cloud.
  8. Après vous être connecté à Tableau, vous serez invité à vous reconnecter à Databricks.
  9. Après vous être connecté à Databricks, vous pouvez start à créer un tableau de bord Tableau dans l'éditeur de classeurs.

Fonctionnalités et notes

  • Vous pouvez explorer soit une table, soit un schéma. Lorsque vous explorez un schéma, vous devez sélectionner une table dans le panneau Sources de données de Tableau avant de pouvoir start à créer un tableau de bord.
  • Databricks applique OAuth comme mode d'authentification lors de la publication vers Tableau Cloud.
  • La source de données publiée est en mode brouillon et n'est enregistrée nulle part. Vous devez l'enregistrer dans Tableau Cloud pour le rendre accessible aux autres.

Prérequis généraux pour connecter Tableau et Databricks

Informations de connexion

Les détails de connexion pour une ressource compute ou un SQL Warehouse, en particulier les valeurs **Hostname du serveur** et **Chemin HTTP**.

Connecter les données gérées par Databricks Unity Catalog à Tableau Desktop

  • Tableau Desktop 2021.4 ou version ultérieure. download et installez Tableau Desktop sur votre ordinateur.
  • Databricks ODBC Driver version 2.6.19 ou supérieure. Installez le Driver à l'aide du fichier d'installation download sur votre bureau. Suivez les instructions fournies par Tableau pour configurer la connexion à Databricks. Reportez-vous à Tableau et ODBC pour plus de détails sur la façon dont Tableau Desktop fonctionne avec les Drivers ODBC.

Connecter les données gérées par le Hive metastore Databricks hérité à Tableau Desktop

  • Tableau Desktop 2019.3 ou version ultérieure.
  • Driver ODBC Databricks 2.6.15 ou version ultérieure.

Options d'authentification

Utilisez l'une des options d'authentification suivantes :

remarque

Pour Tableau Desktop, si l'application OAuth (U2M) est utilisée pour l'authentification, les jetons de refresh à usage unique sont activés par default pour une sécurité renforcée. Pour en savoir plus ou configurer cette fonctionnalité pour Tableau Desktop, consultez refresh tokens à usage unique.

Connectez Databricks à Tableau Desktop à l'aide de Partner Connect

Vous pouvez utiliser Partner Connect pour connecter une ressource de compute ou un SQL Warehouse avec Tableau Desktop en quelques clics.

  1. Assurez-vous que votre compte Databricks, votre Workspace et l'utilisateur connecté satisfont tous aux exigences de Partner Connect.
  2. Dans la barre latérale, cliquez Icône de marketplace sur Marketplace.
  3. Dans Intégrations Partner Connect , cliquez sur Afficher tout .
  4. Cliquez sur la vignette Tableau .
  5. Dans la boîte de dialogue **Connexion au partenaire**, pour **Compute**, choisissez le nom de la ressource de compute Databricks à laquelle vous souhaitez vous connecter.
  6. Choisissez download connection file .
  7. Ouvrez le fichier de connexion download, ce qui start Tableau Desktop.
  8. Dans Tableau Desktop, sélectionnez votre méthode d'authentification et saisissez les informations demandées (le cas échéant).

Connecter Tableau Desktop à Databricks

Suivez ces instructions pour vous connecter depuis Tableau Desktop à une ressource de calcul ou à un SQL Warehouse.

remarque

Pour vous connecter plus rapidement avec Tableau Desktop, utilisez Partner Connect.

  1. Start Tableau Desktop.
  2. Cliquez sur Fichier > Nouveau .
  3. Dans l'onglet **Data tab**, cliquez sur **Se connecter aux données**.
  4. Dans la liste des connecteurs, cliquez sur Databricks .
  5. Saisissez le **Hostname du serveur** et le **chemin HTTP**.
  6. Sélectionnez votre méthode d'authentification et saisissez les informations demandées (le cas échéant).

Si Unity Catalog est activé pour votre Workspace, définissez également le catalogue default. Dans l'onglet Advanced tab, pour les Propriétés de connexion , ajoutez Catalog=<catalog-name>. Pour modifier le catalogue « default », dans la tab SQL initial , saisissez USE CATALOG <catalog-name>.

Connectez Tableau Cloud à Databricks

Suivez ces instructions pour vous connecter à une ressource de compute ou à un SQL Warehouse à partir de Tableau Cloud.

  1. start un nouveau classeur
  2. Dans la barre de menus, cliquez sur Données > Nouvelle source de données .
  3. Sur la page Se connecter aux données, cliquez sur Connecteurs > Databricks .
  4. Sur la page Databricks, saisissez les valeurs Hostname du serveur et Chemin HTTP .
  5. Sélectionnez votre méthode d'authentification et saisissez les informations demandées (le cas échéant).
  6. Cliquez sur Se connecter .

Tableau Server sur Linux

Modifiez /etc/odbcinst.ini pour inclure les éléments suivants :

[Simba Spark ODBC Driver 64-bit]
Description=Simba Spark ODBC Driver (64-bit)
Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
remarque

Tableau Server sur Linux recommande une architecture de traitement 64 bits.

Publier et refresh un classeur sur Tableau Cloud depuis Tableau Desktop

Cet article montre comment publier un classeur de Tableau Desktop vers Tableau Cloud et le maintenir à jour lorsque la source de données change. Vous avez besoin d'un classeur dans Tableau Desktop et d'un compte Tableau Cloud.

  1. Extrayez les données du classeur de Tableau Desktop : dans Tableau Desktop, avec le classeur que vous souhaitez publier affiché, cliquez sur Données > <data-source-name> > Extraire les données .
  2. Dans la boîte de dialogue Extraire des données , cliquez sur Extraire .
  3. Accédez à un emplacement sur votre ordinateur local où vous souhaitez enregistrer les données extraites, puis cliquez sur Enregistrer .
  4. Publiez la source de données du classeur vers Tableau Cloud : dans Tableau Desktop, cliquez sur Serveur > Publier la source de données > <data-source-name>.
  5. Si la boîte de dialogue Tableau Server Sign In s'affiche, cliquez sur le Link Tableau Cloud et suivez les instructions à l'écran pour vous connecter à Tableau Cloud.
  6. Dans la boîte de dialogue Publier la source de données sur Tableau Cloud , à côté de Refresh Not Enabled , cliquez sur le Link Modifier .
  7. Dans la boîte déroulante qui s'affiche, pour **Authentification**, changez **refresh non activée** en **Autoriser l'accès à refresh**.
  8. Cliquez n'importe où en dehors de ce menu volant pour le masquer.
  9. Sélectionnez **Mettre à jour le classeur pour utiliser la source de données publiée**.
  10. Cliquez sur Publier . La source de données s’affiche dans Tableau Cloud.
  11. Dans Tableau Cloud, dans la boîte de dialogue Publication terminée , cliquez sur Planifier , puis suivez les instructions à l'écran.
  12. Publiez le classeur vers Tableau Cloud : dans Tableau Desktop, avec le classeur que vous souhaitez publier affiché, cliquez sur Serveur > Publier le classeur .
  13. Dans la boîte de dialogue Publier le classeur sur Tableau Cloud , cliquez sur Publier . Le classeur s'affiche dans Tableau Cloud.

Tableau Cloud vérifie les modifications de la source de données selon le calendrier que vous avez défini, et met à jour le classeur publié si des modifications sont détectées.

Pour plus d'information, consultez les informations suivantes sur le site web de Tableau :

Meilleures pratiques et dépannage

Les deux actions fondamentales pour optimiser les queries Tableau sont :

  • Réduisez le nombre d'enregistrements interrogés et visualisés dans un seul graphique ou tableau de bord.
  • Réduisez le nombre de queries envoyées par Tableau dans un seul graphique ou tableau de bord.

La décision de savoir lequel essayer en premier dépend de votre tableau de bord. Si vous avez plusieurs graphiques différents pour des utilisateurs individuels, tous dans le même tableau de bord, il est probable que Tableau envoie trop de queries à Databricks. Si vous n'avez que quelques graphiques, mais qu'ils prennent beaucoup de temps à charger, Databricks renvoie probablement trop d'enregistrements pour un chargement efficace.

L'enregistrement des performances Tableau, disponible sur Tableau Desktop et Tableau Server, peut vous aider à identifier les goulets d'étranglement de performance en identifiant les processus qui causent de la latence lorsque vous exécutez un workflow ou un tableau de bord particulier.

Activez l'enregistrement des performances pour déboguer tout problème Tableau.

Par exemple, si l'exécution de la query pose problème, vous savez que cela est lié au processus du moteur de données ou à la source de données que vous interrogez. Si le layout visuel est lent, vous savez que c'est le VizQL.

Si l'enregistrement des performances indique que la latence se situe dans la requête en cours d'exécution, il est probable que Databricks prenne trop de temps pour renvoyer les résultats ou que la superposition ODBC/Connecteur traite les données en SQL pour VizQL. Dans ce cas, vous devez analyser ce que vous renvoyez et tenter de modifier le modèle analytique pour avoir un tableau de bord par groupe, segment ou article au lieu d'essayer de tout condenser dans un seul tableau de bord et de vous fier aux Filtres rapides.

Si les mauvaises performances sont causées par le tri ou le Layout, le problème peut être le nombre de marques que le tableau de bord essaie de renvoyer. Databricks peut renvoyer rapidement un million d'enregistrements, mais Tableau peut ne pas être en mesure de compute le Layout et de trier les résultats. Si cela pose un problème, agrégez la query et explorez les niveaux inférieurs. Vous pouvez également essayer une machine plus grande puisque Tableau n'est contraint que par les Ressources physiques de la machine sur laquelle il est exécuté.

Pour un tutoriel approfondi sur l'enregistreur de performances, consultez Créer un enregistrement des performances.

Performances sur Tableau Server versus Tableau Desktop

En général, un workflow qui s'exécute sur Tableau Desktop n'est pas plus rapide sur Tableau Server. Un tableau de bord qui ne s'exécute pas sur Tableau Desktop ne s'exécutera pas sur Tableau Server.

L'utilisation de Desktop est une bien meilleure technique de dépannage, car Tableau Server a plus de processus à prendre en compte lorsque vous dépannez. Si les choses fonctionnent dans Tableau Desktop mais pas dans Tableau Server, vous pouvez en toute sécurité réduire le problème aux processus de Tableau Server qui ne sont pas dans Tableau Desktop.

Configuration

Par default, les paramètres de l'URL de connexion remplacent ceux du DSN ODBC Simba. Il existe deux façons de personnaliser les configurations ODBC à partir de Tableau :

  • .tds fichier pour une seule source de données :

    1. Suivez les instructions dans Enregistrer les sources de données pour exporter le fichier .tds pour la source de données.
    2. Recherchez la ligne de propriété odbc-connect-string-extras='' dans le fichier .tds et définissez les parameters. Par exemple, pour activer AutoReconnect et UseNativeQuery, vous pouvez modifier la ligne en odbc-connect-string-extras='AutoReconnect=1,UseNativeQuery=1'.
    3. Rechargez le fichier .tds en reconnectant la connexion.

    La ressource compute est optimisée pour utiliser moins de mémoire de tas pour la collecte de grands résultats, de sorte qu'elle peut servir davantage de lignes par bloc de récupération que le default de Simba ODBC. Ajoutez RowsFetchedPerBlock=100000' à la valeur de la propriété odbc-connect-string-extras.

  • .tdc fichier pour toutes les sources de données :

    1. Si vous n'avez jamais créé de fichier .tdc, ajoutez le fichier d'exemple suivant au dossier Document/My Tableau Repository/Datasources:
  1. Ajoutez le fichier aux installations de Tableau Desktop de tous les développeurs, afin qu'il fonctionne lorsque les tableaux de bord sont partagés.

Optimiser les graphiques (feuilles de calcul)

Il existe un certain nombre d'optimisations tactiques de graphiques qui peuvent vous aider à améliorer les performances de vos feuilles de calcul Tableau.

Pour les filtres qui ne changent pas souvent et qui ne sont pas destinés à être interagis, utilisez des filtres de contexte, ce qui accélère le temps d'exécution. Une autre bonne règle générale est d'utiliser des déclarations if/else au lieu de déclarations case/when dans vos query.

Tableau peut transmettre des filtres aux sources de données, ce qui peut améliorer les vitesses de query. Pour plus d’information sur les filtres d’envoi de source de données, consultez Filtrage sur plusieurs sources de données à l’aide d’un parameter et Filtrer les données sur plusieurs sources de données.

Essayez d'éviter les calculs de table, car ils analysent l'intégralité du dataset. Pour plus d'informations sur les calculs de table, consultez Transformer les valeurs avec les calculs de table.

Optimiser les tableaux de bord

Voici quelques conseils et exercices de dépannage que vous pouvez appliquer pour améliorer les performances de votre tableau de bord Tableau.

Avec les tableaux de bord Tableau connectés à Databricks, les filtres rapides sur les tableaux de bord individuels qui desservent un certain nombre d'utilisateurs, de fonctions ou de segments différents peuvent être une source fréquente de problèmes. Vous pouvez associer des filtres rapides à tous les graphiques du dashboard. Un filtre rapide sur un dashboard avec cinq graphiques entraîne l’envoi d’un minimum de 10 queries à Databricks. Ce nombre peut augmenter si d’autres filtres sont ajoutés, ce qui peut entraîner des problèmes de performance, car Spark n’est pas conçu pour gérer de nombreuses queries concurrentes démarrant exactement au même moment. Cela devient plus problématique lorsque le cluster Databricks ou le SQL Warehouse que vous utilisez n'est pas assez grand pour gérer le volume élevé de requêtes.

Dans un premier temps, nous vous recommandons d'utiliser l'enregistrement des performances de Tableau pour dépanner ce qui pourrait causer le problème.

Si la mauvaise performance est causée par le tri ou le visual Layout , le problème pourrait être le nombre de marques que le tableau de bord essaie de renvoyer. Databricks peut renvoyer un million d'enregistrements rapidement, mais Tableau pourrait ne pas être en mesure de calculer le Layout et de trier les résultats. Si cela pose un problème, agrégez la requête et explorez les niveaux inférieurs. Vous pouvez également essayer une machine plus grande, car Tableau n'est contraint que par les Ressources physiques de la machine sur laquelle il s'exécute.

Pour plus d'information sur l'exploration détaillée dans Tableau, consultez Examiner en détail les informations.

Si vous voyez de nombreux repères granulaires, il s'agit souvent d'un mauvais modèle analytique car cela ne fournit pas d'insight. L'exploration de niveaux d'agrégation supérieurs a plus de sens et réduit le nombre d'enregistrements qui doivent être traités et visualisés.

Utiliser les actions pour optimiser les tableaux de bord

Utilisez les _actions Tableau pour cliquer sur une marque (par exemple, un état sur une carte) et être redirigé vers un autre tableau de bord qui filtre en fonction de l'état sur lequel vous cliquez. L'utilisation des _actions réduit le besoin de plusieurs filtres sur un seul tableau de bord et le nombre d'enregistrements à générer. (Vous définissez une action pour **ne pas** générer d'enregistrements tant qu'elle n'obtient pas un prédicat sur lequel filtrer.)

Pour plus d'informations, consultez Actions et 6 astuces pour améliorer les performances de vos tableaux de bord.

Mise en cache

La mise en cache des données est un bon moyen d'améliorer les performances des feuilles de calcul ou des tableaux de bord.

Mise en cache dans Tableau

Tableau dispose de quatre couches de mise en cache avant de revenir aux données, que ces données se trouvent dans une connexion en direct ou dans un extrait :

  • Tuiles : si quelqu’un charge le même tableau de bord et que rien ne change, Tableau tente de réutiliser les mêmes tuiles pour les graphiques. C'est similaire aux tuiles Google Maps.
  • Modèle : Si le cache de vignettes ne peut pas être utilisé, le cache du modèle de calculs mathématiques est utilisé pour générer des visualisations. Tableau Server tente d’utiliser les mêmes modèles.
  • Résumé : Les résultats agrégés des query sont également stockés. C'est le troisième « défense » niveau. Si une query renvoie Sum(Ventes), Count(commandes), Sum(Coût), dans une query précédente et qu'une future query ne veut que Sum(Ventes), alors Tableau récupère ce résultat et l'utilise.
  • Cache natif : Si la query est la même qu'une autre, Tableau utilise les mêmes résultats. C'est le dernier niveau de cache. Si cela échoue, Tableau va aux données.

Fréquence de mise en cache dans Tableau

Tableau dispose de paramètres administratifs pour une mise en cache plus ou moins fréquente. Si le serveur est configuré sur Refresh Less Often , Tableau conserve les données dans le cache pendant 12 heures maximum. Si le serveur est configuré sur Refresh More Often , Tableau récupère les données à chaque refresh de page.

Les clients qui utilisent le même tableau de bord de manière répétée, par exemple, « Monday morning pipeline reports » , devraient être sur un serveur configuré pour « Refresh Less Often » afin que tous les tableaux de bord utilisent le même cache.

Préremplir le cache dans Tableau

Dans Tableau, vous pouvez réchauffer le cache en configurant un abonnement pour l'envoi du tableau de bord avant que vous ne souhaitiez qu'il soit consulté. (Le tableau de bord doit être rendu pour générer l'image de l'e-mail d'abonnement.) Consultez Réchauffement du cache Tableau Server à l'aide d'abonnements.

Tableau Desktop : Erreur The drivers... are not properly installed

Problème : Lorsque vous essayez de connecter Tableau Desktop à Databricks, Tableau affiche un message d'erreur dans la boîte de dialogue de connexion avec un Link vers la page de download du Driver, où vous trouverez les Links des Drivers et les instructions d'installation.

Cause : Votre installation de Tableau Desktop n'exécute pas un driver pris en charge.

Résolution : download le Driver ODBC Databricks version 2.6.15 ou supérieure.

Voir aussi : Erreur « Les Drivers… ne sont pas correctement installés » sur le site web de Tableau.

Contraintes de clé primaire/étrangère

Pour propager les contraintes de clé primaire (PK) et de clé étrangère (FK) de Databricks vers Tableau, vous devez comprendre les capacités et les limites des deux plateformes concernant les contraintes.

Comprendre les contraintes Databricks

Databricks prend en charge les contraintes de clés primaires et étrangères à partir de Databricks Runtime 15.2. Ces contraintes sont informatives et ne sont pas appliquées par default, ce qui signifie qu'elles n'empêchent pas les violations d'intégrité des données, mais peuvent être utilisées pour optimiser les queries et fournir des métadonnées sur les relations entre les données. Consultez Déclarer les clés primaires, les clés étrangères et les contraintes d'unicité.

Comprendre que Tableau utilise des contraintes pour créer des relations de table

Tableau n'applique pas directement les contraintes de clé primaire et étrangère. Au lieu de cela, Tableau utilise des relations pour modéliser les connexions de données. Pour travailler avec les contraintes dans Tableau, vous devez comprendre que le modèle de données de Tableau offre deux niveaux de modélisation : une couche logique et une couche physique. Consultez le Modèle de données Tableau. Les implications de ce modèle de données à deux niveaux sur les contraintes Databricks étant reconnues comme des relations dans Tableau sont discutées ci-dessous.

Connexion de Databricks à Tableau

Lorsque vous connectez Databricks à Tableau, Tableau tente de créer des relations au niveau physique entre les tables en fonction des contraintes de clé existantes et des champs correspondants. Tableau tente automatiquement de détecter et de créer des relations au niveau physique en fonction des contraintes de clé primaire et étrangère définies dans Databricks. Si aucune contrainte de clé n'est définie, Tableau utilise les noms de colonnes correspondants pour générer automatiquement des jointures. Au niveau logique, seules les correspondances de noms de colonne unique sont utilisées pour déterminer une relation. Au niveau physique, cette correspondance de noms de colonnes détecte les relations de clé simples (colonne unique) et composites (plusieurs colonnes).

Si Tableau ne peut pas déterminer les champs correspondants, vous devez spécifier manuellement la relation de jointure entre les deux tables au niveau de la couche physique en fournissant les colonnes, la condition et le type de contrainte. Pour passer de la couche logique de l'interface utilisateur à la couche physique, double-cliquez sur la table au niveau de la couche logique.

Ressources supplémentaires