Real-Time Market AnalyticsClickHouse Workshops

02 创建表

用一条 CREATE TABLE 承载 2650 万条外汇 tick,以及为什么 base 和 quote 排在 sort key 最前面,这个决定你会在模块 04 亲身体会到。

先创建一张空表来存放外汇 tick 数据。打开 SQL Console,粘贴下面的语句并运行。

-- 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);

为什么这样设计? base 和 quote 排在 ORDER BY 最前面,也就是这张表的 sort key。 这意味着按货币对加时间范围过滤时,ClickHouse 可以跳过几乎所有数据。你会在 模块 04 的最后一条查询 里看到这一点到底有多重要。

你应该看到

Ok.,表已创建,目前是空的。接下来你要把数据填进去。

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

ZH