Explorador de Dados do Discourse

:discourse2: Resumo O Discourse Data Explorer permite que você execute consultas SQL diretamente no seu banco de dados em tempo real, possibilitando relatórios de estatísticas atualizados ao minuto.
:open_book: Guia de Instalação Este plugin já vem incluído no núcleo do Discourse. Não há necessidade de instalar o plugin separadamente.

:information_source: Se você está procurando exemplos ou suporte para qualquer consulta personalizada, você pode encontrar muitos tópicos em nossa categoria #data-reporting sob a tag sql-query. Se não houver um que atenda às suas necessidades específicas, sinta-se à vontade para criar um novo tópico para pedir ajuda à comunidade. :memo: Ajuda com Consultas

:discourse2: Hospedado por nós? Este plugin está disponível em nossos planos Business e Enterprise. Data Explorer | Discourse - Civilized Discussion

Após instalar o plugin, acesse /admin/plugins.

de1

Clique no botão “Configurações” e ative data explorer enabled (Data Explorer habilitado), depois retorne e recarregue a página.
Deve haver agora uma aba na navegação empilhada chamada “Data Explorer”. Selecione-a ou acesse /admin/plugins/discourse-data-explorer, em seguida, use os botões +, Importar ou Executar para começar.

Consultas padrão

Em uma instalação nova, o Data Explorer já vem com várias consultas que podem ajudar você a obter insights sobre a atividade do seu fórum. Abra qualquer consulta e clique em Executar para testá-la.

Veja como são as consultas padrão.

Nota: As consultas padrão são carregadas a partir deste arquivo: discourse-data-explorer/lib/discourse_data_explorer/queries.rb at main · discourse/discourse-data-explorer · GitHub

Se você tiver uma consulta incrível que deseja que todos tenham, faça um PR como este aqui.

As consultas padrão não podem ser editadas. Sinta-se à vontade para copiar o SQL e colá-lo em uma nova consulta se desejar modificá-las.

Escrevendo consultas

Quando você clica em qualquer um dos botões Editar em uma visualização de consulta, ou inicia uma nova Consulta do Explorer, você verá uma tela como a abaixo:

As duas caixas superiores são o nome e a descrição da consulta. O nome é o que você seleciona na caixa suspensa, e a descrição deve ser usada para coisas como explicar o que colocar nos parâmetros da consulta ou para descrever quais dados estão sendo consultados.

O painel à esquerda é onde você escreve a consulta SQL. Há uma realce de sintaxe básico e verificação fornecidos.

Execução automática de consultas

Embora você sempre possa executar uma consulta clicando no botão Executar, você pode economizar tempo ao carregar uma consulta adicionando o parâmetro run à URL.

Por exemplo: /admin/plugins/discourse-data-explorer/queries/123?run

Quando este parâmetro é adicionado à URL, a consulta será executada assim que você carregar a página, então você não precisa clicar no botão Executar para ver os resultados. Isso é especialmente útil para consultas que você executa com frequência, permitindo que você as marque nos favoritos ou as adicione à sua barra lateral com o parâmetro run incluído para um relatório de um clique.

Importando consultas

Como exemplo, vamos importar uma que eu escrevi. Baixe este arquivo, depois abra a caixa de diálogo de importação e selecione o arquivo para upload ou cole a consulta na caixa de texto. Clique em Importar para salvá-la e depois clique em Executar para ver os resultados.

most-common-likers.dcquery (1).json (442 Bytes)

Parece que todos os desenvolvedores do Discourse gostam bastante uns dos outros :heart:

Pesquisando por consultas

Se você acumulou muitas consultas incríveis, sem problema! A barra de pesquisa pode ajudar você a filtrar por títulos e descrições.

Permitir que grupos não administradores executem consultas

Você pode adicionar grupos específicos (incluindo moderadores) a uma consulta para conceder acesso a ela:

Após salvar, você pode encontrá-la na página do Grupo para aquele grupo específico na aba Relatórios:

Clique em qualquer consulta para abri-la e depois no botão Executar para ver os resultados. Você também pode marcar relatórios de grupo nos favoritos clicando no botão Favoritar.

Compartilhando consultas com parâmetros predefinidos

Se você incluiu parâmetros definidos pelo usuário em sua consulta, pode compartilhar um link para a consulta e incluir os parâmetros na URL para que eles sejam preenchidos automaticamente quando a página carregar.

Você deve incluir os parâmetros na URL neste formato params={"parameter_name":"value"}. Separe múltiplos parâmetros com vírgulas. Por exemplo:

discourse.example.com/g/meu-grupo/relatorios/6?params={"param1":"valor1","param2":"valor2"}

Combinado com o parâmetro run mencionado acima, você pode compartilhar um relatório com parâmetros predefinidos que é executado automaticamente ao ser carregado.

Limites de resultados e exportação de consultas

Com consultas grandes, você pode notar que há um limite no número de linhas que o Data Explorer exibirá. Por padrão, o limite é definido para 1000 linhas. Isso é para evitar que consultas excessivamente grandes diminuam ou perturbem o desempenho da sua instância do Discourse.

Se você deseja contornar esse limite, você tem algumas opções:

  1. Paginação: Você pode paginar seus resultados. Em vez de tentar retornar todos os resultados de uma vez, você pode escrever sua consulta para retornar um intervalo específico de resultados. Você pode então ajustar esse intervalo para visualizar diferentes seções dos seus dados. Isso não aumentará o limite, mas permitirá que você visualize todos os seus dados em seções.
  2. Aumentar o limite: Se você tiver acesso ao servidor do Discourse e estiver confortável em fazer alterações nas configurações do Discourse, pode aumentar o limite. No entanto, isso deve ser feito com cautela. Aumentar o limite pode sobrecarregar muito seu servidor se você não tiver cuidado, especialmente se vários usuários estiverem executando consultas grandes ao mesmo tempo.
  3. Baixar os Resultados: Você também tem a opção de baixar os resultados da consulta em vez de visualizá-los diretamente no Discourse clicando nos botões JSON ou CSV após executar a consulta. Os dados baixados de uma consulta em formato JSON ou CSV terão um limite de resultados muito maior de 10.000 linhas. Para fins programáticos, você deve optar pelo formato JSON, ou, se quiser trabalhar com os dados em um aplicativo de planilha, o formato CSV pode ser mais conveniente.

É geralmente uma boa ideia tentar escrever consultas mais eficientes, ou filtrar seus dados para que você esteja recuperando apenas o que precisa, em vez de tentar contornar o limite.

Você também pode exportar a própria consulta SQL no formato .JSON clicando no botão Exportar. Consultas exportadas usando este método podem então ser importadas para outros sites do Discourse, ou usadas com aplicativos de terceiros.

Plano de consulta

A caixa de seleção “Incluir plano de consulta” pode ser usada para uma melhor compreensão e otimização de suas consultas SQL.

Quando você marca essa caixa e executa uma consulta, o Discourse exibirá a sequência de operações usadas para acessar os dados no banco de dados do Discourse. Isso pode incluir operações como varreduras, junções, ordenações e outras ações do banco de dados. Ao examinar o plano de consulta, você pode ver exatamente como o banco de dados está executando sua consulta.

A série de tutoriais do Data Explorer

Temos também uma série dedicada sql-tutorial sobre o Data Explorer! Se você está interessado em aprender mais sobre como escrever consultas SQL no Discourse, recomendamos altamente ler os tópicos nesta série:

121 curtidas
Data Explorer Tutorial - Part 1 - Writing Your First Query
Daily graph of user time online
Data Explorer Tutorial - Part 2 - Discourse SQL Basics
Formatting Data Explorer Table Results
Visual forum statistics
Extracting email addresses for a group
Visual map of users
How do I download a record of top posts or most clicked links?
Tags: how can admin see who is following what tags?
Can I see in the statistics which post received the most likes
External Data Analysis
Redesign of use profile
Can staff be able to see real author of anonymous posts
How to search/filter untagged topics
Exporting all Topic titles and IDs?
Retrieving user information via REST API
How to measure active users?
Discourse view file update does not reflect in browser
Scan IP matched accounts
Create report for amount of interactions per user
Where to find User ID information
CSV of all editeds post by moderator
Can I access my Discourse forum database?
How to look up a user based on a user_id?
Can I make a plug-ins to view a certain group of people?
Legal Tools Plugin
[Paid] Data explorer queries for ticketing system use case
Transactional Email Service (Open Source)
Direct connect to the Discourse Database
See what categories new users (& other trust levels) post in most
How can I extract the adminstrative records for a EU GDPR request?
Counting and reporting post views for commercial forum users (so we can charge them per-view)
Top user list public
How do I audit votes for fraudulent behavior
How do I get a list of all users from the API?
Tracking referrals? Encouraging users to invite others?
Display Data Explorer query results in WordPress (with TwigAnything)
Database's Data Model?
Filter or create statistics
How do I add users to a group?
Discourse disk space limits per user?
Masonry Image Gallery
Estimated timeline on a project?
Report on User Fields?
Dashboard - Segment number of Posts and Topics by team
Badge image missing issue
Traditional multi level hierarchy vs flat discourse hierarchy
Is there a Trust Level Permissions Table?
Deleting posts by banned users with < 3 posts?
Calculating "Top" topics in Discourse
Is there a way to Search by Posts with No Staff replies on it
How to use SQL to query discourse database
Specify user by external id
How to check the uniqueness of users in "hot link" badge?
Active users per day
Questions about moving an existing forum to Discourse
Get a user object by username or id javascript
Best Practices on reply-by-email
Most liked reply
Likes on a post
Group forum members based on topics viewed?
The metrics on dashboard, do they include activities from administrators?
Can I access Discourse forum Database to use for PowerBI reporting?
Is there a log of user visits?
Find posts "solved" in specific month
Anonymous User Groups
Any way to NOT send emails when a topic category is changed?
View/read by user or of user's posts?
After server migration the images in posts aren't downloadable anymore
Bug with [code]anything[/code] on a single line by itself
Logo is not appearing showing broken after upload
Configuring how users can create and send invites for others to join your community
Users reporting lots of 502 errors when attempting to post due to "max consecutive replies" check
Wildcard search
What would you like to see on your Discourse 2.0 Admin Dashboard?
TeamSpeak Usergroups Sync
Use tags to duplicate images?
Database Access required for our forum
Updated discourse and now site fails to display
Automatic badge expiration
Looking to switch from Vanilla, and have a few questions
Comment on a question instead of answering it
How to create custom reports
Deleted username but can not use that username in other user
Category Remains Muted after Category is available to Everyone
Can staff see who voters in anonymous polls?
Speak to a Discourse Data Analytic representative
How do I pull a report for a single community member?
Report Links to New Topics by Date?
Excluding Suspended, Silenced and Suspect Users When Exporting
Theme-Component v Plugin: What's the difference
Export topics to Excel
Is there a document introducing the database schema design?
Overview which trust level has which possibilities
Why are some users greyed out?
How to get reports for just a specific category?
How to get posts viewed by a user via APIs?
Reports for group message statistics
TimeStamp of Tag
How we put people in a category?
Is it possible to see the dates of all scheduled topics?
Topic Count Per User for Custom Date?
Searching for unassigned topics
Reports by Discourse
How to see all invites and invite tree?
How can I get the list of Discourse Topic IDs dynamically
How to edit sign up form?
Filter posts with images (gallery view)
Tracking unique contributors
New users who visited this month?
Making report on group membership?
Where to find post contents in the database
Searching All Messages as an Administrator
Are Staff and All Groups Included in Dashboard Reporting?
Deleted user with rails console u.delete -> email still "taken"
First Name, Last Name
User posts export as csv or text
User Messages Inbox Error 500
Description of fields returned by Discourse API
Failed to bootstrap due to out of memory killer
Inviting Feedback for Discourse Wiki ("Morphpedia")
What will happen to my forum if discourse suddenly stopped?
Why aren't warnings easily accessible like suspensions are?
Create a Data Explorer query using the API
Automate the syncing of Discourse queries to Google Sheets
Organization of community Data Explorer queries
Get total list of topics and their view counts from Discourse API
Working around the 10,000 result limit of data explorer?
Selecting the Quarter results in custom way
Create a Report on Profile data
Who marked Solution for Topic
Can you view a 'revised' post after it has been revised
More data from Admin reports
Regarding possibility to use Discourse as an alternative to JIRA or Zendesk
Retrieve latest posts by ID
More granular Discourse metrics?
Dump all conversations in a file and structured data
Login type report / list?
Special role to access dashboard
Best API for All First Posts in a Category
Data Explorer: Posts by Category (Including Subcategories)
Can the period stats use custom time frames to not be limited to only the most recent period?
Tracking who accepted which invite link
Advanced Search: Find posts having staff color
2021: The Year in Review
Filter topics not answered by Staff
Can I download a user database and sort by time viewed?
Category API request downloads all topics
User Data By Date Rage
Browse the Postgres database
How do I extract raw data from my discourse community site?
Some issues with searching (sorting, searching deleted posts and such)
How to Delete Uploaded Files?
How to show badges in the message list?
How to show badges in the message list?
How to find pageview data for a specific topic?
Badges for X Number of Solutions Created?
Permanent deletion bug
Adding SSO after many users already signed up -- how to migrate them?
How could I get voters from a poll?
Notifications from muted categories when mailing list mode is enabled
API: how to get joined at date in user summary
Edit a user preference for everyone or a subset of users
Create a Network chart of your forum - data visualization
Discourse Narrative Bot Data Explorer Queries :robot:
How do I get a report of total topics by subcategory for all subcategories please?
Plugin causing errors during rebuild
User field searching / reporting
Admin dashboard report reference guide
Comment, Question, & Discussion Level Agreement Voting - is there an extension?
How to find deleted posts
SQL query for last created users of the past 30 days
How can I see Survey Results or Responses
Is there a plugin for detecting forum access data?
How to show non-staff posts with zero replies
Viewing all published pages in a single site window
Accessing a user's chat activity
Configure Facebook login for Discourse
Admin Reporting & Analysis: Incremental Changes
Access to OpenID claims data?
How to calculate engagement rate for Discourse?
How to export more than the 10,000 limit?
`/admin/customize/permalinks` only shows ~100 permalinks
Can we delete all 'Automatically Bumped' msgs in one go?
User Status
Sort or Order post with combination of both (Replies + Activity)
Dynamically update available user field values during a profile fill in
Can I create a dashboard for a specific group inside the community?
Error during upgrading from Beta 3.1.x to latest
Must have plugins and components for Discourse?
Full IP access log
Available settings for global rate limits and throttling
How can I use GUI to access the postgresql db in docker
Data Explorer query for topics N+ days old, that are unsolved
Page Publishing
Tips for Exporting User Data
Identify private message interactions between users
View tag changes
Types of community & their characteristics
Discourse Chatbot :robot:
Run Data Explorer queries with the Discourse API
2023: The Year in Review
"Ensure ad-blockers are disabled and try reloading the page." when enabling Data Explorer
Exploring Discourse Data Explorer on my Sandbox
Order/Filter searched topics by latest update to First Post
Discourse Automation
API Filter users by emails, including secondary emails
How do I clear user warnings?
Exclude certain categories from the Trust Levels
Topic Ratings Plugin
Forum Data
Is it possible to view all staff notices?
Discourse Retort
Advice on archiving a site
Cleaning up uploads and purging uploads from S3
Content Audit : Report to pull Categories, Topics and Replies
Exporting all Forum Posts for Manual Upload into External LLMs?
discourse容器部署方式下,如何在外部连接到数据库,例如使用DBeaver连接
I'm attempting to merge user accounts
获取昨日点赞或者浏览量,前10的帖子
Populate Data Explorer params with URL params
AI sentiment and emotion analysis reports
Bulk Export of Raw Post Sources with Markup
Bundling more popular plugins with Discourse core
Setting up automated admin notice alerts
Listing event invitees with email addresses
More charting options for Data Explorer
Topics list filter feature
Migrate a phpBB3 forum to Discourse
Using Parameters in Data Explorer Queries
How to find how long a user has viewed a topic/who has posted new topics/country of users
Error trying to edit a post with an image in (NginX Proxy Manager?)
Restrict moderator access to only the stats panel on the admin dashboard?
How does auto-close topics work?
Poll: Export poll results in CSV for quiz creator?
Query to find out who marked the solution as solved
Possible to run a report for most posts within community?
Add an Admin subtab for Inactive users
Questions regarding Discourse features
How to query an email list of users that are not actived
Advice on a support forum
Shopify Integration
How do I see Facebook signups?
Creating and managing polls
Poll: Export poll results in CSV for quiz creator?
Discourse disk space limits per user?
Sorting all users by total posts?
SQL: The most N used words per user (speak their language!)
User Summary - Most Liked By user attributions are incorrect
Maximum Number of Search Results?
Get only top level posts in topic via discourse API
How to get all the deleted posts for a specific topic
Stats reports on a per-category basis?
Data analytics by complex networks and text mining
Error thrown when importing a query in Data Explorer
Zero search results searching private messages for specific keyword
A way to see full list of users granted with a certain badge?
Who messaged the most?
Who messaged the most?
How to open hyperlinks in a new tab
Run report of digest Unsubscribes
Need log the who downloaded attachments
Poll problem - exact vote numbers needed
Telegram Notifications Plugin (discourse-telegram-notifications)
Get last :heart: via API
Is it possible to keep the votes history of a poll?
How do I check a badge's status midway to it being awarded?
What plugins do you use - and why?
Export list of users based on date range
How to get all posts a user interacted with?
How can I email all recently active users?
Raw Function limited to 100

Olá! :slight_smile:

Então, perguntei neste tópico como copiar os links de todos os tópicos em uma consulta de pesquisa. Fui direcionado para cá. Então, perguntei ao gerente do nosso fórum se tínhamos este plugin instalado, o que temos. No entanto, não sabemos como usá-lo para copiar todos os links de uma consulta de pesquisa para um arquivo CSV usando este plugin. Alguém já realizou esta ação antes e talvez possa nos indicar a direção certa? :sweat_smile:

Note que sou um usuário regular do fórum, não tenho poderes de staff. No entanto, estou repassando esta informação ao gerente do site, que tem e pode fazer isso por mim. :slight_smile:

Obrigado desde já!

Olá Preston!

O plugin Data Explorer permite criar consultas SQL.

Você quer criar uma nova que liste os tópicos que você procura.

Em seguida, quando você executar a consulta, verá um botão CSV para exportar o resultado para um arquivo CSV.

Espero que ajude!

Avise-nos se precisar de ajuda adicional para criar a consulta!

3 curtidas

Obrigado! Vou repassar :hugs:

3 posts foram divididos em um novo tópico: Como contornar o limite de 10.000 resultados do explorador de dados?

Olá, tenho uma solicitação de recurso para este ótimo plugin.

Alguns dos relatórios que crio usando o Data Explorer seriam muito úteis para minha equipe se eu pudesse listá-los na página de Relatórios do Painel (/admin/reports).

Seria possível adicionar uma opção a cada consulta do Data Explorer para ser listada na página de Relatórios? Obrigado.

Por exemplo:

  • Listar esta consulta personalizada na página Relatórios
3 curtidas

Obrigado por este recurso!

Estou explorando como poderíamos escrever métricas personalizadas. Estamos usando o Discourse junto com o Workadventu.re (uma ferramenta de colaboração 2D baseada em avatares A/V).
Estou executando um script personalizado lá para registrar atividades em uma planilha do Google via webhook. Para ter tudo centralizado em nossa ferramenta principal (Discourse), seria ótimo ter esses dados impressos no Discourse…
Alguma dica?!

1 curtida

Eu realmente esperava que houvesse um construtor de consultas que ajudasse a escrever SQL. Meu SQL está velho e enferrujado, e escrevê-lo à mão é propenso a erros e demorado. Seria bom se houvesse uma maneira mais fácil!

2 curtidas

Olá @davidgs, bem-vindo à Meta :wave: :slight_smile:

Você já tentou usar um LLM como o ChatGPT? Ele tem um entendimento razoável do Discourse e tem sido bastante confiável quando eu também precisei fazer consultas ao explorador de dados.

Eu costumo escrever meus prompts como “Escreva uma consulta do explorador de dados do Discourse que retorne x,y,z de a,b,c onde…” e acabo com algo bem razoável.

No canto superior direito desta página, você também pode ver um pequeno ícone de robô como o abaixo.
image

Se for esse o caso, você também pode tentar o AI Helper Bot que está integrado à Meta.

2 curtidas

A maioria de nós não o vê. Mas sempre existe o ask.discourse.com

2 curtidas

Sim, eu não conseguia me lembrar se isso ainda era apenas uma coisa de nível de confiança 3 ou não. Boa sugestão sobre o site ask.discourse.com.

Como exemplo de referência, joguei escreva uma consulta do explorador de dados do discourse que retorne uma lista de todos os usuários que disseram a palavra “software” na barra de entrada de texto do ask.discourse.com e recebi a seguinte consulta de volta:

SELECT 
    p.user_id, 
    u.username,
    COUNT(p.id) AS post_count
FROM 
    posts p
JOIN 
    users u ON u.id = p.user_id
WHERE 
    p.raw ILIKE '%software%'
GROUP BY 
    p.user_id, u.username
ORDER BY 
    post_count DESC;

Muito razoável. Também posso garantir que ele faz consultas significativamente mais complexas do que esta.

2 curtidas

de alguma forma a exportação de dados do data explorer não está mais funcionando com as últimas atualizações do discourse e do data explorer que instalei há cerca de duas horas. Os dados em si são criados corretamente, mas não podem mais ser exportados.

Clicar nos botões JSON ou CSV apenas cria um breve flash e nada mais acontece. Funcionou bem há cerca de duas semanas.

No console do navegador, vejo o seguinte erro:
CSV:

Uncaught TypeError: this.args.query is undefined
    _downloadResult query-result.js:310
    downloadResultCsv query-result.js:287
    _triggerAction d-button.gjs:160
    Ember 12
    _triggerAction d-button.gjs:157
    click d-button.gjs:106

JSON:

Uncaught TypeError: this.args.query is undefined
    _downloadResult query-result.js:310
    downloadResultJson query-result.js:283
    _triggerAction d-button.gjs:160
    Ember 12
    _triggerAction d-button.gjs:157
    click d-button.gjs:106
1 curtida

Obrigado pelo relatório de bug, @GuidoD!

Eu mesclei uma correção para este problema hoje mais cedo, por favor, tente atualizar e confirme se funciona para você. :slight_smile:

2 curtidas

obrigado pela correção rápida.
Posso confirmar que está funcionando bem novamente.

1 curtida

para uma pequena quantidade de dados, a exportação para JSON e CSV estão funcionando bem. Mas para uma quantidade maior de dados, a exportação CSV está funcionando bem, mas a exportação JSON resulta em nginx 502 bad gateway (provavelmente devido a um timeout após 30 segundos, onde a criação do arquivo JSON leva mais de 30 segundos).
Existe uma maneira fácil de aumentar o valor do timeout do nginx?

Se eu reduzir o período da consulta, o arquivo CSV tem 12,9 MB e o arquivo JSON tem 645 MB. O arquivo CSV total é 13,5 MB, então apenas um pouco maior, mas o arquivo JSON não é criado devido ao erro do nginx.

Ou talvez a criação do arquivo JSON esteja falhando devido a alguns dados estranhos. A criação do arquivo JSON gera um arquivo de log?

As consultas JSON são executadas com um LIMIT externo maior por padrão em comparação com as consultas CSV. Adicione paginação personalizada dentro da consulta para garantir que ela seja concluída a tempo.

1 curtida

É possível executar instruções UPDATE do Data Explorer?

Estou tentando fazer uma atualização em massa de uma determinada tabela, mas recebo este erro:

PG::FeatureNotSupported: ERROR:  WITH query \"query\" does not have a RETURNING clause
LINE 29:   ) SELECT * FROM query

Não, o Data Explorer executa apenas transações somente leitura. (Se você atualizou sua consulta para ter uma cláusula RETURNING, receberia um erro de transação somente leitura.)

Se você estiver auto-hospedando, use um dos guias “launcher enter”, como

Se você já tem seu UPDATE projetado, então você pode usar psql discourse em vez de rails c.

Se você estiver em um serviço hospedado, entre em contato com o suporte para que eles executem a alteração.

1 curtida

Obrigado pela resposta. Faz sentido. Estamos usando um serviço hospedado, então entrarei em contato com o suporte deles.

Se eu compartilhar uma consulta SQL com o grupo de moderadores, como os usuários do grupo de moderadores podem executar a consulta em suas contas? Eles não conseguem ver o plugin Explorador de Dados.