<?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[Philipp Kahr - 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[Philipp Kahr - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/pt/search-labs/author/philipp-kahr</link>
    </image>
    <link>https://www.elastic.co/pt/search-labs/author/philipp-kahr</link>
    <atom:link href="https://www.elastic.co/pt/search-labs/rss/author/philipp-kahr.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[pt]]></language>
    <lastBuildDate>Mon, 05 Oct 2026 16:21:24 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Spotify Wrapped parte 2: Análise e visualização de dados]]></title>
    <description><![CDATA[Analisaremos seus dados do Spotify com mais profundidade do que nunca e exploraremos conexões que você nem imaginava que existiam.]]></description>
    <content:encoded><![CDATA[<p>Na <a href="https://www.elastic.co/search-labs/blog/spotify-wrapped-create-in-kibana">primeira parte</a> desta série, escrita por Iulia Feroli, falamos sobre como obter seus dados do Spotify Wrapped e visualizá-los no Kibana. Na parte 2, vamos analisar os dados mais a fundo para ver o que mais podemos descobrir. Para isso, vamos usar uma abordagem um pouco diferente e utilizar <a href="https://github.com/elastic/elasticsearch-labs/tree/main/supporting-blog-content/spotify-to-elasticsearch">o Spotify to Elasticsearch</a> para indexar os dados no Elasticsearch. Essa ferramenta é um pouco mais avançada e requer um pouco mais de configuração, mas vale a pena. Os dados estão mais estruturados e podemos fazer perguntas mais complexas.</p><h2>Diferenças em relação à primeira análise do Spotify Wrapped</h2><p>No primeiro post do blog, usamos a exportação do Spotify diretamente e não realizamos nenhuma tarefa de normalização ou qualquer outro processamento de dados. Desta vez, usaremos os mesmos dados, mas realizaremos algum processamento para torná-los mais utilizáveis. Isso nos permitirá responder a perguntas muito mais complexas, como:</p><ul><li><p>Qual é a duração média de uma música no meu top 100?</p></li><li><p>Qual é a popularidade média de uma música no meu top 100?</p></li><li><p>Qual é a duração mediana de audição de uma música?</p></li><li><p>Qual é a música que eu mais pulo?</p></li><li><p>Quando gosto de pular faixas?</p></li><li><p>Será que estou prestando mais atenção a alguma hora específica do dia do que a outras?</p></li><li><p>Estou dando mais atenção a algum dia específico da semana do que a outros?</p></li><li><p>É um mês de particular interesse?</p></li><li><p>Qual é o artista com o maior tempo de audição?</p></li></ul><p>O Spotify Wrapped é uma experiência divertida que acontece todos os anos, mostrando o que você ouviu durante o ano. Não mostra as mudanças ano a ano, então você pode perder alguns artistas que já estiveram no seu top 10, mas que agora desapareceram.</p><h2>Processamento de dados do Spotify Wrapped para análise.</h2><p>Existe uma grande diferença na forma como processamos os dados na primeira e na segunda publicação. Se você quiser continuar trabalhando com os dados da primeira postagem, precisará levar em conta algumas alterações nos nomes dos campos, bem como recorrer ao ES|QL para fazer certas extrações, como <code>hour of day</code> em tempo real.</p><p>No entanto, todos vocês devem conseguir acompanhar esta publicação. O processamento de dados é feito no repositório <a href="https://github.com/elastic/elasticsearch-labs/tree/main/supporting-blog-content/spotify-to-elasticsearch">Spotify to Elasticsearch,</a> que envolve consultar a API do Spotify para obter a duração da música, a popularidade e também renomear e aprimorar alguns campos. Por exemplo, o campo <code>artist</code> na própria exportação do Spotify é apenas uma string e não representa recursos ou faixas com vários artistas.</p><h2>Visualizando dados do Spotify Wrapped com painéis de controle</h2><p>Criei um painel de controle no Kibana para visualizar os dados. O painel de controle está disponível <a href="https://github.com/elastic/elasticsearch-labs/blob/main/supporting-blog-content/spotify-to-elasticsearch/kibana/dashboard.ndjson">aqui</a> e você pode importá-lo para sua instância do Kibana. O painel de controle é bastante completo e responde a muitas das perguntas acima.</p><p>Vamos analisar algumas das perguntas e como respondê-las juntos!</p><h3>Qual é a duração média de uma música no meu top 100?</h3><p>Para responder a essa pergunta, podemos usar Lens ou ES|QL. Vamos explorar as três opções. Vamos reformular essa pergunta corretamente, usando a linguagem do Elasticsearch. Queremos encontrar as 100 músicas mais populares e depois calcular a duração média de todas elas juntas. Em termos do Elasticsearch, isso corresponderia a duas agregações:</p><ol><li><p>Descubra as 100 melhores músicas</p></li><li><p>Calcule a duração média dessas 100 músicas.</p></li></ol><p><strong>Lens</strong></p><p>No Lens, isso é bastante simples: crie uma nova lente, mude para uma tabela e arraste e solte o campo <code>title</code> na tabela. Em seguida, clique no campo <code>title</code> e defina o tamanho para 100, bem como defina o modo <code>accuracy</code> . Em seguida, arraste e solte o campo <code>duration</code> na tabela e use <code>last value</code>, porque na verdade só precisamos do último valor da duração de cada uma das músicas. A mesma música terá apenas uma duração. Na parte inferior desta agregação <code>last value</code> há um menu suspenso para uma linha de resumo, selecione <code>average</code> e ela será exibida para você.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt5df1d7f36de5e2ae/6a17e5df0b0beddd57dd355c/a56f6e48e6b53af3ca3d38d67ce0916d0621ef16-2910x1058.png" alt="Usando o Lens para dados encapsulados do Spotify" /><p><strong>ES|QL</strong></p><p>ES|QL é uma linguagem bastante recente em comparação com DSL e agregações, mas é muito poderosa e fácil de usar. Para responder à mesma pergunta em ES|QL, você escreveria a seguinte consulta:</p><p>Vou explicar passo a passo essa consulta ES|QL:</p><ol><li><p><code>from spotify-history</code> - Este é o padrão de índice que estamos usando.</p></li><li><p><code>stats duration=max(duration), count=count() by title</code> - Esta é a primeira agregação; estamos calculando a duração máxima de cada música e a quantidade de músicas reproduzidas. Usamos <code>max</code> em vez de <code>last value</code> como usado na Lens, porque ES|QL atualmente não tem um primeiro ou último.</p></li><li><p><code>sort count desc</code> - Classificamos as músicas pela quantidade de vezes que cada música foi ouvida, então a música mais ouvida fica no topo.</p></li><li><p><code>limit 100</code> - Limitamos o resultado às 100 melhores músicas.</p></li><li><p><code>stats Average duration of the songs=avg(duration)</code> - Calculamos a duração média das músicas.</p></li></ol><h3>Existe algum mês que me interesse particularmente?</h3><p>Para responder a essa pergunta, podemos usar o Lens com a ajuda de campos de tempo de execução e ES|QL. O que notamos imediatamente é que não há nenhum campo nos dados que denote o <code>month</code> diretamente, em vez disso, precisamos calculá-lo a partir do campo <code>@timestamp</code> . Existem várias maneiras de fazer isso:</p><ol><li><p>Use um campo de tempo de execução para alimentar a lente.</p></li><li><p>ES|QL</p></li></ol><p>Pessoalmente, acho que ES|QL é a solução mais elegante e rápida.</p><p>É isso, nada de especial necessário, podemos usar a função <code>DATE_EXTRACT</code> para extrair o mês do campo <code>@timestamp</code> e depois podemos agregar com base nele. Usando a visualização ES|QL, podemos adicioná-la ao painel.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2c221ad4446cfb09/6a17e5e03e9e45076eba144c/7f942cf38fbe0fecec1d741e7df922196f4e9483-1878x722.png" alt="Visualização do detalhamento mensal do Spotify Wrapped" /><h3>Qual é o meu tempo médio de escuta por artista por ano?</h3><p>A ideia por trás disso é verificar se um artista é apenas um caso isolado ou se há uma recorrência. Se não me engano, o Spotify só mostra os 5 artistas mais populares no ranking anual. Talvez o seu artista número 6 permaneça o mesmo o tempo todo, ou ele mude drasticamente depois da décima posição?</p><p>Uma das representações mais simples disso é um gráfico de barras percentuais. Podemos usar o Lens para isso. Siga os passos abaixo:</p><p>Arraste e solte o campo <code>listened_to_ms</code> . Este campo representa a duração da audição da música em milissegundos. Por padrão, o Lens criará uma agregação <code>median</code> , não queremos isso, altere para <code>sum</code>. Na parte superior, selecione <code>percentage</code> em vez de <code>stacked</code> para o tipo de gráfico de barras. Para a análise, selecione <code>artist</code> e diga top 10. Na lista suspensa <code>Advanced</code> não se esqueça de selecionar <code>accuracy mode</code>. Agora, cada bloco de cor representa o quanto você ouviu esse artista. Dependendo do seu seletor de tempo, as barras podem representar valores que variam de dias a semanas, meses e anos. Se você quiser um detalhamento semanal, selecione <code>@timestamp</code> e defina <code>mininum interval</code> para <code>year</code>. O que podemos dizer no meu caso é que <code>Fred Again..</code> é o artista que mais ouvi, quase 12% do meu tempo total de audição foi consumido por <code>Fred Again..</code>. Também vemos que <code>Fred Again..</code> caiu um pouco em 2024, mas <code>Jamie XX</code> cresceu bastante. Se compararmos apenas o tamanho das barras. Também podemos dizer que enquanto <code>Billie Eilish</code> está sendo constantemente tocado em 2024 a largura da barra. Isso significa que ouvi <code>Billie Eilish</code> mais em 2024 do que em 2023.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blteb0c11b909be859f/6a17e5e2e8fbce239a3a18ee/61a5bcc6b7385ed0a11b67c9c6bab32d27f4a49b-2942x1354.png" alt="Visualização do histórico do Spotify Wrapped usando o Kibana" /><h3>E quanto às músicas mais ouvidas por artista, por tempo de audição, em comparação com o tempo total de audição?</h3><p>Essa é uma pergunta bastante complexa. Deixe-me tentar explicar o que quero dizer com isso. O Spotify informa qual é a música mais ouvida de um artista específico ou suas 5 músicas mais ouvidas no geral. Bom, isso é definitivamente interessante, mas e quanto à análise da trajetória de um artista? Todo o meu tempo é consumido por uma única música que eu ouço repetidamente, ou isso se distribui de forma equilibrada?</p><p>Crie uma nova lente e selecione <code>Treemap</code> como tipo. Para o <code>metric</code>, igual a antes: selecione <code>sum</code> e use <code>listened_to_ms</code> como o campo. Para o <code>group by</code> precisamos de dois valores. O primeiro é <code>artist</code> e depois adicione um segundo com <code>title</code>. O resultado intermediário se parece com isto:</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt9aa0e4877472123f/6a17e5e44b055d6dcf43218e/2dea389664a0d3d13fff03c6337bff3ce740f9b1-2922x1430.png" alt="Visualização do histórico do Spotify Wrapped usando o Kibana" /><p>Vamos mudar isso para os 100 melhores artistas e desmarcar o <code>other</code> no menu suspenso avançado, além de ativar o modo de precisão. Para alterar o título, escolha "Top 10" e ative o modo de precisão. O resultado final é este:</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt070bf745be1d3f92/6a17e5e66864a43a0fb6875b/7e99a15c69801e58302af4c12b500242a7e8bc9d-2640x1622.png" alt="Visualização do Spotify Wrapped usando o Kibana" /><p>O que isso nos diz exatamente? Sem analisar nenhum componente de tempo, podemos dizer que, em todo o meu histórico de audição com o Spotify, passei 5,67% ouvindo <code>Fred Again..</code>. Em particular, passei 1,21% desse tempo ouvindo <code>Delilah (pull me out of this)</code>. É interessante observar se existe uma única música que domina a carreira de um artista, ou se há outras músicas também. O próprio mapa de árvore é uma forma interessante de representar essas distribuições de dados.</p><h3>Devo escutar em um horário e dia específicos?</h3><p>Bem, podemos responder isso de forma super simples com uma visualização Lens aproveitando o <code>Heat Map</code>. Crie uma nova lente, selecione <code>Heat Map</code>. Para o campo <code>Horizontal Axis</code> selecione <code>dayOfWeek</code> e defina-o como <code>Top 7</code> em vez de Top 3. Para o <code>Vertical Axis</code> selecione o <code>hourOfDay</code> e para o <code>Cell Value</code> apenas um simples <code>Count of records</code>. Isso irá gerar este painel:</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt2d08e4f4d0a90550/6a17e5e7e8fbce1af43a18f2/c83ec13a3c7d1b71b8a6b110ed2b74e691d868e6-3538x1720.png" alt="Visualização dos hábitos de audição do Spotify Wrapped usando painéis de controle." /><p>Há algumas coisas irritantes nesta lente que me incomodam na hora da interpretação. Vamos tentar dar uma melhorada nisso. Em primeiro lugar, não me importo muito com a legenda; use o símbolo na parte superior com o triângulo, o quadrado e o círculo e desative-o.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltce46c47addd91c61/6a17e5e94b055d15d5432192/84f51d6c885b929bf47ac05edd32ca149ad2e651-1040x298.png" alt="Visualização do Spotify Wrapped " /><p>A segunda parte irritante é a ordenação dos dias. Pode ser segunda, quarta, quinta-feira ou qualquer outro dia, dependendo dos valores que você definir. O <code>hourOfDay</code> está corretamente ordenado. A maneira de ordenar os dias é um truque engraçado que consiste em usar <code>Filters</code> em vez de <code>Top Values</code>. Clique em <code>dayOfWeek</code> e selecione <code>Filters</code>, agora deverá ficar assim:</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt0e9c6005a917d4de/6a17e5eb4b055d6e10432196/2498a66098d40a1ba44d3f88464a9888dca204af-3574x1294.png" alt="Visualização do histórico do Spotify Wrapped com painéis do Kibana" /><p>Agora é só começar a digitar os dias. Um filtro por dia. <code>"dayOfWeek" : Monday</code> e dê a ele o rótulo <code>Monday</code> e enxágue e repita.</p><p>Uma ressalva importante, porém, é que o Spotify fornece os dados em UTC+0, sem nenhuma informação sobre fuso horário. Claro, eles também fornecem o endereço IP e o país de onde você ouviu, e poderíamos inferir as informações de fuso horário a partir disso, mas isso pode ser impreciso e, para países como os EUA, que têm vários fusos horários, pode ser muito trabalhoso. Isso é importante porque o Elasticsearch e o Kibana têm suporte para fusos horários e, ao fornecer o fuso horário correto no campo <code>@timestamp</code> , o Kibana ajustará automaticamente a hora para a hora do seu navegador.</p><p>O resultado final deverá ser este, e podemos constatar que sou um ouvinte muito ativo durante o horário de trabalho e menos aos sábados e domingos.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltd8eaab83c8c9c7f2/6a17e5ed6df7315e250a0ec5/c664c90ff8e852e1766e8101afc20c58e110f09c-3582x2030.png" alt="Visualização do Spotify Wrapped usando painéis do Kibana" /><h2>Conclusão</h2><p>Neste blog, aprofundamos um pouco mais as complexidades que os dados do Spotify oferecem. Mostramos algumas maneiras simples e rápidas de colocar algumas visualizações em funcionamento. É simplesmente incrível ter tanto controle sobre o seu próprio histórico de audição. Confira as outras partes da série:</p><ul><li><p><a href="https://www.elastic.co/search-labs/blog/spotify-wrapped-create-in-kibana">Parte 1: Como criar seu próprio Spotify Wrapped no Kibana</a></p></li><li><p><a href="https://www.elastic.co/search-labs/blog/elasticsearch-anomaly-detection-jobs">Parte 3: Tarefas populacionais de detecção de anomalias</a></p></li><li><p><a href="https://www.elastic.co/search-labs/blog/find-relationships-in-data">Parte 4: Detectando relações em dados</a></p></li><li><p><a href="https://www.elastic.co/search-labs/blog/vectors-spotify-wrapped-part-05">Parte 5: Encontrando seu melhor amigo musical com vetores</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[analítica]]></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>