Skip to main content
All quickstarts
Analytique en temps réelEntrepôt de donnéesCloudOSS

Vue d’ensemble

Découvrez comment ingérer et interroger des données dans ClickHouse à l’aide du jeu de données d’exemple sur les taxis de New York.

Prérequis

Pour suivre ce tutoriel, vous devez avoir accès à un service ClickHouse en cours d’exécution. Consultez le guide Quick Start pour obtenir les instructions.
1

Créer une table

Le jeu de données des taxis de New York contient des informations sur des millions de courses, notamment le montant des pourboires, les péages, le type de paiement et bien plus encore. Créez une table pour stocker ces données.
  1. Connectez-vous à la console SQL :
    • Dans ClickHouse Cloud, sélectionnez un service dans le menu déroulant, puis SQL Console dans le menu de navigation de gauche.
    • Pour une instance ClickHouse autogérée, connectez-vous à la console SQL à l’adresse https://_hostname_:8443/play. Renseignez-vous auprès de votre administrateur ClickHouse.
  2. Créez la table trips suivante dans la base de données default :
2

Ajouter le jeu de données

Maintenant que vous avez créé une table, ajoutez les données des taxis de New York à partir de fichiers CSV stockés dans S3.
  1. La commande suivante insère environ 2 000 000 lignes dans votre table trips à partir de deux fichiers distincts dans S3 : trips_1.tsv.gz et trips_2.tsv.gz :
  2. Attendez la fin de l’opération INSERT. Le téléchargement des 150 Mo de données peut prendre un moment.
  3. Une fois l’insertion terminée, vérifiez qu’elle a réussi :
    Cette requête devrait renvoyer 1 999 657 lignes.
3

Analyser les données

Exécutez quelques requêtes pour analyser les données. Explorez les exemples suivants ou essayez votre propre requête SQL.
  • Calculez le montant moyen des pourboires :

  • Calculez le coût moyen en fonction du nombre de passagers :

    passenger_count est compris entre 0 et 9 :

  • Calculez le nombre quotidien de courses prises en charge par quartier :

  • Calculez la durée de chaque trajet en minutes, puis regroupez les résultats par durée de trajet :

  • Affichez le nombre de courses prises en charge dans chaque quartier, ventilé par heure de la journée :

  1. Récupérez les trajets vers les aéroports LaGuardia ou JFK :

4

Créer un dictionnaire

Un dictionary est un mapping de key-value pairs stockées en mémoire. Pour plus de détails, voir DictionariesCréez un dictionnaire associé à une table dans votre service ClickHouse. La table et le dictionnaire s’appuient sur un fichier CSV contenant une ligne par quartier de New York.Les neighborhoods sont associés aux noms des cinq boroughs de New York (Bronx, Brooklyn, Manhattan, Queens et Staten Island), ainsi qu’à l’aéroport de Newark (EWR).Voici un extrait du fichier CSV que vous utilisez, présenté sous forme de table. La colonne LocationID du fichier correspond aux colonnes pickup_nyct2010_gid et dropoff_nyct2010_gid de votre table trips :
  1. Exécutez la commande SQL suivante, qui crée un dictionnaire nommé taxi_zone_dictionary et le peuple à partir du fichier CSV stocké dans S3. L’URL du fichier est https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/taxi_zone_lookup.csv.
Définir LIFETIME sur 0 désactive les mises à jour automatiques afin d’éviter un trafic inutile vers notre bucket S3. Dans d’autres cas, vous pouvez le configurer différemment. Pour plus de détails, consultez Actualisation des données du dictionnaire à l’aide de LIFETIME.
  1. Vérifiez que cela a fonctionné. La requête suivante doit renvoyer 265 lignes, soit une ligne pour chaque quartier :
  2. Utilisez la fonction dictGet (ou l’une de ses variantes) pour récupérer une valeur dans un dictionnaire. Indiquez le nom du dictionnaire, la valeur souhaitée et la clé (qui, dans notre exemple, correspond à la colonne LocationID de taxi_zone_dictionary). Par exemple, la requête suivante renvoie le Borough dont le LocationID est 132, correspondant à l’aéroport JFK :
    JFK se trouve dans le Queens. Notez que le temps nécessaire pour récupérer la valeur est pratiquement nul :
  3. Utilisez la fonction dictHas pour vérifier si une clé est présente dans le dictionnaire. Par exemple, la requête suivante renvoie 1 (qui correspond à “true” dans ClickHouse) :
  4. La requête suivante renvoie 0, car 4567 n’est pas une valeur de LocationID dans le dictionnaire :
  5. Utilisez la fonction dictGet pour récupérer le nom d’un borough dans une requête. Exemple :
    Cette requête calcule le nombre total de trajets en taxi par arrondissement qui se terminent aux aéroports de LaGuardia ou de JFK. Le résultat se présente comme suit ; notez qu’un nombre assez important de trajets ont un quartier de prise en charge inconnu :
5

Effectuer une jointure

Écrivez quelques requêtes qui joignent le dictionnaire taxi_zone_dictionary à votre table trips.
  1. Commencez par une simple jointure JOIN qui fonctionne de manière similaire à la requête précédente sur les aéroports :
    La réponse est identique à celle de la requête dictGet :
Notez que le résultat de la requête JOIN ci-dessus est identique à celui de la requête précédente utilisant dictGetOrDefault (à ceci près que les valeurs Unknown ne sont pas incluses). En interne, ClickHouse appelle en fait la fonction dictGet pour le dictionnaire taxi_zone_dictionary, mais la syntaxe JOIN est plus familière aux développeurs SQL.
  1. Cette requête renvoie les lignes correspondant aux 1 000 trajets dont le montant du pourboire est le plus élevé, puis effectue une jointure interne entre chaque ligne et le dictionnaire :
En règle générale, évitez d’utiliser fréquemment SELECT * dans ClickHouse. Ne récupérez que les colonnes dont vous avez réellement besoin.

Étapes suivantes

Pour en savoir plus sur ClickHouse, consultez la documentation suivante :
Last modified on August 14, 2026