# ClickHouse 数仓表说明

## 数据库定位

ClickHouse 用于后台统计、运营报表、风控分析和大批量明细查询，不参与下注扣款主事务。数据由 warehouse-writer 从 Redpanda/Kafka 消费写入。

## 核心表

### dwd_bet_orders 注单明细表

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| event_date | Date | 分区日期 |
| bet_order_id | String | 注单号 |
| merchant_id | UInt64 | 商户 ID |
| player_id | UInt64 | 玩家 ID |
| game_code | String | 游戏编码 |
| bet_amount | Decimal(28, 8) | 下注金额 |
| win_amount | Decimal(28, 8) | 派彩金额 |
| status | String | 注单状态 |
| event_time | DateTime64(3) | 事件时间 |

### dwd_wallet_ledger 账本明细表

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| event_date | Date | 分区日期 |
| ledger_id | UInt64 | 流水 ID |
| account_id | UInt64 | 钱包账户 ID |
| order_id | String | 关联订单 |
| change_amount | Decimal(28, 8) | 变动金额 |
| balance_after | Decimal(28, 8) | 变动后余额 |
| biz_type | String | 业务类型 |
| event_time | DateTime64(3) | 事件时间 |

## 查询原则

- 后台统计优先读 ClickHouse。
- 大查询必须分页、限流或异步导出。
- ClickHouse 数据延迟不能反向影响玩家下注链路。

## 示例 SQL

```sql
select merchant_id, game_code, sum(bet_amount), sum(win_amount)
from dwd_bet_orders
where event_date = today()
group by merchant_id, game_code;
```
