1.0.278.sql 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. -- 1.0.278:KPI SQL 配置化计算引擎(AIDOP-KPI-SQL-CONFIG-RUNTIME-1)。
  2. -- 表结构由 CodeFirst(EnableInitTable=true)从实体创建;本项目 EnableUnderLine=false → 列名 PascalCase。
  3. -- 下方 CREATE TABLE IF NOT EXISTS 为兜底(CodeFirst 已建则跳过),列名/类型对齐实体。
  4. -- 种子:S5_L1_001 在 AIDOP 租户 797403760988229 的 LEGACY_CODE v1(PUBLISHED/IsCurrent=1)——默认=legacy 向后兼容 + 支持"回滚到 LEGACY_CODE"演示。
  5. CREATE TABLE IF NOT EXISTS ado_smart_ops_kpi_calc_config (
  6. `Id` BIGINT NOT NULL AUTO_INCREMENT,
  7. `TenantId` BIGINT DEFAULT NULL,
  8. `MetricCode` VARCHAR(50) NOT NULL,
  9. `ModuleCode` VARCHAR(20) NOT NULL,
  10. `VersionNo` INT NOT NULL,
  11. `CalcEngineType` VARCHAR(20) NOT NULL DEFAULT 'CONFIG_SQL',
  12. `DataSourceCode` VARCHAR(100) DEFAULT NULL,
  13. `SqlScript` TEXT DEFAULT NULL,
  14. `SqlParametersJson` TEXT DEFAULT NULL,
  15. `TimeoutSeconds` INT NOT NULL DEFAULT 30,
  16. `PublishStatus` VARCHAR(20) NOT NULL DEFAULT 'DRAFT',
  17. `IsCurrent` TINYINT(1) NOT NULL DEFAULT 0,
  18. `Remark` TEXT DEFAULT NULL,
  19. `CreatedBy` VARCHAR(100) DEFAULT NULL,
  20. `CreatedAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  21. `UpdatedBy` VARCHAR(100) DEFAULT NULL,
  22. `UpdatedAt` DATETIME DEFAULT NULL,
  23. `PublishedBy` VARCHAR(100) DEFAULT NULL,
  24. `PublishedAt` DATETIME DEFAULT NULL,
  25. `RetiredBy` VARCHAR(100) DEFAULT NULL,
  26. `RetiredAt` DATETIME DEFAULT NULL,
  27. PRIMARY KEY (`Id`),
  28. UNIQUE KEY `uk_kpi_calc_cfg_metric_ver` (`MetricCode`, `TenantId`, `VersionNo`),
  29. KEY `idx_kpi_calc_cfg_current` (`MetricCode`, `TenantId`, `IsCurrent`)
  30. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='KPI 计算配置(SQL 配置化)';
  31. CREATE TABLE IF NOT EXISTS ado_smart_ops_kpi_calc_run_log (
  32. `Id` BIGINT NOT NULL AUTO_INCREMENT,
  33. `TenantId` BIGINT DEFAULT NULL,
  34. `BatchId` VARCHAR(100) NOT NULL,
  35. `ModuleCode` VARCHAR(20) NOT NULL,
  36. `MetricCode` VARCHAR(50) NOT NULL,
  37. `ConfigId` BIGINT DEFAULT NULL,
  38. `VersionNo` INT DEFAULT NULL,
  39. `EngineType` VARCHAR(20) NOT NULL,
  40. `DataSourceCode` VARCHAR(100) DEFAULT NULL,
  41. `BizDate` DATE NOT NULL,
  42. `StartedAt` DATETIME NOT NULL,
  43. `FinishedAt` DATETIME DEFAULT NULL,
  44. `DurationMs` BIGINT NOT NULL DEFAULT 0,
  45. `Status` VARCHAR(20) NOT NULL,
  46. `RowCount` INT NOT NULL DEFAULT 0,
  47. `MetricValue` DECIMAL(18,4) DEFAULT NULL,
  48. `NumeratorValue` DECIMAL(18,4) DEFAULT NULL,
  49. `DenominatorValue` DECIMAL(18,4) DEFAULT NULL,
  50. `ErrorCode` VARCHAR(50) DEFAULT NULL,
  51. `ErrorMessage` VARCHAR(500) DEFAULT NULL,
  52. `SqlHash` VARCHAR(64) DEFAULT NULL,
  53. `ParameterSnapshot` TEXT DEFAULT NULL,
  54. `TriggerType` VARCHAR(20) NOT NULL,
  55. `CreateTime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  56. PRIMARY KEY (`Id`),
  57. UNIQUE KEY `uk_kpi_calc_run_metric_batch` (`MetricCode`, `BatchId`),
  58. KEY `idx_kpi_calc_run_metric_time` (`MetricCode`, `StartedAt`)
  59. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='KPI 计算 SQL 运行日志';
  60. -- 种子 S5_L1_001 LEGACY_CODE v1(幂等:存在则跳过)。列名 PascalCase(EnableUnderLine=false)。
  61. INSERT INTO ado_smart_ops_kpi_calc_config
  62. (`TenantId`, `MetricCode`, `ModuleCode`, `VersionNo`, `CalcEngineType`, `TimeoutSeconds`, `PublishStatus`, `IsCurrent`, `Remark`, `CreatedBy`, `CreatedAt`)
  63. SELECT 797403760988229, 'S5_L1_001', 'S5', 1, 'LEGACY_CODE', 30, 'PUBLISHED', 1, 'S5_L1_001 初始 legacy 版本(向后兼容+回滚基线)', 'system', NOW()
  64. FROM DUAL
  65. WHERE NOT EXISTS (
  66. SELECT 1 FROM ado_smart_ops_kpi_calc_config
  67. WHERE `MetricCode`='S5_L1_001' AND `TenantId`=797403760988229 AND `VersionNo`=1
  68. );