標準資料模型
標準資料模型是整個平台最重要的一層。
它定義公司內部對市場世界的正式語言,讓所有上層服務都能共享一致的資料語意。
設計目標
- 穩定,不追求一開始就完美
- 先定義核心欄位,再把 source-specific 欄位放進
metadata - 每個 entity 都要有 schema version
- event time 與 processing time 必須分開
優先定義的 entities
商品主檔
最重要的地基。
建議核心欄位:
instrument_idasset_classmarketvenuesymbolsymbol_aliasescurrencytick_sizelot_sizecontract_multiplierexpirystrikeoption_typeunderlying_idstatus
成交事件
建議核心欄位:
event_idinstrument_idevent_timeingest_timepricesizevenuesourcesource_event_idis_correctionmetadata
報價事件
建議核心欄位:
instrument_idevent_timebid_pricebid_sizeask_priceask_sizevenuesourcemetadata
K 線事件
建議核心欄位:
instrument_idtimeframestart_timeend_timeopenhighlowclosevolumetrade_countvwapsessionbar_statussourcemetadata
訂單事件
建議核心欄位:
order_idbroker_order_idstrategy_idinstrument_idevent_timeevent_typesideqtypricetifbrokeraccountreject_reasonmetadata
成交回報
建議核心欄位:
fill_idorder_idbroker_fill_idinstrument_idfill_timefill_pricefill_qtyfeesvenuesourcemetadata
設計原則
1. 內部 ID 優先
不要把外部 symbol 當主鍵;instrument_id 應是內部唯一識別。
2. 核心欄位少而穩
source 特殊欄位盡量放進 metadata,不要讓核心 schema 被 vendor 特例污染。
3. schema version 從第一天就存在
例如:
schema_nameschema_version
4. 定義語意,不只定義欄位名稱
例如 bar.close 必須明確說清楚:
- 是 event-time 聚合還是 ingest-time 聚合
- 是否允許 late event 重算
- 是否為 adjusted bar
- 是否只含 regular session
最值得優先落地的部分
第一批先完成:
- instrument master
- canonical trade schema
- canonical quote schema
- canonical bar schema