Lorsque les utilisateurs ont besoin d’exportations de données personnalisées ou détaillées qui vont au-delà des informations de base disponibles sur leur page de préférences Exportation des données utilisateur, les administrateurs peuvent effectuer des exportations de données utilisateur à l’aide du plugin Explorateur de données.
Ce processus implique la rédaction et l’exécution de requêtes SQL adaptées à des besoins de données spécifiques, tout en garantissant la conformité avec les politiques du site et les réglementations en matière de protection des données.
Les administrateurs peuvent également souhaiter exporter des données utilisateur pour d’autres raisons, telles que :
- Analyse de l’engagement des utilisateurs :
- Analyser comment les utilisateurs interagissent avec le site, quels messages sont populaires et quels sujets suscitent le plus de réponses.
- Génération de rapports :
- Créer des rapports personnalisés pour les parties prenantes afin de fournir des informations sur les métriques de la communauté et l’engagement des utilisateurs.
- Sauvegarde des données :
- Conserver des sauvegardes des données utilisateur à des fins de récupération ou d’analyse historique.
- Migration des données :
- Exporter les données utilisateur lors de la migration vers une autre plateforme ou de la création d’un entrepôt de données.
- Modération du contenu :
- Enquêter sur les activités ou le contenu des utilisateurs en cas de violation des politiques ou de litiges.
Considérations clés pour les requêtes d’exportation de données utilisateur
Lors de la rédaction de requêtes pour exporter des données utilisateur, il est important de prendre en compte à la fois les exigences spécifiques de l’exportation et les politiques de votre site concernant les exportations de données utilisateur.
Voici quelques facteurs et considérations qui peuvent influencer la manière dont les requêtes d’exportation de données utilisateur sont écrites :
- Attributs utilisateur :
- Si vous avez besoin d’attributs utilisateur spécifiques tels que le nom d’utilisateur, l’e-mail ou la date d’inscription, votre requête doit sélectionner explicitement ces colonnes dans la base de données. Par exemple :
SELECT username, email, created_at AS registration_date
FROM users
WHERE id = :user_id
- Données d’activité :
- Pour exporter les données d’activité utilisateur telles que les messages, les likes ou l’historique de connexion, des jointures supplémentaires avec des tables associées (par exemple,
posts,likes,user_actions) seront nécessaires :
- Pour exporter les données d’activité utilisateur telles que les messages, les likes ou l’historique de connexion, des jointures supplémentaires avec des tables associées (par exemple,
SELECT p.id AS post_id, p.topic_id, p.created_at AS post_date, u.username
FROM posts p
JOIN users u ON u.id = p.user_id
WHERE u.id = :user_id
- Période :
- Si vous avez besoin de données d’une période spécifique, incluez des filtres de date dans votre requête pour limiter les résultats à la période pertinente :
SELECT username, email, created_at AS registration_date
FROM users
WHERE created_at BETWEEN :start_date AND :end_date
- Confidentialité des données :
- Assurez-vous que les données exportées sont conformes aux lois sur la confidentialité des données et aux politiques du site. Soyez prudent quant à l’inclusion de données sensibles, sauf si cela est absolument nécessaire.
- Anonymisation :
- Dans certains cas, vous devrez peut-être anonymiser les données utilisateur pour protéger la vie privée des utilisateurs. Par exemple, vous pourriez remplacer les noms par des identifiants uniques.
- Consentement de l’utilisateur :
- Assurez-vous qu’un mécanisme de consentement explicite est en place si l’exportation de données implique le partage d’informations personnelles ou sensibles sur les utilisateurs.
Exemples de requêtes
Vous trouverez ci-dessous quelques exemples de requêtes pour des besoins courants d’exportation de données. Ces requêtes sont conçues pour être similaires à l’exportation de données disponible à partir de la page des préférences d’un utilisateur :
Exporter les informations utilisateur :
-- [params]
-- int :user_id
SELECT id, username, email, created_at AS registration_date
FROM users
WHERE id = :user_id
Exporter les messages
-- [params]
-- int :user_id
SELECT
id,
topic_id,
post_number,
created_at,
updated_at,
reply_to_post_number,
reply_count,
quote_count,
deleted_at,
like_count,
incoming_link_count,
bookmark_count,
score,
reads,
post_type,
sort_order,
last_editor_id,
hidden,
hidden_reason_id,
notify_moderators_count,
spam_count,
illegal_count,
inappropriate_count,
last_version_at,
user_deleted,
reply_to_user_id,
percent_rank,
notify_user_count,
like_score,
deleted_by_id,
word_count,
version,
cook_method,
wiki,
baked_at,
baked_version,
hidden_at,
self_edits,
reply_quoted,
via_email,
public_version,
locked_by_id,
image_upload_id,
qa_vote_count,
raw,
cooked,
edit_reason,
raw_email,
action_code,
outbound_message_id
FROM
posts
WHERE
user_id = :user_id
ORDER BY
created_at DESC
Exporter les journaux de jetons d’authentification :
-- [params]
-- int :user_id
SELECT
path,
action,
user_auth_token_id,
client_ip,
user_agent,
auth_token,
created_at
FROM
user_auth_token_logs
WHERE
user_id = :user_id
Exporter les jetons d’authentification :
-- [params]
-- int :user_id
SELECT
auth_token,
client_ip,
rotated_at,
created_at,
updated_at,
seen_at,
auth_token_seen,
user_agent,
prev_auth_token
FROM
user_auth_tokens
WHERE
user_id = :user_id
Exporter les badges utilisateur :
-- [params]
-- int :user_id
SELECT
notification_id,
badge_id,
granted_at,
granted_by_id,
post_id,
seq,
featured_rank,
created_at,
is_favorite
FROM
user_badges
WHERE
user_id = :user_id
Exporter les signets utilisateur :
-- [params]
-- int :user_id
SELECT
name,
reminder_at,
created_at,
updated_at,
reminder_last_sent_at,
reminder_set_at,
auto_delete_preference,
pinned,
bookmarkable_id,
bookmarkable_type
FROM
bookmarks
WHERE
user_id = :user_id
Exporter les préférences de catégorie :
-- [params]
-- int :user_id
SELECT
category_id,
notification_level,
last_seen_at
FROM
category_users
WHERE
user_id = :user_id
Exporter les indicateurs :
-- [params]
-- int :user_id
SELECT
id,
name,
name_key,
description,
notify_type,
auto_action_type,
custom_type,
applies_to,
position,
enabled,
created_at,
updated_at,
score_type
FROM
flags
WHERE
id IN (
SELECT
post_action_type_id
FROM
post_actions
WHERE
user_id = :user_id
)
Exporter les likes :
-- [params]
-- int :user_id
SELECT
post_id,
post_action_type_id,
created_at,
updated_at,
deleted_at,
deleted_by_id,
related_post_id,
staff_took_action,
deferred_by_id,
targets_topic,
agreed_at,
agreed_by_id,
deferred_at,
disagreed_at,
disagreed_by_id
FROM
post_actions
WHERE
user_id = :user_id
AND post_action_type_id = 1
Exporter les préférences utilisateur :
-- [params]
-- int :user_id
SELECT
mailing_list_mode,
email_digests,
external_links_in_new_tab,
enable_quoting,
dynamic_favicon,
automatically_unpin_topics,
digest_after_minutes,
auto_track_topics_after_msecs,
new_topic_duration_minutes,
last_redirected_to_top_at,
email_previous_replies,
email_in_reply_to,
like_notification_frequency,
include_tl0_in_digests,
mailing_list_mode_frequency,
notification_level_when_replying,
theme_key_seq,
allow_private messages,
homepage_id,
theme_ids,
hide_profile_and_presence,
text_size_key,
text_size_seq,
email_level,
email_messages_level,
title_count_mode_key,
enable_defer,
timezone,
enable_allowed_pm_users,
dark_scheme_id,
skip_new_user_tips,
color_scheme_id,
default_calendar,
chat_enabled,
only_chat_push_notifications,
oldest_search_log_date,
chat_sound,
dismissed_channel_retention_reminder,
dismissed_dm_retention_reminder,
bookmark_auto_delete_preference,
ignore_channel_wide_mention,
chat_email_frequency,
enable_experimental_sidebar,
seen_popups,
chat_header_indicator_preference,
sidebar_link_to_filtered_list,
sidebar_show_count_of_new_items,
watched_precedence_over_muted,
chat_separate_sidebar_mode,
topics_unread_when_closed,
policy_email_frequency,
show_thread_title_prompts,
auto_image_caption
FROM
user_options
WHERE
user_id = :user_id
Exporter les messages mis en file d’attente :
-- [params]
-- int :user_id
SELECT
id,
user_id,
topic_id,
post_number,
raw,
created_at,
updated_at,
state,
error,
queue
FROM
queued_posts
WHERE
user_id = :user_id
Exporter l’archive utilisateur :
-- [params]
-- int :user_id
SELECT
id,
topic_id,
created_at,
updated_at
FROM
user_archived_messages
WHERE
user_id = :user_id
Exporter les visites utilisateur :
-- [params]
-- int :user_id
SELECT
visited_at,
posts_read,
mobile,
time_read
FROM
user_visits
WHERE
user_id = :user_id
Pour plus d’informations sur la création et l’exécution de requêtes d’exportation de données, veuillez consulter la documentation du plugin Discourse Data Explorer et la catégorie Data & reporting.