Files
Neo-ZQYY/.kiro/specs/etl-staff-dimension/requirements.md

4.5 KiB
Raw Permalink Blame History

需求文档ETL 员工维度表staff_info

概述

为飞球 ETL 连接器新增"员工"维度表,从上游 SearchSystemStaffInfo API 抓取球房员工数据,经 ODS 落地后清洗装载至 DWD 层,走 SCD2 缓慢变化维度。

用户故事

US-1API 对接与 ODS 落地

作为 ETL 开发者,我需要将 SearchSystemStaffInfo API 融入现有 API 请求框架,并将原始数据落地到 ODS 层,以便后续清洗使用。

验收标准:

  • 1.1 在 ODS_TASK_SPECS 中新增 ODS_STAFF_INFO 任务规格endpoint 为 /PersonnelManagement/SearchSystemStaffInfo
  • 1.2 API 请求体包含必要的筛选参数(workStatusEnumstaffIdentity 等),使用现有 APIClient.iter_paginated 分页机制
  • 1.3 ODS 表 ods.staff_info_master 包含 API 返回的所有业务字段 + ETL 元数据列(content_hashsource_filefetched_atpayload
  • 1.4 任务配置为 snapshot_mode=FULL_TABLE(全量快照,无时间窗口),requires_window=False
  • 1.5 在 DEFAULT_LIST_KEYS 中添加 staffProfilesAPI 响应的列表键名)
  • 1.6 在 ENABLED_ODS_CODES 中注册 ODS_STAFF_INFO

US-2DWD 维度表设计与 SCD2 装载

作为数据分析师,我需要一张清洗后的员工维度表,以便在 DWS 汇总层关联员工信息。

验收标准:

  • 2.1 创建 dwd.dim_staff 主表,包含核心业务字段(员工 ID、姓名、手机号、角色、门店、在职状态等+ SCD2 列
  • 2.2 创建 dwd.dim_staff_ex 扩展表,包含次要/低频变更字段 + SCD2 列
  • 2.3 在 DwdLoadTask.TABLE_MAP 中注册 dwd.dim_staffods.staff_info_masterdwd.dim_staff_exods.staff_info_master 的映射
  • 2.4 在 DwdLoadTask.FACT_MAPPINGS 中配置字段映射ODS 列名 → DWD 列名,含必要的类型转换)
  • 2.5 DWD 装载走 SCD2 合并路径,变更检测正常工作

US-3DDL 创建与归档

作为 DBA我需要 ODS 和 DWD 层的 DDL 被正确创建并归档到项目文档中。

验收标准:

  • 3.1 编写 ODS 层 DDLods.staff_info_master),在测试库执行
  • 3.2 编写 DWD 层 DDLdwd.dim_staffdwd.dim_staff_ex),在测试库执行
  • 3.3 DDL 归档至 docs/database/ddl/etl_feiqiu__ods.sqldocs/database/ddl/etl_feiqiu__dwd.sql
  • 3.4 编写迁移脚本至 db/etl_feiqiu/migrations/(日期前缀)

US-4文档增补

作为团队成员,我需要所有相关文档同步更新,以便理解新增的数据流。

验收标准:

  • 4.1 新增 ODS mapping 文档:apps/etl/connectors/feiqiu/docs/database/ODS/mappings/mapping_SearchSystemStaffInfo_staff_info_master.md
  • 4.2 新增 ODS BD_manual 文档:apps/etl/connectors/feiqiu/docs/database/ODS/main/BD_manual_staff_info_master.md
  • 4.3 新增 DWD BD_manual 文档:apps/etl/connectors/feiqiu/docs/database/DWD/main/BD_manual_dim_staff.md
  • 4.4 更新 apps/etl/connectors/feiqiu/docs/database/README.md,增加员工表条目
  • 4.5 更新 apps/etl/connectors/feiqiu/docs/etl_tasks/ods_tasks.md,增加 ODS_STAFF_INFO 任务说明
  • 4.6 更新 docs/database/README.md,增加员工相关表的条目
  • 4.7 新增 DWD BD_manual 扩展表文档:apps/etl/connectors/feiqiu/docs/database/DWD/main/BD_manual_dim_staff_ex.md(如有扩展表)

API 信息

属性
URL https://pc.ficoo.vip/apiprod/admin/v1/PersonnelManagement/SearchSystemStaffInfo
方法 POST
端点路径 /PersonnelManagement/SearchSystemStaffInfo
认证 Bearer Token标准飞球 API 认证)
分页 page + limit(与现有接口一致)

请求体参数

参数 类型 默认值 说明
workStatusEnum int 0 在职状态筛选0=全部)
dingTalkSynced int 0 钉钉同步状态0=全部)
staffIdentity int 0 员工身份筛选0=全部)
rankId int 0 职级筛选0=全部)
criticismStatus int 0 批评状态0=全部)
signStatus int -1 签约状态(-1=全部)
page int 1 页码
limit int 50 每页条数

技术约束

  • 员工表为维度表DWD 层走 SCD2
  • ODS 使用 SnapshotMode.FULL_TABLE(全量快照软删除)
  • 不需要时间窗口(requires_window=Falsetime_fields=None
  • 主键为 id(员工 ID
  • API 响应结构已确认:data.staffProfiles 为列表键,data.total 为总数
  • 员工表与助教表(assistant_accounts_master)是完全独立的实体
  • DWD 层拆分为主表(dim_staff+ 扩展表(dim_staff_ex