Passer au contenu principal
En novembre 2021, YouTube a supprimé le décompte public des Je n’aime pas sur toutes ses vidéos. Si les créateurs peuvent toujours voir le nombre de Je n’aime pas, les internautes, eux, ne peuvent voir que le nombre de J’aime reçus par une vidéo.
Le jeu de données contient plus de 4,55 milliards d’enregistrements. Soyez donc prudent avant de simplement copier-coller les commandes ci-dessous, à moins que vos ressources ne puissent gérer un tel volume. Les commandes ci-dessous ont été exécutées sur une instance de production ClickHouse Cloud.
Les données sont au format JSON et peuvent être téléchargées depuis archive.org. Nous avons également mis ces données à disposition dans S3 afin qu’elles puissent être chargées plus efficacement dans une instance ClickHouse Cloud. Voici les étapes à suivre pour créer une table dans ClickHouse Cloud et y insérer les données.
Les étapes ci-dessous fonctionneront tout aussi bien sur une installation locale de ClickHouse. La seule modification consiste à utiliser la fonction s3 au lieu de s3cluster (sauf si vous avez un cluster configuré — dans ce cas, remplacez default par le nom de votre cluster).

Instructions pas à pas

1

Exploration des données

Voyons à quoi ressemblent les données. La fonction de table s3cluster renvoie une table ; nous pouvons donc DESCRIBE le résultat :
ClickHouse déduit le schéma suivant du fichier JSON :
2

Créer la table

À partir du schéma inféré, nous avons simplifié les types de données et ajouté une clé primaire. Définissez la table suivante :
3

Insérer des données

La commande suivante ingère en flux les enregistrements des fichiers S3 dans la table youtube.
Cela insère beaucoup de données - 4,65 milliards de lignes. Si vous ne voulez pas l’ensemble des données, ajoutez simplement une clause LIMIT avec le nombre de lignes souhaité.
Quelques remarques sur notre commande INSERT :
  • La fonction parseDateTimeBestEffortUSOrZero est pratique lorsque les champs de date entrants risquent de ne pas être au bon format. Si fetch_date n’est pas correctement interprété, il sera défini sur 0
  • La colonne upload_date contient des dates valides, mais aussi des chaînes comme “4 hours ago” — ce qui n’est évidemment pas une date valide. Nous avons choisi de stocker la valeur d’origine dans upload_date_str et de tenter de l’interpréter avec toDate(parseDateTimeBestEffortUSOrZero(upload_date::String)). Si l’analyse échoue, nous obtenons simplement 0
  • Nous avons utilisé ifNull pour éviter d’avoir des valeurs NULL dans notre table. Si une valeur entrante est NULL, la fonction ifNull la remplace par une chaîne vide
4

Compter le nombre de lignes

Ouvrez un nouvel onglet dans la SQL Console de ClickHouse Cloud (ou une nouvelle fenêtre clickhouse-client) et regardez le total augmenter. L’insertion de 4,56 milliards de lignes prendra un certain temps, en fonction des ressources de votre serveur. (Sans aucun ajustement des paramètres, cela prend environ 4,5 heures.)
5

Explorer les données

Une fois les données insérées, comptez le nombre de « Je n’aime pas » sur vos vidéos ou chaînes préférées. Voyons combien de vidéos ClickHouse a mises en ligne :
La requête ci-dessus s’exécute aussi rapidement parce que nous avons choisi uploader comme première colonne de la clé primaire : elle n’a donc eu à traiter que 237k lignes.
Examinons les J’aime et les Je n’aime pas des vidéos ClickHouse :
La réponse se présente ainsi :
Voici une recherche de vidéos contenant ClickHouse dans les champs title ou description :
Cette requête doit traiter chaque ligne et analyser également deux colonnes de chaînes de caractères. Malgré cela, nous obtenons des performances correctes, à 4,15 M lignes/seconde :
Les résultats se présentent ainsi :

Questions

Si quelqu’un désactive les commentaires, cela réduit-il les chances que quelqu’un clique sur J’aime ou Je n’aime pas ?

Lorsque les commentaires sont désactivés, les gens sont-ils plus enclins à cliquer sur J’aime ou Je n’aime pas pour exprimer ce qu’ils ressentent face à une vidéo ?
L’activation des commentaires semble corrélée à un taux d’engagement plus élevé.

Comment le nombre de vidéos évolue-t-il au fil du temps, et quels sont les événements notables ?

Un pic du nombre de comptes publiant des vidéos autour du Covid est notable.

Plus de sous-titres au fil du temps, et à partir de quand

Grâce aux progrès de la reconnaissance vocale, il est plus facile que jamais de créer des sous-titres pour les vidéos. YouTube ayant ajouté le sous-titrage automatique fin 2009, est-ce à ce moment-là que le bond s’est produit ?
Les résultats montrent un pic en 2009. Apparemment, à cette époque, YouTube supprimait sa fonctionnalité de sous-titres communautaires, qui permettait de téléverser des sous-titres pour la vidéo d’autres personnes. Cela a déclenché une campagne très fructueuse visant à inciter les créateurs à ajouter des sous-titres à leurs vidéos pour les spectateurs malentendants et sourds.

Principaux comptes publiant des vidéos au fil du temps

Comment le ratio de J’aime évolue-t-il à mesure que le nombre de vues augmente ?

Comment les vues sont-elles réparties ?

Dernière modification le 1 juillet 2026