Real-Time Market AnalyticsClickHouse Workshops

03 Charger les données — deux méthodes

Les mêmes 26,5 millions de ticks chargés deux fois : d'abord avec ClickPipes, le pipeline géré que vous utiliseriez en production, puis avec un simple appel à s3() — et quand choisir chaque méthode.

Les données se trouvent dans un bucket S3 public : aucune clé ni aucun identifiant n'est nécessaire, il suffit d'indiquer l'URL. Le transfert s'effectue côté serveur, de S3 vers ClickHouse ; 26,5 millions de lignes ne transitent donc ni par votre ordinateur ni par le Wi-Fi du lieu.

Vous allez charger les mêmes 26,5 millions de ticks de deux façons différentes afin de les comparer. La méthode 1 utilise ClickPipes, le pipeline géré et guidé par l'interface que vous emploieriez en production. La méthode 2 tient en une seule ligne de SQL : le moyen le plus rapide de charger des données pendant une démonstration. Suivez cet ordre ; un TRUNCATE entre les deux préserve le bon nombre de lignes.

Méthode 1 — ClickPipes, la méthode gérée pour la production

ClickPipes est un service d'ingestion entièrement géré : pointez-le vers un stockage objet ou un stream, et il poursuit le chargement sans connecteur à développer. Voici le parcours complet.

  1. Dans le menu de gauche, cliquez sur Data sources, puis sur Create ClickPipe.

Page Data sources de ClickHouse Cloud avec le bouton Create ClickPipe mis en évidence

La page Data sources contient également « Upload file » et « Add sample data ».

  1. Sous Select the data source, choisissez Amazon S3 (en tête de la liste Popular).

Étape Select the data source montrant Amazon S3 comme première option populaire

  1. Dans Setup your ClickPipe connection, saisissez n'importe quel name, définissez Authentication method → Public (le bucket est public), puis collez ce qui suit dans S3 file path :
https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet

Laissez Continuous ingestion désactivé — il s'agit d'un fichier unique — puis cliquez sur Incoming data →.

Configuration de la connexion ClickPipe : nom, Authentication method sur Public et chemin du fichier S3 renseigné

  1. Dans Incoming data, ClickHouse affiche un aperçu du fichier correspondant : vous verrez fx/ticks.parquet avec 158,43 Mo. Confirmez File type → Parquet, conservez la compression Detect automatically, puis cliquez sur Parse information →.

Étape Incoming data affichant fx/ticks.parquet de 158,43 Mo avec File type défini sur Parquet

  1. Dans Parse information, ClickHouse affiche une ligne d'exemple et détecte les colonnes. Sous Upload data to, choisissez Existing table, sélectionnez la Database contenant votre table (généralement default) et définissez Table → forex. Vérifiez que les champs source (datetime, bid, ask, base, quote) correspondent aux colonnes de même nom — le mappage doit être automatique. Ne mappez pas les champs supplémentaires _path / _file / _size. Cliquez ensuite sur Details and settings →.

Étape Parse information : Upload data to sur Existing table, base et table forex sélectionnées, champs source mappés

La capture affiche la base techthai du présentateur ; utilisez celle qui contient votre table.

  1. Dans Details and settings, conservez les Permissions par défaut (ClickPipes crée pour vous un utilisateur dédié à l'écriture), puis cliquez sur Create ClickPipe.

Étape Details and settings montrant Permissions et le bouton Create ClickPipe

Aucun job Spark, aucun chargeur personnalisé.

  1. Vous revenez à Data sources, où apparaît votre ClickPipe. En quelques secondes, son Status passe à Completed et Records indique 26 488 218 : tous les ticks ont été chargés depuis le stockage objet.

Liste Data sources montrant le ClickPipe avec le statut Completed et 26 488 218 enregistrements

Contrôlez le chargement. Exécutez ceci dans SQL Console :

-- expect 26,488,218 ticks across 12 pairs
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;

Résultat attendu

ticks = 26 488 218 et pairs = 12. Environ 26,5 millions de lignes ont été chargées depuis le stockage objet en quelques secondes.

Méthode 2 — une ligne avec s3(), la plus rapide en démonstration

Chargez maintenant exactement les mêmes données avec une seule instruction SQL, directement depuis le fichier public. Commencez par vider la table pour éviter de doubler le nombre de lignes, puis insérez :

-- clear the rows ClickPipes just loaded so we don't double up
TRUNCATE TABLE forex;

-- load all ~26.5M ticks from the public S3 file in one line (server-side)
INSERT INTO forex
SELECT * FROM s3('https://partner-workshop.s3.ap-southeast-1.amazonaws.com/fx/ticks.parquet', NOSIGN, 'Parquet');

-- and check again (expect 26,488,218)
SELECT count() AS ticks, uniqExact(concat(base,'/',quote)) AS pairs FROM forex;

NOSIGN signifie « sans identifiants » : c'est tout ce qu'il faut pour lire un bucket public. SELECT * fonctionne parce que l'ordre des colonnes de la table correspond à celui du fichier.

ClickPipes ou la fonction s3() — quand utiliser chaque solution

Les mêmes 26 488 218 lignes ont été chargées de deux façons. La différence réside dans ce qui se passe après le premier chargement : souhaitez-vous un pipeline continu et géré, ou une lecture rapide et ponctuelle ?

ClickPipesFonction de table s3()
Ce que c'estUn service d'ingestion entièrement géré, configuré dans la consoleUne fonction SQL appelée directement dans une requête
Idéal pourLes chargements continus de production que vous voulez configurer et laisser fonctionnerLes chargements ponctuels rapides, l'exploration ad hoc et les scripts
Nouveaux fichiers / continuitéPeut continuer à surveiller un bucket ou un stream et charger les nouvelles donnéesExécution unique : ne lit que ce qui existe à chaque lancement
ConfigurationInterface guidée, aucun SQL nécessaireUne seule instruction INSERT … SELECT
Suivi et nouvelles tentativesIntégrés : statut, gestion des erreurs et nouvelles tentatives dans la consoleAucun : vous devez la relancer en cas d'échec
SourcesNombreuses : S3, GCS, Azure, Kafka et autres streams, CDC Postgres/MySQL, etc.Stockage objet uniquement (fonctions apparentées : gcs(), azureBlobStorage(), url())

Règle pratique : choisissez ClickPipes lorsque les données continuent d'arriver et que vous souhaitez une solution gérée ; choisissez s3() pour récupérer immédiatement un fichier. Vous avez utilisé aujourd'hui la ligne unique afin d'interroger rapidement les données — passons aux requêtes.

Sur cette page

Suivre votre progression ?

Facultatif. Nous envoyons un lien par e-mail pour confirmer votre adresse ; la progression est enregistrée après son ouverture.

Utilisez votre adresse e-mail professionnelle, et non une adresse personnelle.

Le suivi de la progression exige aussi d’accepter les Conditions d’utilisation actuelles dans les Paramètres de confidentialité.

FR