02 Créer la table
Un CREATE TABLE pour 26,5 millions de ticks de change, et pourquoi base et quote ouvrent la clé de tri — une décision dont vous constaterez l'effet au module 04.
Commencez par créer une table vide pour stocker les ticks de change. Ouvrez SQL Console, collez l'instruction ci-dessous et exécutez-la.
-- 26.5M forex ticks (12 pairs incl. gold, Jan 2020); base+quote+time lead the sort key
CREATE TABLE forex
(
datetime DateTime64(3, 'UTC'), -- millisecond quote timestamp
bid Float64,
ask Float64,
base LowCardinality(String), -- e.g. 'EUR', 'XAU' (gold)
quote LowCardinality(String), -- e.g. 'USD', 'JPY'
pair String ALIAS concat(base, '/', quote), -- handy label, computed on read
spread Float64 ALIAS ask - bid, -- bid/ask spread
mid Float64 ALIAS (bid + ask) / 2 -- mid price
)
ENGINE = MergeTree
ORDER BY (base, quote, datetime);Pourquoi cette structure ? base et quote ouvrent le ORDER BY, c'est-à-dire la clé de
tri de la table. Ainsi, lorsque vous filtrez sur une paire de devises et une période, ClickHouse
peut ignorer presque toutes les données. Vous mesurerez précisément l'importance de ce choix dans
la dernière requête du module 04.
Résultat attendu
Ok. — la table est créée et vide. Vous allez maintenant la remplir.
01 Se connecter à ClickHouse Cloud
Créez un service ClickHouse Cloud gratuit et ouvrez SQL Console — environ cinq minutes et le seul prérequis pour toute la suite.
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.