<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[analytique - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[analytique - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/fr/search-labs/blog/category/analytics</link>
    </image>
    <link>https://www.elastic.co/fr/search-labs/blog/category/analytics</link>
    <atom:link href="https://www.elastic.co/fr/search-labs/rss/category/analytics.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[fr]]></language>
    <lastBuildDate>Mon, 28 Sep 2026 03:05:01 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Améliorer l'interactivité des tableaux de bord Kibana grâce aux contrôles variables]]></title>
    <description><![CDATA[Découvrez comment utiliser les contrôles variables dans Kibana 8.18+ pour filtrer les visualisations individuelles, ajuster les intervalles de temps et regrouper les données par champs dans les tableaux de bord Kibana.]]></description>
    <content:encoded><![CDATA[<p>Nous sommes ravis d'annoncer que <strong>les contrôles variables sont désormais disponibles dans les tableaux de bord Kibana</strong> à partir de la version 8.18 et pour toute la série 9.x ! Cette fonctionnalité est l'un des ajouts les plus demandés par les utilisateurs des tableaux de bord, et elle est enfin là 🎉 Au cours des derniers mois, nous avons continué à développer et affiner <a href="https://www.elastic.co/docs/explore-analyze/dashboards/add-controls#add-variable-control">les contrôles variables</a>. C'est donc le moment parfait pour leur consacrer un article de blog.</p><h2>Qu'est-ce que les contrôles variables ?</h2><p>Si vous avez déjà travaillé avec des tableaux de bord Kibana, vous connaissez probablement nos contrôles de tableau de bord classiques : ces menus déroulants pratiques affichent des valeurs extraites de vos données pour vous permettre de les filtrer en quelques clics.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltc7405fbff7584b1b/6a17ee5cfbc5f8aea1491b5d/b82c1b25a0b38661e5ce4552f763be487d5074aa-1600x701.png" alt="" /><p>Les contrôles variables semblent similaires à première vue, mais ils comportent une particularité astucieuse : au lieu de filtrer automatiquement chaque panneau de votre tableau de bord, ils peuvent être directement intégrés dans <a href="https://www.elastic.co/docs/explore-analyze/visualize/esorql">des requêtes ES|QL au sein de visualisations individuelles</a>.</p><p>Cela signifie que <em>vous</em> décidez où chaque contrôle s'applique. Mieux encore, vous pouvez les utiliser pour toutes sortes de choses, comme ajuster les intervalles de temps, changer les champs de répartition ou modifier les paramètres de visualisation à la volée. En résumé, ils offrent une expérience véritablement interactive pour vos tableaux de bord et permettent ainsi d'obtenir des informations plus rapidement et plus facilement.</p><h2>Cas d'utilisation des contrôles variables</h2><p>Les contrôles variables semblent utiles, mais qu'offrent-ils vraiment ? Voici quelques exemples de la manière dont ils améliorent vos tableaux de bord :</p><h3>Filtrez les visualisations sélectionnées</h3><p>Vous souhaitez filtrer <em>certaines</em> visualisations seulement ? C'est possible avec les contrôles variables. Choisissez les panneaux sur lesquels vous souhaitez agir et connectez-les dans les requêtes ES|QL à l'origine de vos visualisations.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltfd014bba50a3a61e/6a17ee5e14d90c006d79b69a/efa367363830b03bc67028aceafe78c4b44e578f-1440x562.gif" alt="" /><h3>Sélectionnez différents intervalles de temps</h3><p>Donnez à vos utilisateurs la possibilité de choisir entre « 5 minutes », « 1 heure », « 1 jour », ou tout autre intervalle temporel souhaité. Créez un contrôle variable avec des intervalles prédéfinis et connectez-le à votre requête de série temporelle.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt237797ddea95ce08/6a17ee602f4a5cfd65fa8996/62aa9f4e728036f8c70213b76b1cf131f36f5b4d-1440x606.gif" alt="" /><h3>Modifier les fonctions</h3><p>Au lieu de créer plusieurs graphiques pour chaque opération, les utilisateurs du tableau de bord peuvent choisir s'ils veulent voir le maximum, la moyenne, différents centiles ou tout autre agrégateur.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt4c856460132fb604/6a17ee627b54f920838b3991/f6a2b4c73dc35efe462c2924a153d7b3fa3a7922-1436x606.gif" alt="" /><h3>Grouper par différents champs</h3><p>Il est parfois nécessaire de décomposer les données selon différents facteurs lors d'une enquête. Grâce aux contrôles variables, vous pouvez définir plusieurs champs « grouper par » et permettre aux utilisateurs du tableau de bord de choisir celui qui les aidera à obtenir les informations souhaitées.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltbf1a24038dde55b8/6a17ee646864a413b6b6884c/fe8745a6fddccadba0666686b8ebc67fdaf64158-1438x606.gif" alt="" /><h2>Comment faire ?</h2><p>Le moyen le plus simple (et probablement le plus agréable) de créer un contrôle variable est directement depuis l'<strong>éditeur de requêtes ES|QL</strong> dans votre visualisation. Commencez simplement à taper votre requête, utilisez le menu de saisie automatique et Kibana vous fournira la structure de contrôle nécessaire.</p><p>Mais si vous préférez partir de la variable elle-même, vous pouvez également aller dans : <strong>Add panel → Controls → Variable control (Ajouter un panneau → Contrôles → Contrôle de variable)</strong> et ajouter la variable à vos visualisations après avoir créé le contrôle.</p><h3>Exemple 1 : Contrôle de filtrage avec sélection à valeurs multiples</h3><p>1. Choisissez une visualisation alimentée par une requête ES|QL et cliquez sur « Create control » (Créer un contrôle) dans la clause WHERE</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1356c9ac1ffce732/6a17ee661d1b83104a93e4f3/46cb6f2a6775aee152d42eb5ee85170f1bdf26cb-1600x668.png" alt="" /><p>2. Vous serez automatiquement redirigé vers le menu de création de variable, où le type « Values from a query » (Valeurs d’une requête) sera sélectionné pour vous, et le nom de la variable déjà pré-rempli. N’oubliez pas que le nom d’un contrôle doit toujours commencer par « ?... » pour fonctionner dans la requête de visualisation.</p><p>Vous aurez traditionnellement besoin d'une requête comme celle-ci pour obtenir les valeurs d'un champ et les mettre à jour selon l'intervalle de temps sélectionné dans le tableau de bord :</p>FROM &lt;datasource_name&gt;
| WHERE @timestamp &lt;=?_tend and @timestamp &gt;?_tstart
| STATS BY &lt;field_name&gt;<img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltb34ecc3303fda700/6a17ee68a2929914e3d02d23/a2a72d4e3159923c6207908da9b4172e27cd5f81-1600x716.png" alt="" /><p>3. Lorsque vous enregistrez le contrôle, vous le verrez apparaître en haut du tableau de bord et votre requête de visualisation sera mise à jour avec le nom du contrôle variable.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blte03c74e0c60bdb42/6a17ee6a0b0bed13cddd3636/5fc434c8951889e9769652b675191711d126a685-1600x653.png" alt="" /><p>4. Si vous souhaitez ajouter <a href="https://www.elastic.co/docs/explore-analyze/dashboards/add-controls#esql-multi-values-controls">une sélection à valeurs multiples</a> au contrôle, vous devez utiliser la fonction <code>MV_CONTAINS</code> dans la requête et sélectionner « Allow multiple selections » (Autoriser les sélections multiples) lors de la création du contrôle à l’étape 2 (disponible à partir de la version 9.3).</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt218a166f7a1dc52c/6a17ee6ca2929979a9d02d27/1f237cea0a37cb25a7917a2a683707a269adae8e-1600x670.png" alt="" /><h3>Exemple 2 : contrôle de l'intervalle de temps</h3><p>Si vous créez une série temporelle, vous pouvez facilement ajouter un contrôle variable pour l'intervalle de votre histogramme de dates :</p><p>1. Lors de la rédaction d'une requête ES|QL pour votre série temporelle, cliquez sur « Create control » (Créer un contrôle). Lorsque vous créez une variable pour des intervalles, il est préférable d'utiliser <code>TBUCKET</code> au lieu de <code>BUCKET</code> pour prendre en charge des intervalles plus lisibles tels que « 1 heure », « 1 jour », etc. Une option automatique sera bientôt disponible pour <code>TBUCKET</code> afin qu'il puisse s'adapter automatiquement aux périodes de temps.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blta6f32acf5ed19697/6a17ee6e6864a4a32fb68850/b0ad53d790ff9bdd42db5e77477318319f423534-1600x664.png" alt="" /><p>2. Définissez les intervalles pour remplir les options dans le menu déroulant.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltf08d6a75afe87314/6a17ee6f25daab58fe08a2fa/f3bd83f530cfa4698c1a3b1ae60d08d0414043b5-1600x757.png" alt="" /><p>3. Sélectionnez différents intervalles dans le menu déroulant et observez comment votre visualisation change.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt5ecd5f376b096063/6a17ee7196142a0f77eb1b9b/0f928d9c70929f64926e065059188d140cd48943-1600x671.png" alt="" /><h3>Exemple 3 : variables pour les fonctions</h3><ol><li><p>Créez une variable en utilisant le type de contrôle « Static values » (Valeurs statiques) et ajoutez des noms de fonctions à vos valeurs déroulantes. Il est important d'utiliser un nom de variable qui commence par « ??… » pour remplacer les fonctions.</p></li></ol><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt6bdc0c817465f3f0/6a17ee73505ac3268cad8bea/531444237b7e152d3c8a6f3ca7e464f954f9e856-1600x663.png" alt="" /><p>2. Incluez le nom de la variable dans votre requête ES|QL.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltd631ad49bbb93c3e/6a17ee75e9ea87708ea9c6aa/9858442abb26d8d266d464852871b139fde63b89-1600x665.png" alt="" /><h3>Exemple 4 : variables pour les champs</h3><ol><li><p>Vous pouvez utiliser le type de contrôle « Static values » (Valeurs statiques) et indiquer les noms des champs que vous souhaitez. Le nom de variable doit commencer par « ??… » pour les champs.</p></li></ol><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt29079f2b85c7239c/6a17ee77b1e113328f79f30b/33534c3df2fae024b25c28b4aed5d742e54202a2-1600x710.png" alt="" /><p>2. Référencez la variable souhaitée dans la requête de visualisation.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt6ca73c08dfa27319/6a17ee780b0bed31e8dd363a/71cdf3e9df72c59d957628a3aa6e4aa9bd60d6d5-1600x676.png" alt="" /><h2>Contrôles variables dans Discover</h2><p>Les contrôles variables ne sont pas seulement une fonctionnalité du tableau de bord. Ils sont également disponibles directement dans l'éditeur ES|QL de Discover. Vous pouvez créer des contrôles pour accélérer l'exploration des données dans Discover, les intégrer au tableau de bord et inversement.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt40c9ce5eed7ded45/6a17ee7b420229747b29f684/fdddeec902d0bc746caed9276d01d7d48793dd85-1600x709.png" alt="" /><h2>Détails techniques</h2><p>Vous avez probablement remarqué que les contrôles de variables sont assortis de quelques règles, telles que les éléments d'une requête auxquels ils peuvent faire référence et les préfixes que vous devez utiliser (« ?... » pour les valeurs et « ??... » pour les champs ou les fonctions). En effet, les variables ne sont pas de simples remplacements de chaînes effectués sur le client. Ce sont des éléments essentiels du langage de requête (connus sous le nom de <a href="https://www.elastic.co/docs/solutions/search/agent-builder/tools/esql-tools#parameter-types">paramètres dans ES|QL</a>).</p><p></p><p>Cette conception apporte de grands avantages. D'une part, Kibana peut comprendre le contexte de chaque variable, ce qui nous permet de générer et de pré-remplir automatiquement sa configuration pour vous. C’est aussi beaucoup plus sécurisé : le langage valide strictement les entrées variables et empêche ainsi les injections malveillantes tout en signalant toute erreur. De plus, il améliore les performances et la stabilité en transférant la validation complexe et la gestion des erreurs vers le serveur plutôt que vers le client. Une note sur les performances : une bonne pratique consiste à créer des variables qui incluent des requêtes rapides, car elles se chargent avant le tableau de bord. Ainsi, des requêtes lentes peuvent affecter les performances globales du tableau de bord.</p><p>Bien sûr, cette architecture présente aussi quelques <a href="https://www.elastic.co/docs/solutions/search/agent-builder/limitations-known-issues#esql-limitations">limites</a>, pour le moment. Les variables ne prennent pas encore en charge l'option « Tout » pour le filtrage, et elles ne peuvent actuellement pas être utilisées avec certains opérateurs tels que <code>LIKE</code>ou <code>FROM</code> (pour changer de source de données). La bonne nouvelle ? Nous travaillons activement à l'ajout de ces fonctionnalités.</p><h2>Ce que l'avenir réserve aux contrôles</h2><p>Nous ne nous arrêtons pas là ! Parmi les améliorations que nous suivons de près, citons :</p><p>✨ La possibilité de placer des contrôles n'importe où sur le tableau de bord</p><p>✨ Chaînage de vos contrôles, ce qui signifie que la sortie d'un contrôle devient l'entrée du suivant</p><p>✨ De meilleures options de sélection comme la sélection « Tout » pour les variables</p><p>✨ Nouveaux types de contrôle (contrôle de type rechercher et variables pour vos sources de données)</p><p>✨ Et d'autres améliorations de l'expérience utilisateur que vous avez demandées, comme le pré-filtrage des contrôles normaux</p><p>Si vous avez des idées ou des commentaires, n'hésitez pas à nous en faire part.</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/kibana-dashboard-interactivity-variable-controls-overview</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/kibana-dashboard-interactivity-variable-controls-overview</guid>
    <category><![CDATA[Kibana]]></category>
    <category><![CDATA[analytique]]></category>
    <dc:creator><![CDATA[Teresa Alvarez Soler]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltddeea5af6d4f9884/6a17ee7ddbb4ff3aa8fb5781/59aa3adffc8c759e42b961ef7d63719ce232893a-1348x830.png" length="0" type="image/png"/>
    <pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title><![CDATA[Spotify Wrapped partie 2 : Analyse et visualisation des données]]></title>
    <description><![CDATA[Nous allons plonger plus profondément que jamais dans vos données Spotify et explorer des connexions dont vous ne soupçonniez même pas l'existence.]]></description>
    <content:encoded><![CDATA[<p>Dans la <a href="https://www.elastic.co/search-labs/blog/spotify-wrapped-create-in-kibana">première partie</a> de cette série, écrite par Iulia Feroli, nous avons expliqué comment obtenir vos données Spotify Wrapped et les visualiser dans Kibana. Dans la deuxième partie, nous approfondirons les données pour voir ce que nous pouvons découvrir d'autre. Pour ce faire, nous allons utiliser une approche un peu différente et utiliser <a href="https://github.com/elastic/elasticsearch-labs/tree/main/supporting-blog-content/spotify-to-elasticsearch">Spotify to Elasticsearch</a> pour indexer les données dans Elasticsearch. Cet outil est un peu plus avancé et nécessite un peu plus d'installation, mais il en vaut la peine. Les données sont plus structurées et nous pouvons poser des questions plus complexes.</p><h2>Différences par rapport à la première analyse Spotify Wrapped</h2><p>Dans le premier blog, nous avons utilisé l'export Spotify directement et n'avons effectué aucune tâche de normalisation ni aucun autre traitement de données. Cette fois-ci, nous utiliserons les mêmes données, mais nous les traiterons pour les rendre plus utilisables. Cela nous permettra de répondre à des questions beaucoup plus complexes, comme par exemple :</p><ul><li><p>Quelle est la durée moyenne d'une chanson dans mon top 100 ?</p></li><li><p>Quelle est la popularité moyenne d'une chanson dans mon top 100 ?</p></li><li><p>Quelle est la durée médiane d'écoute d'une chanson ?</p></li><li><p>Quelle est la piste que je saute le plus souvent ?</p></li><li><p>Quand est-ce que j'aime sauter des pistes ?</p></li><li><p>Suis-je plus attentif à une heure particulière de la journée qu'à d'autres ?</p></li><li><p>Est-ce que j'écoute plus un jour de la semaine que les autres ?</p></li><li><p>S'agit-il d'un mois particulièrement intéressant ?</p></li><li><p>Quel est l'artiste dont la durée d'écoute est la plus longue ?</p></li></ul><p>Spotify Wrapped est une expérience amusante chaque année, vous montrant ce que vous avez écouté cette année. Il n'indique pas les changements d'une année sur l'autre, et il se peut donc que vous passiez à côté d'artistes qui figuraient autrefois dans votre top 10, mais qui ont maintenant disparu.</p><h2>Traitement des données Spotify Wrapped pour analyse</h2><p>Il y a une grande différence dans la façon dont nous traitons les données dans le premier et le second message. Si vous souhaitez continuer à travailler avec les données du premier message, vous devrez tenir compte de certains changements de noms de champs et revenir à ES|QL pour effectuer certaines extractions comme <code>hour of day</code> à la volée.</p><p>Néanmoins, vous devriez tous être en mesure de suivre ce message. Le traitement des données est effectué dans le référentiel <a href="https://github.com/elastic/elasticsearch-labs/tree/main/supporting-blog-content/spotify-to-elasticsearch">Spotify to Elasticsearch</a> et consiste à demander à l'API Spotify la durée de la chanson, la popularité, ainsi qu'à renommer et à enrichir certains champs. Par exemple, le champ <code>artist</code> dans l'export Spotify n'est qu'une chaîne de caractères et ne représente pas les fonctionnalités ou les titres multi-artistes.</p><h2>Visualiser les données de Spotify Wrapped avec des tableaux de bord</h2><p>J'ai créé un tableau de bord dans Kibana pour visualiser les données. Le tableau de bord est disponible <a href="https://github.com/elastic/elasticsearch-labs/blob/main/supporting-blog-content/spotify-to-elasticsearch/kibana/dashboard.ndjson">ici</a> et vous pouvez l'importer dans votre instance Kibana. Le tableau de bord est très complet et répond à de nombreuses questions.</p><p>Examinons quelques-unes de ces questions et la manière d'y répondre ensemble !</p><h3>Quelle est la durée moyenne d'une chanson dans mon top 100 ?</h3><p>Pour répondre à cette question, nous pouvons utiliser Lens ou ES|QL. Explorons ces trois options. Formulons cette question correctement à la manière d'Elasticsearch. Nous voulons trouver les 100 chansons les plus populaires et calculer la durée moyenne de toutes ces chansons combinées. En termes d'Elasticsearch, il s'agit de deux agrégations :</p><ol><li><p>Déterminer les 100 chansons les plus populaires</p></li><li><p>Calculez la durée moyenne de ces 100 chansons.</p></li></ol><p><strong>Lens</strong></p><p>Dans Lens, c'est assez simple : créez un nouveau Lens, passez à une table et glissez-déposez le champ <code>title</code> dans la table. Cliquez ensuite sur le champ <code>title</code> et fixez la taille à 100, ainsi que le mode <code>accuracy</code>. Faites ensuite glisser le champ <code>duration</code> dans la table et utilisez <code>last value</code>, car nous n'avons besoin que de la dernière valeur de la durée de chaque chanson. Une même chanson n'aura qu'une seule durée. Au bas de cette agrégation <code>last value</code> se trouve un menu déroulant permettant d'obtenir une ligne de résumé. Sélectionnez <code>average</code> et vous obtiendrez le résumé.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt5df1d7f36de5e2ae/6a17e5df0b0beddd57dd355c/a56f6e48e6b53af3ca3d38d67ce0916d0621ef16-2910x1058.png" alt="Utilisation de Lens pour les données enveloppées de Spotify" /><p><strong>ES|QL</strong></p><p>ES|QL est un langage assez récent par rapport aux agrégations DSL &amp;, mais il est très puissant et facile à utiliser. Pour répondre à la même question en ES|QL, vous devez écrire la requête suivante :</p><p>Laissez-moi vous guider pas à pas dans cette requête ES|QL :</p><ol><li><p><code>from spotify-history</code> - C'est le modèle d'index que nous utilisons.</p></li><li><p><code>stats duration=max(duration), count=count() by title</code> - Il s'agit de la première agrégation, nous calculons la durée maximale de chaque chanson et le nombre de chansons. Nous utilisons <code>max</code> au lieu de <code>last value</code> comme dans la lentille, parce que ES|QL n'a pas de prénom ni de nom de famille.</p></li><li><p><code>sort count desc</code> - Nous trions les chansons en fonction du nombre d'écoutes, de sorte que la chanson la plus écoutée se trouve en haut de la liste.</p></li><li><p><code>limit 100</code> - Nous limitons le résultat aux 100 premières chansons.</p></li><li><p><code>stats Average duration of the songs=avg(duration)</code> - Nous calculons la durée moyenne des chansons.</p></li></ol><h3>Un mois présente-t-il un intérêt particulier pour moi ?</h3><p>Pour répondre à cette question, nous pouvons utiliser Lens avec l'aide du champ d'exécution et ES|QL. Nous remarquons tout de suite qu'il n'y a pas de champ dans les données qui indique directement <code>month</code>, mais que nous devons le calculer à partir du champ <code>@timestamp</code>. Il y a plusieurs façons de procéder :</p><ol><li><p>Utiliser un champ d'exécution pour alimenter la lentille</p></li><li><p>ES|QL</p></li></ol><p>Je pense personnellement que ES|QL est la solution la plus propre et la plus rapide.</p><p>C'est tout, il n'y a rien d'extraordinaire à faire, nous pouvons utiliser la fonction <code>DATE_EXTRACT</code> pour extraire le mois du champ <code>@timestamp</code> et ensuite l'agréger. En utilisant la visualisation ES|QL, nous pouvons l'intégrer au tableau de bord.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2c221ad4446cfb09/6a17e5e03e9e45076eba144c/7f942cf38fbe0fecec1d741e7df922196f4e9483-1878x722.png" alt="Visualisation de la répartition mensuelle de Spotify Wrapped" /><h3>Quelle est ma durée d'écoute par artiste et par an ?</h3><p>L'idée sous-jacente est de voir si un artiste n'est qu'un phénomène ponctuel ou s'il est récurrent. Si je me souviens bien, Spotify n'affiche que les 5 premiers artistes de l'année. Peut-être que votre artiste numéro 6 reste le même tout le temps, ou qu'il change fortement après la 10e position ?</p><p>L'une des représentations les plus simples est le diagramme à barres en pourcentage. Nous pouvons utiliser Lens à cette fin. Suivez les étapes :</p><p>Faites glisser et déposez le champ <code>listened_to_ms</code>. Ce champ représente la durée d'écoute d'une chanson en millisecondes. Par défaut, Lens crée une agrégation <code>median</code>, ce que nous ne voulons pas, mais plutôt <code>sum</code>. Dans la partie supérieure, sélectionnez <code>percentage</code> au lieu de <code>stacked</code> pour le type de diagramme à barres. Pour la répartition, sélectionnez <code>artist</code> et dites top 10. Dans la liste déroulante <code>Advanced</code>, n'oubliez pas de sélectionner <code>accuracy mode</code>. Désormais, chaque bloc de couleur représente le nombre de fois où vous avez écouté cet artiste. En fonction de votre marqueur temporel, les barres peuvent représenter des valeurs de jours, de semaines, de mois ou d'années. Si vous souhaitez un décompte hebdomadaire, sélectionnez le site <code>@timestamp</code> et réglez le site <code>mininum interval</code> sur <code>year</code>. Dans mon cas, on peut dire que <code>Fred Again..</code> est l'artiste que j'ai le plus écouté, près de 12% de mon temps d'écoute total ayant été consommé par <code>Fred Again..</code>. Nous constatons également que <code>Fred Again..</code> a légèrement diminué en 2024, mais que <code>Jamie XX</code> a largement progressé. Si l'on compare uniquement la taille des barres. Nous pouvons également constater que pendant que <code>Billie Eilish</code> est constamment joué dans 2024, le bar s'élargit. Cela signifie que j'ai écouté <code>Billie Eilish</code> plus en 2024 qu'en 2023.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blteb0c11b909be859f/6a17e5e2e8fbce239a3a18ee/61a5bcc6b7385ed0a11b67c9c6bab32d27f4a49b-2942x1354.png" alt="Visualisation de l'historique de Spotify Wrapped avec Kibana" /><h3>Qu'en est-il des meilleurs titres par artiste et par durée d'écoute par rapport à la durée d'écoute totale ?</h3><p>C'est une question qui a de la gueule. Permettez-moi d'essayer d'expliquer ce que je veux dire par là. Spotify vous informe sur la meilleure chanson d'un artiste, ou sur vos 5 meilleures chansons. C'est très intéressant, mais qu'en est-il de la décomposition d'un artiste ? Est-ce que tout mon temps est consommé par une seule chanson que je joue encore et encore, ou est-ce que ce temps est réparti de manière égale ?</p><p>Créez un nouvel objectif et sélectionnez <code>Treemap</code> comme type. Pour <code>metric</code>, même chose que précédemment : sélectionnez <code>sum</code> et utilisez <code>listened_to_ms</code> comme champ. Pour le site <code>group by</code>, nous avons besoin de deux valeurs. Le premier est <code>artist</code> et le second est <code>title</code>. Le résultat intermédiaire est le suivant :</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt9aa0e4877472123f/6a17e5e44b055d6dcf43218e/2dea389664a0d3d13fff03c6337bff3ce740f9b1-2922x1430.png" alt="Visualisation de l'historique de Spotify Wrapped avec Kibana" /><p>Changeons cela pour le top 100 des artistes et désélectionnons le <code>other</code> dans le menu déroulant avancé, ainsi que l'activation du mode précision. Pour le titre, modifiez-le en top 10 et activez le mode précision. Le résultat final est le suivant :</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt070bf745be1d3f92/6a17e5e66864a43a0fb6875b/7e99a15c69801e58302af4c12b500242a7e8bc9d-2640x1622.png" alt="Visualisation de Spotify Wrapped avec Kibana" /><p>Qu'est-ce que cela nous apprend exactement ? Sans tenir compte de la durée, on peut dire que sur l'ensemble de mon historique d'écoute avec Spotify, j'ai passé 5,67% à écouter <code>Fred Again..</code>. En particulier, j'ai passé 1,21% de ce temps à écouter <code>Delilah (pull me out of this)</code>. Il est intéressant de voir s'il y a une seule chanson qui occupe un artiste, ou s'il y a aussi d'autres chansons. La carte arborescente elle-même est une forme agréable pour représenter de telles distributions de données.</p><h3>Est-ce que j'écoute à une heure et à un jour précis ?</h3><p>Nous pouvons répondre à cette question de manière très simple grâce à une visualisation de la lentille qui exploite le site <code>Heat Map</code>. Créez un nouvel objectif, sélectionnez <code>Heat Map</code>. Pour le champ <code>Horizontal Axis</code> select <code>dayOfWeek</code>, définissez <code>Top 7</code> au lieu de Top 3. Pour le <code>Vertical Axis</code>, sélectionnez le <code>hourOfDay</code> et pour le <code>Cell Value</code>, un simple <code>Count of records</code>. Cette opération permet d'obtenir ce panneau :</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2d08e4f4d0a90550/6a17e5e7e8fbce1af43a18f2/c83ec13a3c7d1b71b8a6b110ed2b74e691d868e6-3538x1720.png" alt="Visualisation des habitudes d'écoute de Spotify Wrapped à l'aide de tableaux de bord" /><p>Il y a deux ou trois choses ennuyeuses autour de cette lentille, qui me dérangent lors de l'interprétation. Essayons d'y mettre un peu d'ordre. Tout d'abord, je ne me soucie pas trop de la légende, utilisez le symbole en haut avec le triangle, le carré, le cercle et désactivez-le.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltce46c47addd91c61/6a17e5e94b055d15d5432192/84f51d6c885b929bf47ac05edd32ca149ad2e651-1040x298.png" alt="Spotify visualisation enveloppée " /><p>La deuxième partie qui est gênante est le tri des jours. C'est lundi, mercredi, jeudi, ou autre chose, selon les valeurs que vous avez. Le site <code>hourOfDay</code> est correctement trié. La façon de trier les jours est une astuce amusante qui consiste à utiliser <code>Filters</code> au lieu de <code>Top Values</code>. Cliquez sur <code>dayOfWeek</code> et sélectionnez <code>Filters</code>, cela devrait ressembler à ceci :</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt0e9c6005a917d4de/6a17e5eb4b055d6e10432196/2498a66098d40a1ba44d3f88464a9888dca204af-3574x1294.png" alt="Visualisation de l'historique de Spotify Wrapped avec Kibana Dashboards" /><p>Il ne vous reste plus qu'à taper les jours. Un filtre par jour. <code>"dayOfWeek" : Monday</code> et lui attribuer le label <code>Monday</code>, puis rincer et répéter.</p><p>Un bémol cependant : Spotify fournit les données en UTC+0 sans aucune information sur le fuseau horaire. Bien sûr, ils fournissent également l'adresse IP et le pays où vous avez écouté et nous pourrions en déduire les informations relatives au fuseau horaire, mais cela peut s'avérer bancal et pour des pays comme les États-Unis qui ont plusieurs fuseaux horaires, cela peut s'avérer trop fastidieux. C'est important car Elasticsearch et Kibana prennent en charge les fuseaux horaires et en fournissant le bon fuseau horaire dans le champ <code>@timestamp</code>, Kibana ajustera automatiquement l'heure à celle de votre navigateur.</p><p>Il devrait ressembler à ceci lorsqu'il sera finalisé, et on peut dire que je suis un auditeur très actif pendant les heures de travail et moins le samedi et le dimanche.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltd8eaab83c8c9c7f2/6a17e5ed6df7315e250a0ec5/c664c90ff8e852e1766e8101afc20c58e110f09c-3582x2030.png" alt="Visualisation de Spotify Wrapped avec Kibana Dashboards" /><h2>Conclusion</h2><p>Dans ce blog, nous avons approfondi les subtilités des données de Spotify. Nous avons montré quelques moyens simples et rapides de mettre en place des visualisations. Il est tout simplement incroyable d'avoir autant de contrôle sur son propre historique d'écoute. Consultez les autres parties de la série :</p><ul><li><p><a href="https://www.elastic.co/search-labs/blog/spotify-wrapped-create-in-kibana">Partie 1 : Comment créer son propre Spotify Wrapped dans Kibana</a></p></li><li><p><a href="https://www.elastic.co/search-labs/blog/elasticsearch-anomaly-detection-jobs">Partie 3 : Emplois de la population pour la détection des anomalies</a></p></li><li><p><a href="https://www.elastic.co/search-labs/blog/find-relationships-in-data">Partie 4 : Détecter les relations dans les données</a></p></li><li><p><a href="https://www.elastic.co/search-labs/blog/vectors-spotify-wrapped-part-05">Partie 5 : Trouver son meilleur ami musical avec les vecteurs</a></p></li></ul>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/spotify-wrapped-data-analysis-visualization</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/spotify-wrapped-data-analysis-visualization</guid>
    <category><![CDATA[Kibana]]></category>
    <category><![CDATA[analytique]]></category>
    <dc:creator><![CDATA[Philipp Kahr]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt7f8cddbca1a54cd5/6a17e5efe9ea87717ba9c585/e04f85e87b5b4e69b6e2df9367840a56985b96a1-1792x1024.png" length="0" type="image/png"/>
    <pubDate>Tue, 25 Feb 2025 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>