38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
# 데이터 정합성·정규화·역정규화 실행계약
|
|
|
|
## L0~L7
|
|
|
|
| Layer | 내용 | 불변조건 |
|
|
|---|---|---|
|
|
| L0 | Source catalog/license/SLA/schema/timezone/unit | 승인 없는 소스 사용 금지 |
|
|
| L1 | Raw payload/hash/event/published/ingested | overwrite 금지 |
|
|
| L2 | Canonical PIT price/CA/fundamental/consensus/cost | revision+valid time |
|
|
| L3 | DQ/quarantine/lineage/dataset manifest | QUARANTINED 추천 금지 |
|
|
| L4 | Feature/Forecast/Risk/Evidence | data/model/config/code SHA |
|
|
| L5 | Ledger/Decision/Review/Publish/Fill/Outcome | append/reversal/correction event |
|
|
| L6 | UI/report Read Model | Owner/version/watermark/rebuild/staleness |
|
|
| L7 | Backtest/ModelCard/Release artifact | artifact hash |
|
|
|
|
## 정규화
|
|
|
|
원장·현금·Lot·주문·체결은 3NF와 append/reversal을 기본으로 한다. 현재상태와 이력, 추천과 공개, 모델버전과 승격 이벤트, 수수료 설정과 유효기간을 분리한다. `current=true` 하나로 과거값을 잃지 않는다.
|
|
|
|
## 역정규화
|
|
|
|
Read Model에만 허용한다. 화면 성능을 이유로 Source Table을 임의 join하거나 현재값을 복사하지 않는다. Projection은 `ProjectionName, Version, SourceWatermark, LastEventId, BuiltAt, ContentHash`를 보존하고 재구축·diff가 가능해야 한다.
|
|
|
|
## PIT 최소 필드
|
|
|
|
`source_event_time, published_at, ingested_at, effective_from/to, revision_no, source_id, content_hash, quality_status, tradable_session, dataset_id`.
|
|
|
|
## DQ Release Blocker
|
|
|
|
- same-session lookahead 0.
|
|
- 기업행사 가격·수량·원가·배당 공식대사.
|
|
- 가격수익/총수익 구분.
|
|
- 당시 유니버스와 상폐수익 포함.
|
|
- OHLC/단위/통화/비정상 gap 격리.
|
|
- key 중복·거래일 결측·watermark 연속성.
|
|
- Fee/Tax/FX valid-time.
|
|
- 동일 dataset/code/config hash 결과 재현.
|