Real-Time Market AnalyticsClickHouse Workshops

02 테이블 만들기

26.5M건의 forex 틱을 담을 CREATE TABLE 한 번, 그리고 base와 quote가 sort key 앞에 오는 이유 — 모듈 04에서 체감하게 되는 결정입니다.

먼저 forex 틱을 담을 빈 테이블을 만듭니다. 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.

KO