SDS Manager
Documentation
Documentation/Générer un rapport

📥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. 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. 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. 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. 1

    Groupe Général

    ChampDescriptionExemple
    importationsListe des importations et projets disponibles dans le SDS. Ne dépend d'aucun filtre de date.
  2. 2

    Groupe Posts — données brutes des publications

    ChampDescriptionExemple
    distinct_postsListe dédupliquée des posts (un post = une ligne). Ne contient pas les relations de citation/partage.
    all_postsTous les posts avec leurs relations de citations, partages et commentaires (plusieurs lignes possibles par post source).
    posts_by_dateVolume de posts agrégé par date de publication (1 ligne = 1 date).
  3. 3

    Groupe Liens — analyse des URLs et domaines partagés

    ChampDescriptionExemple
    urlsAgrégation des posts par URL présente dans le texte : nombre de posts, auteurs, engagements.
    domainsAgrégation des posts par nom de domaine extrait des URLs.
    related_posts_to_domainsPosts contenant au moins un des domaines spécifiés dans le champ **Domaines** (requis). Retourne les posts complets.
  4. 4

    Groupe Interactions — citations et partages

    ChampDescriptionExemple
    citationsPosts cités (quote tweets / citations). Filtrables par date de republication (`citation_start_date` / `citation_end_date`).
    repartagesPosts repartagés (retweets / reshares). Filtrables par date de republication.
  5. 5

    Groupe Comptes — profils des auteurs

    ChampDescriptionExemple
    accountsComptes auteurs des posts. Filtrables par date de création du compte (`registered_start_date` / `registered_end_date`).
    mentionsComptes mentionnés dans les posts (agrégation par compte mentionné).
    quoted_accountsComptes dont les posts ont été cités. Filtrables par date de création du compte.
    shared_accountsComptes dont les posts ont été repartagés. Filtrables par date de création du compte.
  6. 6

    Groupe Contenu — analyse textuelle

    ChampDescriptionExemple
    hashtagsAgrégation des posts par hashtag : volume, portée, engagements.
    nerAgrégation des posts par entités nommées reconnues (NER) : personnes, organisations, lieux.
    distinct_posts_with_nerPosts distincts enrichis de leurs entités nommées (1 ligne = 1 post avec ses entités en colonnes ou en JSON).
  7. 7

    Groupe Coordination — détection de comportements coordonnés

    ChampDescriptionExemple
    coordination_clustersUn cluster de coordination par ligne : identifiant, taille, métriques de coordination.
    all_posts_coordination_clustersTous les posts associés à leur cluster de coordination (1 ligne = 1 post avec son `cluster_id`).
  8. 8

    Groupe Topic Modeling — non-annotés *(nécessite un `analyse_id`)*

    ChampDescriptionExemple
    topic_modelling_rawChunks (segments textuels) associés à leur topic numérique brut issu du topic modeling.
    topic_modelling_aggregatedPosts agrégés depuis leurs chunks, avec leur topic dominant.
    topics_representationReprésentation statistique de chaque topic : volume de posts, part relative, mots-clés représentatifs.
    users_representationRépartition des utilisateurs par topic dominant.
  9. 9

    Groupe Topic Modeling — annotés *(nécessite un `analyse_id` avec labels d'annotation)*

    ChampDescriptionExemple
    raw_labelsChunks associés à leur label d'annotation (sortie brute après annotation des topics).
    agregated_labelsPosts agrégés depuis leurs chunks, avec leur label dominant.
    labels_representationReprésentation statistique de chaque label : volume, part, liste des utilisateurs.
    users_representation_labelsRépartition des utilisateurs par label dominant.
  10. 10

    Groupe Narrative Filtering *(nécessite un `analyse_id`)*

    ChampDescriptionExemple
    distinct_posts_matching_narrativesPosts distincts correspondant à au moins un narratif de la base de référence, avec le ou les narratifs matchés.
  11. 11

    Groupe LLM Classification *(nécessite un `analyse_id` et un `llm_analyse_id`)*

    ChampDescriptionExemple
    distinct_posts_llm_classificationPosts distincts enrichis de leur classification LLM (label produit par le prompt sélectionné).
    accounts_llm_classificationComptes 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

ErreurCause probableSolution
Rapport Topic Modeling ou LLM grisé dans l'interfaceAucune 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. 1

    Filtres de contenu (toggles — s'appliquent à tous les rapports)

    ChampDescriptionExemple
    inclure_originalInclure les posts originaux (non cités, non repartagés). Activé par défaut.true
    inclure_citationsInclure les posts qui citent d'autres posts (quote tweets).true
    inclure_retweetsInclure les repartages (retweets / reshares).true
    inclure_commentsInclure les commentaires / réponses. Activé par défaut.true
  2. 2

    Filtres de dates

    ChampDescriptionExemple
    start_date / end_datePériode de publication des posts. S'applique à la majorité des rapports.2025-01-01 → 2025-03-31
    citation_start_date / citation_end_datePériode de republication. Visible uniquement si `citations` ou `repartages` est sélectionné.2025-02-01 → 2025-02-28
    registered_start_date / registered_end_datePé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. 3

    Champ Domaines (visible uniquement pour `related_posts_to_domains`)

    ChampDescriptionExemple
    domainsListe de noms de domaine à filtrer, un par ligne ou séparés par des virgules.youtube.com x.com t.me
  4. 4

    Paramètres avancés

    ChampDescriptionExemple
    bq_thresholdSeuil 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

ErreurCause probableSolution
Le rapport `related_posts_to_domains` échoueLe champ Domaines est vide.Renseignez au moins un domaine dans le champ **Domaines** avant de lancer l'export.
Export très lent ou timeoutLe 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. 1

    Dans la barre latérale, cliquez sur Générer un rapport.

  2. 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. 3

    Cochez les types de rapports souhaités. Plusieurs rapports peuvent être sélectionnés simultanément — chacun produira un CSV indépendant.

  4. 4

    Configurez les filtres (toggles de contenu, dates, domaines) et les paramètres avancés si nécessaire.

  5. 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

ErreurCause probableSolution
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 videAucun 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.