📥Générer un rapport
Exporter des données d'une importation vers Google Cloud Storage sous forme de fichiers CSV thématiques.
Principe général
Objectif
Comprendre ce que produit l'exporter et comment retrouver les fichiers générés.
Étapes
- 1
L'exporter génère un ou plusieurs fichiers CSV stockés dans le bucket GCS `gs://reports-exporter/exports/{job_id}/`. Chaque type de rapport produit un fichier CSV distinct dans ce dossier.
- 2
Le job est dispatché via Cloud Tasks (queue `exporter`). L'appel API retourne immédiatement un `job_id` ; chaque rapport est ensuite traité en parallèle dans des sous-tâches séparées.
- 3
Pour les jeux de données volumineux, l'exporter bascule automatiquement vers BigQuery au-delà d'un seuil configurable (`bq_threshold`, défaut 300 000 lignes). En dessous de ce seuil, la requête est exécutée directement sur Cloud SQL.
✓ Résultat attendu
Chaque rapport demandé produit un fichier `{report_type}_{timestamp}.csv` dans le dossier GCS `exports/{job_id}/`.
Types de rapports disponibles
Objectif
Choisir les bons types de rapports selon le besoin d'analyse.
Prérequis
- Avoir une importation avec des données collectées.
- Pour les rapports Topic Modeling, Narrative Filtering et LLM Classification : avoir une analyse associée à l'importation.
Étapes
- 1
Groupe Général
Champ Description Exemple importations Liste des importations et projets disponibles dans le SDS. Ne dépend d'aucun filtre de date. - 2
Groupe Posts — données brutes des publications
Champ Description Exemple distinct_posts Liste dédupliquée des posts (un post = une ligne). Ne contient pas les relations de citation/partage. all_posts Tous les posts avec leurs relations de citations, partages et commentaires (plusieurs lignes possibles par post source). posts_by_date Volume de posts agrégé par date de publication (1 ligne = 1 date). - 3
Groupe Liens — analyse des URLs et domaines partagés
Champ Description Exemple urls Agrégation des posts par URL présente dans le texte : nombre de posts, auteurs, engagements. domains Agrégation des posts par nom de domaine extrait des URLs. related_posts_to_domains Posts contenant au moins un des domaines spécifiés dans le champ **Domaines** (requis). Retourne les posts complets. - 4
Groupe Interactions — citations et partages
Champ Description Exemple citations Posts cités (quote tweets / citations). Filtrables par date de republication (`citation_start_date` / `citation_end_date`). repartages Posts repartagés (retweets / reshares). Filtrables par date de republication. - 5
Groupe Comptes — profils des auteurs
Champ Description Exemple accounts Comptes auteurs des posts. Filtrables par date de création du compte (`registered_start_date` / `registered_end_date`). mentions Comptes mentionnés dans les posts (agrégation par compte mentionné). quoted_accounts Comptes dont les posts ont été cités. Filtrables par date de création du compte. shared_accounts Comptes dont les posts ont été repartagés. Filtrables par date de création du compte. - 6
Groupe Contenu — analyse textuelle
Champ Description Exemple hashtags Agrégation des posts par hashtag : volume, portée, engagements. ner Agrégation des posts par entités nommées reconnues (NER) : personnes, organisations, lieux. distinct_posts_with_ner Posts distincts enrichis de leurs entités nommées (1 ligne = 1 post avec ses entités en colonnes ou en JSON). - 7
Groupe Coordination — détection de comportements coordonnés
Champ Description Exemple coordination_clusters Un cluster de coordination par ligne : identifiant, taille, métriques de coordination. all_posts_coordination_clusters Tous les posts associés à leur cluster de coordination (1 ligne = 1 post avec son `cluster_id`). - 8
Groupe Topic Modeling — non-annotés *(nécessite un `analyse_id`)*
Champ Description Exemple topic_modelling_raw Chunks (segments textuels) associés à leur topic numérique brut issu du topic modeling. topic_modelling_aggregated Posts agrégés depuis leurs chunks, avec leur topic dominant. topics_representation Représentation statistique de chaque topic : volume de posts, part relative, mots-clés représentatifs. users_representation Répartition des utilisateurs par topic dominant. - 9
Groupe Topic Modeling — annotés *(nécessite un `analyse_id` avec labels d'annotation)*
Champ Description Exemple raw_labels Chunks associés à leur label d'annotation (sortie brute après annotation des topics). agregated_labels Posts agrégés depuis leurs chunks, avec leur label dominant. labels_representation Représentation statistique de chaque label : volume, part, liste des utilisateurs. users_representation_labels Répartition des utilisateurs par label dominant. - 10
Groupe Narrative Filtering *(nécessite un `analyse_id`)*
Champ Description Exemple distinct_posts_matching_narratives Posts distincts correspondant à au moins un narratif de la base de référence, avec le ou les narratifs matchés. - 11
Groupe LLM Classification *(nécessite un `analyse_id` et un `llm_analyse_id`)*
Champ Description Exemple distinct_posts_llm_classification Posts distincts enrichis de leur classification LLM (label produit par le prompt sélectionné). accounts_llm_classification Comptes auteurs enrichis de la classification LLM agrégée sur leurs posts.
✓ Résultat attendu
Chaque groupe produit un CSV indépendant dans le dossier GCS du job.
Erreurs fréquentes
| Erreur | Cause probable | Solution |
|---|---|---|
| Rapport Topic Modeling ou LLM grisé dans l'interface | Aucune analyse sélectionnée. | Sélectionnez d'abord une **Analyse** dans le sélecteur (étape 1). Le groupe LLM Classification apparaît uniquement si un **Prompt LLM** est aussi sélectionné. |
Paramètres et filtres
Objectif
Configurer les filtres temporels, les types de posts inclus et les options avancées.
Étapes
- 1
Filtres de contenu (toggles — s'appliquent à tous les rapports)
Champ Description Exemple inclure_original Inclure les posts originaux (non cités, non repartagés). Activé par défaut. true inclure_citations Inclure les posts qui citent d'autres posts (quote tweets). true inclure_retweets Inclure les repartages (retweets / reshares). true inclure_comments Inclure les commentaires / réponses. Activé par défaut. true - 2
Filtres de dates
Champ Description Exemple start_date / end_date Période de publication des posts. S'applique à la majorité des rapports. 2025-01-01 → 2025-03-31 citation_start_date / citation_end_date Période de republication. Visible uniquement si `citations` ou `repartages` est sélectionné. 2025-02-01 → 2025-02-28 registered_start_date / registered_end_date Période de création des comptes. Visible uniquement si `accounts`, `quoted_accounts` ou `shared_accounts` est sélectionné. 2020-01-01 → 2023-12-31 - 3
Champ Domaines (visible uniquement pour `related_posts_to_domains`)
Champ Description Exemple domains Liste de noms de domaine à filtrer, un par ligne ou séparés par des virgules. youtube.com x.com t.me - 4
Paramètres avancés
Champ Description Exemple bq_threshold Seuil de lignes au-delà duquel BigQuery est utilisé à la place de Cloud SQL. Défaut : 300 000. Augmenter ce seuil force Cloud SQL (plus rapide sur petits volumes) ; abaisser ce seuil force BigQuery (recommandé sur très grands jeux de données). 300000
✓ Résultat attendu
Les filtres réduisent le périmètre des données extraites sans modifier la structure des CSV produits.
Erreurs fréquentes
| Erreur | Cause probable | Solution |
|---|---|---|
| Le rapport `related_posts_to_domains` échoue | Le champ Domaines est vide. | Renseignez au moins un domaine dans le champ **Domaines** avant de lancer l'export. |
| Export très lent ou timeout | Le volume de données dépasse le seuil BigQuery mais `bq_threshold` est trop élevé. | Abaissez `bq_threshold` (ex. 100 000) pour forcer l'utilisation de BigQuery sur les grands volumes. |
Lancer un export
Objectif
Générer des fichiers CSV et retrouver le dossier GCS correspondant.
Prérequis
- Avoir une importation avec des données collectées.
- Pour Topic Modeling / LLM Classification : avoir une analyse disponible.
Étapes
- 1
Dans la barre latérale, cliquez sur Générer un rapport.
- 2
Sélectionnez le Client, le Projet et l'Importation cible. Si des rapports Topic Modeling, Narrative Filtering ou LLM Classification sont nécessaires, sélectionnez aussi l'Analyse (et le Prompt LLM pour les rapports LLM Classification).
- 3
Cochez les types de rapports souhaités. Plusieurs rapports peuvent être sélectionnés simultanément — chacun produira un CSV indépendant.
- 4
Configurez les filtres (toggles de contenu, dates, domaines) et les paramètres avancés si nécessaire.
- 5
Cliquez sur Générer le rapport. Un `job_id` est retourné immédiatement. Les fichiers sont produits de façon asynchrone dans `gs://reports-exporter/exports/{job_id}/`.
✓ Résultat attendu
L'interface affiche le `job_id` et le chemin GCS `gs://reports-exporter/exports/{job_id}/`. Chaque rapport demandé est disponible sous la forme `{report_type}_{timestamp}.csv` dans ce dossier.
Erreurs fréquentes
| Erreur | Cause probable | Solution |
|---|---|---|
| Bouton « Générer le rapport » désactivé | Aucune importation sélectionnée ou aucun type de rapport coché. | Vérifiez que les étapes 1 (importation) et 2 (au moins un rapport) sont complétées. |
| Fichier CSV absent ou vide | Aucun post ne correspond aux filtres appliqués, ou la collecte n'a pas encore produit de données. | Retirez les filtres de date et vérifiez que l'importation contient des données collectées. |