初始提交:飞球 ETL 系统全量代码

This commit is contained in:
Neo
2026-02-13 08:05:34 +08:00
commit 3c51f5485d
441 changed files with 117631 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
# dim_table 台桌主表
> 生成时间2026-01-28
## 表信息
| 属性 | 值 |
|------|-----|
| Schema | billiards_dwd |
| 表名 | dim_table |
| 主键 | table_id, scd2_start_time |
| 扩展表 | dim_table_ex |
| 记录数 | 74 |
| 说明 | 台桌维度主表,记录台桌名称、所属台区、单价等核心信息 |
## 字段说明
| 序号 | 字段名 | 类型 | 可空 | 主键 | 说明 |
|------|--------|------|------|------|------|
| 1 | table_id | BIGINT | NO | PK | 台桌 ID |
| 2 | site_id | BIGINT | YES | | 门店 ID → dim_site |
| 3 | table_name | TEXT | YES | | 台桌名称。**样本值**: "A1", "A2", "B1", "B2", "S1", "C1", "VIP1", "M3", "666" 等 |
| 4 | site_table_area_id | BIGINT | YES | | 台区 ID |
| 5 | site_table_area_name | TEXT | YES | | 台区名称。**样本值**: "A区", "B区", "补时长", "C区", "麻将房", "K包", "VIP包厢", "斯诺克区", "666", "k包活动区", "M7" 等 |
| 6 | tenant_table_area_id | BIGINT | YES | | 租户级台区 ID |
| 7 | table_price | NUMERIC(18,2) | YES | | 台桌单价(当前数据全为 0.00 |
| 8 | order_id | BIGINT | YES | | 订单 ID |
| 9 | scd2_start_time | TIMESTAMPTZ | NO | PK | SCD2 版本生效时间 |
| 10 | scd2_end_time | TIMESTAMPTZ | YES | | SCD2 版本失效时间 |
| 11 | scd2_is_current | INTEGER | YES | | 当前版本标记 |
| 12 | scd2_version | INTEGER | YES | | 版本号 |
## 台区分布
| 台区名称 | 台桌数量 | 大类/索引 |
|----------|----------|----------|
| A区 | 18 | 台球/打球/中八/追分 |
| B区 | 15 | 台球/打球/中八/追分 |
| 补时长 | 7 | 补时长 |
| C区 | 6 | 台球/打球/中八/追分 |
| 麻将房 | 5 | 麻将/麻将棋牌 |
| M7 | 2 | 麻将/麻将棋牌 |
| M8 | 1 | 麻将/麻将棋牌 |
| K包 | 4 | K包/K歌/KTV |
| VIP包厢 | 4 | 台球/打球/中八/追分 (V5为 台球/打球/斯诺克) |
| 斯诺克区 | 4 | 台球/打球/斯诺克 |
| 666 | 2 | 麻将/麻将棋牌 |
| TV台 | 1 | 台球/打球/中八/追分 |
| k包活动区 | 2 | K包/K歌/KTV |
| 幸会158 | 2 | K包/K歌/KTV |
| 发财 | 1 | 麻将/麻将棋牌 |
## 使用说明
**版本与最新值**
本表为 SCD2 维度表版本字段scd2_start_time / scd2_end_time / scd2_is_current / scd2_version。
- 最新版本scd2_is_current = 1
- 按业务主键取最新:按 scd2_start_time 倒序
```sql
-- 取某业务主键的最新版本
SELECT *
FROM billiards_dwd.dim_table
WHERE table_id = <value>
ORDER BY scd2_start_time DESC
LIMIT 1;
```
**使用示例**
```sql
-- 查询当前有效台桌
SELECT * FROM billiards_dwd.dim_table
WHERE scd2_is_current = 1;
-- 按台区统计台桌数
SELECT site_table_area_name, COUNT(*)
FROM billiards_dwd.dim_table
WHERE scd2_is_current = 1
GROUP BY site_table_area_name
ORDER BY COUNT(*) DESC;
```