電商平臺560GB/日數(shù)據(jù)分層存儲方案設計
假設你負責設計一個電商平臺的數(shù)據(jù)存儲方案,該平臺每日產(chǎn)生用戶行為數(shù)據(jù) 500GB,交易數(shù)據(jù) 50GB,商品數(shù)據(jù) 10GB。
業(yè)務方提出以下需求:近 7 天的數(shù)據(jù)的某些累加指標需要支持毫秒級、數(shù)千 QPS 的查詢響應;近 30 天的數(shù)據(jù)需要支持秒級的復雜分析查詢;歷史數(shù)據(jù)需要保存 3 年用于合規(guī)審計;
請設計一個分層存儲方案,說明你如何在容量、性能、成本三者間進行權(quán)衡,并解釋你的決策理由。
1. 核心需求簡化
?數(shù)據(jù)量:每天約 560GB(用戶行為 500GB + 交易 50GB + 商品 10GB)。
?業(yè)務需求:
近 7 天數(shù)據(jù):毫秒級響應,支持數(shù)千 QPS(如 PV/UV 等累加指標查詢)。
近 30 天數(shù)據(jù):秒級響應,支持復雜分析(如用戶行為分析、交易漏斗)。
30 天以上歷史數(shù)據(jù):長期存儲 3 年(合規(guī)審計,訪問少,成本低)。
2. 分層存儲方案(簡化版)
層級 | 數(shù)據(jù)范圍 | 存儲方案 | 性能要求 | 成本優(yōu)化 | 決策理由 |
熱層(0 - 7 天) | 最新 7 天數(shù)據(jù) | Redis(緩存累加指標) + ClickHouse(實時分析) | 毫秒級,支持數(shù)千 QPS | 較高(內(nèi)存/SSD) | 必須滿足高并發(fā)低延遲,用高性能存儲(Redis 緩存熱點,ClickHouse 加速分析) |
溫層(8 - 30 天) | 8 - 30 天數(shù)據(jù) | ClickHouse / 數(shù)據(jù)湖(Parquet + S3) | 秒級復雜查詢 | 中等(列式存儲/對象存儲) | 支持分析查詢,用列式存儲(ClickHouse)或低成本數(shù)據(jù)湖(Parquet + S3) |
冷層(30 天以上) | 30 天~3 年歷史 | 對象存儲(S3/OSS) | 低頻訪問,允許延遲 | 最低(對象存儲) | 合規(guī)存儲,訪問極少,用最便宜的對象存儲(如 AWS S3/OSS) |
3. 容量、性能、成本權(quán)衡
熱層(7 天):
?容量:560GB × 7 ≈ 4TB(較小,可接受高成本)。
?性能:必須毫秒級(如 Redis 緩存 UV/PV),數(shù)千 QPS(高并發(fā))。
?成本:較高(Redis 內(nèi)存/ClickHouse SSD),但只存 7 天,可控
溫層(30 天):
?容量:560GB × 23 ≈ 13TB(中等)。
?性能:秒級分析(如用戶行為分析),可用列式存儲(ClickHouse)或數(shù)據(jù)湖(Parquet + S3)。
?成本:比熱層低(列式存儲壓縮率高,數(shù)據(jù)湖更便宜)。
冷層(3 年以上):
?容量:560GB × 1095 ≈ 600TB(超大)。
?性能:低頻訪問,允許分鐘級延遲(合規(guī)存儲)。
?成本:最低(對象存儲 S3/OSS,按量付費,壓縮存儲)。
4. 關(guān)鍵決策理由
熱層(7 天):
?為什么用 Redis + ClickHouse?
Redis 緩存累加指標(如 UV/PV),保證毫秒級響應。
ClickHouse 加速實時分析(如用戶行為統(tǒng)計),支撐數(shù)千 QPS。
為什么不用普通數(shù)據(jù)庫?
?MySQL 等無法支撐高并發(fā) + 低延遲,成本太高。
溫層(30 天):
為什么用列式存儲?
?ClickHouse/Doris 對復雜分析(多維統(tǒng)計)更高效,比行式數(shù)據(jù)庫快 10 倍 +。
為什么考慮數(shù)據(jù)湖?
?如果分析需求不極端,Parquet + S3 更便宜(適合未來擴展)。
冷層(3 年以上)
?為什么用對象存儲?
S3/OSS 成本最低($0.01/GB/月),適合長期合規(guī)存儲。
?為什么不存本地?
?600TB 本地存儲成本太高,對象存儲彈性擴展,按需付費。
5. 最終方案一句話總結(jié)
?7 天內(nèi):Redis(緩存) + ClickHouse(分析)→ 高性能,支撐高并發(fā)查詢。
?30 天內(nèi):ClickHouse/數(shù)據(jù)湖 → 秒級分析,平衡性能與成本。
?30 天以上:對象存儲(S3/OSS)→ 最低成本,長期合規(guī)存儲。
- 這樣設計,既滿足了業(yè)務的高性能需求,又控制了整體存儲成本




























