S0DimValueKind.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. namespace Admin.NET.Plugin.AiDOP.DataPlatform.S0Dim;
  2. /// <summary>
  3. /// dim 列的取值方式,决定 <see cref="S0DimSqlBuilder"/> 为该列生成哪种 SQL 表达式。
  4. /// 除 <see cref="TenantIdColumn"/> 外全部作用于 staging 的 <c>raw_data</c> JSON,
  5. /// 底层统一走 <see cref="MdpJsonSql"/>(已处理 JSON null → 字符串 'null'、ISO-T 时间、STRICT CAST)。
  6. /// </summary>
  7. public enum S0DimValueKind
  8. {
  9. /// <summary>取 staging 的物理列 <c>s.tenant_id</c>,不走 raw_data。租户身份的唯一来源。</summary>
  10. TenantIdColumn,
  11. /// <summary>可空字符串。</summary>
  12. Str,
  13. /// <summary>可空整数(SIGNED)。</summary>
  14. Int,
  15. /// <summary>可空 DECIMAL(Precision, Scale)。</summary>
  16. Dec,
  17. /// <summary>秒级 datetime(源侧微秒被截断,与对账口径一致)。</summary>
  18. DateTimeSec,
  19. /// <summary>
  20. /// 布尔判真,产出 1/0。
  21. /// ⚠️ <see cref="MdpJsonSql.BoolTrue"/> 会把 JSON null / 无法识别的值**静默判为 0**。
  22. /// 为杜绝静默失真,<see cref="S0DimSqlBuilder"/> 对本类型**强制追加可辨识性守卫**
  23. /// (原始值必须是 1/0/true/false 之一),不满足的行被过滤掉 →
  24. /// 触发 <c>dim_count &lt; stg_count</c> → 对账 FAIL,问题被暴露而非被吞掉。
  25. /// </summary>
  26. BoolTrue
  27. }