4.0 KiB
4.0 KiB
BD_Manual:goods_stock_movements(库存变动流水)
ODS 表:
ods.goods_stock_movementsDWD 表:dwd.dwd_goods_stock_movement(事实表,无 ex 扩展表) API 接口:库存变动记录列表 JSON 路径:goods_stock_movements.json → data.goodsStockList装载方式:事实表按create_time增量加载(DwdLoadTask) 代码位置:apps/etl/connectors/feiqiu/tasks/dwd/dwd_load_task.py
1. dwd_goods_stock_movement
| DWD 列名 | 类型 | ODS 源列 | 映射方式 | 业务含义 | 取值范围/示例 |
|---|---|---|---|---|---|
site_goods_stock_id |
BIGINT | sitegoodsstockid(ODS 驼峰 → PG 小写) |
FACT_MAPPINGS (cast bigint) | 库存变动记录唯一标识(PK) | 飞球雪花 ID |
tenant_id |
BIGINT | tenantid |
FACT_MAPPINGS (cast bigint) | 租户 ID | 飞球租户 ID |
site_id |
BIGINT | siteid |
FACT_MAPPINGS (cast bigint) | 门店 ID | 飞球门店 ID |
site_goods_id |
BIGINT | sitegoodsid |
FACT_MAPPINGS (cast bigint) | 门店商品 ID,关联 dim_store_goods.site_goods_id |
飞球商品 ID |
goods_name |
TEXT | goodsname |
FACT_MAPPINGS | 商品名称 | 如 百威啤酒 |
goods_category_id |
BIGINT | goodscategoryid |
FACT_MAPPINGS (cast bigint) | 一级商品分类 ID | 飞球分类 ID |
goods_second_category_id |
BIGINT | goodssecondcategoryid |
FACT_MAPPINGS (cast bigint) | 二级商品分类 ID | 飞球分类 ID |
unit |
TEXT | unit |
FACT_MAPPINGS | 计量单位 | 如 瓶、包、张 |
price |
NUMERIC(18,4) | price |
FACT_MAPPINGS (cast numeric) | 商品单价(元) | 金额值 |
stock_type |
INTEGER | stocktype |
FACT_MAPPINGS (cast integer) | 库存变动类型枚举(详见下方枚举表) | 1/2/4/7/8/9 |
change_num |
NUMERIC(18,4) | changenum |
FACT_MAPPINGS (cast numeric) | 变动数量(正数为增加,负数为减少) | 正/负数值 |
start_num |
NUMERIC(18,4) | startnum |
FACT_MAPPINGS (cast numeric) | 变动前库存量 | 0.0000 ~ 正数 |
end_num |
NUMERIC(18,4) | endnum |
FACT_MAPPINGS (cast numeric) | 变动后库存量 | 0.0000 ~ 正数 |
change_num_a |
NUMERIC(18,4) | changenuma |
FACT_MAPPINGS (cast numeric) | 辅助单位变动量(用于双单位商品,如"箱→瓶"换算) | 数值或 0 |
start_num_a |
NUMERIC(18,4) | startnuma |
FACT_MAPPINGS (cast numeric) | 辅助单位变动前库存 | 数值或 0 |
end_num_a |
NUMERIC(18,4) | endnuma |
FACT_MAPPINGS (cast numeric) | 辅助单位变动后库存 | 数值或 0 |
remark |
TEXT | remark |
FACT_MAPPINGS | 备注说明 | 如 结账退货、采购退货、系统自动领用,或 NULL |
operator_name |
TEXT | operatorname |
FACT_MAPPINGS | 操作人姓名 | 姓名或 NULL |
create_time |
TIMESTAMPTZ | createtime |
FACT_MAPPINGS (cast timestamptz) | 变动发生时间 | ISO 时间戳 |
fetched_at |
TIMESTAMPTZ | fetched_at |
自动映射 | ETL 采集时间戳 | ISO 时间戳 |
2. stock_type 枚举值详解
| stock_type | 含义 | 典型 remark | 数据量 |
|---|---|---|---|
| 1 | 销售出库 | NULL(系统自动扣减) | 29,573 条 |
| 2 | 采购入库 | NULL | 1,033 条 |
| 4 | 退货入库 | 结账退货 |
3,300 条 |
| 7 | 采购退货(出库) | 采购退货 |
33 条 |
| 8 | 领用出库 | 系统自动领用 |
1,033 条 |
| 9 | 领用退回(入库) | 系统自动领用退回 |
33 条 |
3. ODS 列名映射说明
ODS DDL 中列名使用驼峰式(如 siteGoodsStockId),PostgreSQL 在无引号时自动小写化。FACT_MAPPINGS 中使用带引号的 ODS 列名以正确引用。部分列(unit、price、remark)在 ODS 中已是小写,无需引号。
4. 代码引用
- FACT_MAPPINGS:
dwd_load_task.py→FACT_MAPPINGS["dwd.dwd_goods_stock_movement"] - TABLE_MAP:
"dwd.dwd_goods_stock_movement" → "ods.goods_stock_movements" - DWS 下游:暂无直接 DWS 汇总(库存汇总基于
dwd_goods_stock_summary)