02_mdp_pipeline_orchestration.sql 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. -- 数据中台:管道编排表(方案 §4.4.3)
  2. -- 引擎未上线前可仅建表占位;调度仍可用独立 IJob(如 S3 S3MdpSyncTransformJob)。
  3. SET NAMES utf8mb4;
  4. CREATE TABLE IF NOT EXISTS mdp_pipeline (
  5. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  6. tenant_id BIGINT NOT NULL,
  7. pipeline_code VARCHAR(50) NOT NULL COMMENT 'FULL_SYNC / INCR_SYNC / S4_PO_SYNC',
  8. pipeline_name VARCHAR(200) NOT NULL,
  9. pipeline_type VARCHAR(20) DEFAULT 'SCHEDULED' COMMENT 'SCHEDULED / MANUAL / EVENT',
  10. cron_expression VARCHAR(50),
  11. max_concurrent_stage INT DEFAULT 2,
  12. timeout_minutes INT DEFAULT 30,
  13. retry_on_fail TINYINT DEFAULT 1,
  14. max_retries INT DEFAULT 2,
  15. is_enabled TINYINT DEFAULT 1,
  16. description TEXT,
  17. created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  18. updated_at DATETIME,
  19. UNIQUE KEY uk_pipeline (tenant_id, pipeline_code)
  20. ) COMMENT='数据同步管道定义';
  21. CREATE TABLE IF NOT EXISTS mdp_pipeline_stage (
  22. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  23. tenant_id BIGINT NOT NULL,
  24. pipeline_code VARCHAR(50) NOT NULL,
  25. stage_code VARCHAR(50) NOT NULL,
  26. stage_name VARCHAR(200) NOT NULL,
  27. seq_no INT NOT NULL,
  28. depends_on_stage VARCHAR(256),
  29. parallel_within TINYINT DEFAULT 1,
  30. on_stage_fail VARCHAR(20) DEFAULT 'STOP' COMMENT 'STOP / CONTINUE / SKIP_STAGE',
  31. created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  32. UNIQUE KEY uk_stage (tenant_id, pipeline_code, stage_code),
  33. INDEX idx_pipeline (tenant_id, pipeline_code, seq_no)
  34. ) COMMENT='管道阶段定义';
  35. CREATE TABLE IF NOT EXISTS mdp_pipeline_exec (
  36. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  37. tenant_id BIGINT NOT NULL,
  38. pipeline_code VARCHAR(50) NOT NULL,
  39. exec_no VARCHAR(64) NOT NULL,
  40. trigger_type VARCHAR(20) NOT NULL,
  41. status VARCHAR(20) DEFAULT 'PENDING',
  42. current_stage VARCHAR(50),
  43. started_at DATETIME,
  44. finished_at DATETIME,
  45. duration_seconds INT,
  46. error_msg TEXT,
  47. created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  48. UNIQUE KEY uk_exec_no (tenant_id, exec_no),
  49. INDEX idx_pipeline (tenant_id, pipeline_code, created_at),
  50. INDEX idx_status (tenant_id, status)
  51. ) COMMENT='管道执行实例';
  52. CREATE TABLE IF NOT EXISTS mdp_stage_exec (
  53. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  54. tenant_id BIGINT NOT NULL,
  55. exec_no VARCHAR(64) NOT NULL,
  56. stage_code VARCHAR(50) NOT NULL,
  57. seq_no INT NOT NULL,
  58. status VARCHAR(20) DEFAULT 'PENDING',
  59. total_tasks INT DEFAULT 0,
  60. success_tasks INT DEFAULT 0,
  61. failed_tasks INT DEFAULT 0,
  62. started_at DATETIME,
  63. finished_at DATETIME,
  64. duration_seconds INT,
  65. error_msg TEXT,
  66. INDEX idx_exec (tenant_id, exec_no),
  67. INDEX idx_stage (tenant_id, stage_code)
  68. ) COMMENT='阶段执行实例';