| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- -- 数据中台:同步配置与实体注册(方案 §4.2 / §4.5.2)
- -- 说明:使用 IF NOT EXISTS,可与现有库并存;若列不一致请人工合并,勿直接 DROP 生产表。
- -- 字符集建议与业务库一致(utf8mb4)。
- SET NAMES utf8mb4;
- -- ===== 同步源级配置(与 mdp_source 互补,方案草案)=====
- CREATE TABLE IF NOT EXISTS mdp_sync_config (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- source_code VARCHAR(50) NOT NULL COMMENT 'SAP / MES_OWN / AIDOPDEV_MYSQL',
- source_name VARCHAR(100),
- source_type ENUM('DB','API') NOT NULL,
- db_conn_string_enc VARCHAR(500) COMMENT '加密连接串',
- api_config_id BIGINT,
- sync_frequency VARCHAR(50) COMMENT 'CRON 表达式',
- status TINYINT DEFAULT 1,
- UNIQUE KEY uk_source (source_code)
- ) COMMENT='同步源配置(条目级)';
- -- ===== 数据源 =====
- CREATE TABLE IF NOT EXISTS mdp_source (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- source_code VARCHAR(50) NOT NULL COMMENT 'SAP / MES_OWN / WMS_OWN',
- source_name VARCHAR(100) NOT NULL,
- source_type ENUM('DB','API') NOT NULL,
- status TINYINT DEFAULT 1,
- db_type ENUM('MySQL','SQLServer','Oracle','PostgreSQL'),
- db_host VARCHAR(200),
- db_port INT,
- db_name VARCHAR(100),
- db_user VARCHAR(100),
- db_password_enc VARCHAR(500),
- db_extra_params VARCHAR(500),
- api_base_url VARCHAR(500),
- api_auth_type ENUM('NONE','TOKEN','OAUTH2','APIKEY'),
- api_auth_config JSON,
- last_health_check DATETIME,
- health_status TINYINT DEFAULT 0,
- health_msg VARCHAR(500),
- remark VARCHAR(500),
- create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_tenant_source (tenant_id, source_code)
- ) COMMENT='数据源管理';
- -- ===== 同步实体 =====
- CREATE TABLE IF NOT EXISTS mdp_entity (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- source_id BIGINT NOT NULL,
- entity_code VARCHAR(100) NOT NULL,
- entity_name VARCHAR(200) NOT NULL,
- entity_type ENUM('TABLE','VIEW','API') NOT NULL DEFAULT 'TABLE',
- source_table_name VARCHAR(200),
- source_api_path VARCHAR(500),
- api_config_id BIGINT,
- target_table_name VARCHAR(200),
- sync_mode ENUM('FULL','INCR','CDC','PAGE','CURSOR','TIME_WINDOW','NONE') DEFAULT 'INCR',
- incr_column VARCHAR(100),
- batch_size INT DEFAULT 5000,
- response_data_path VARCHAR(200),
- dedup_key_path VARCHAR(200),
- last_cursor VARCHAR(500),
- last_sync_to DATETIME,
- job_id VARCHAR(100),
- stage_code VARCHAR(50) COMMENT '所属管道阶段编码(编排预留)',
- status TINYINT DEFAULT 1,
- remark VARCHAR(500),
- create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_tenant_entity (tenant_id, entity_code),
- INDEX idx_source (source_id),
- INDEX idx_api_config (api_config_id)
- ) COMMENT='同步实体定义';
- -- ===== 字段映射 =====
- CREATE TABLE IF NOT EXISTS mdp_field_mapping (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- entity_id BIGINT NOT NULL,
- source_field VARCHAR(200) NOT NULL,
- target_field VARCHAR(200) NOT NULL,
- field_type ENUM('DIRECT','JSONPATH','SCRIPT','CONST','LOOKUP') DEFAULT 'DIRECT',
- transform_script TEXT,
- const_value VARCHAR(500),
- lookup_table VARCHAR(200),
- is_required TINYINT DEFAULT 0,
- default_value VARCHAR(500),
- sort_order INT DEFAULT 0,
- create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
- UNIQUE KEY uk_entity_field (entity_id, target_field)
- ) COMMENT='字段映射';
- -- ===== 同步执行日志(单实体粒度)=====
- CREATE TABLE IF NOT EXISTS mdp_sync_log (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL,
- entity_id BIGINT NOT NULL,
- source_code VARCHAR(50) NOT NULL,
- entity_name VARCHAR(200),
- sync_batch_id VARCHAR(50) NOT NULL,
- sync_type ENUM('FULL','INCR') NOT NULL,
- trigger_type ENUM('AUTO','MANUAL') DEFAULT 'AUTO',
- sync_start DATETIME,
- sync_end DATETIME,
- duration_ms INT,
- rows_read BIGINT DEFAULT 0,
- rows_insert BIGINT DEFAULT 0,
- rows_update BIGINT DEFAULT 0,
- rows_skip BIGINT DEFAULT 0,
- rows_error BIGINT DEFAULT 0,
- status ENUM('RUNNING','SUCCESS','PARTIAL','FAILED') DEFAULT 'RUNNING',
- error_msg TEXT,
- error_sample JSON,
- INDEX idx_tenant_entity_time (tenant_id, entity_id, sync_start),
- INDEX idx_batch (sync_batch_id),
- INDEX idx_status (status)
- ) COMMENT='同步执行日志';
- -- ===== 整链转换运行日志(与 S3 MDP 监控一致,可供 S4/S8 作业复用形态)=====
- CREATE TABLE IF NOT EXISTS mdp_transform_run_log (
- id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
- tenant_id BIGINT NOT NULL DEFAULT 0,
- job_code VARCHAR(64) NOT NULL DEFAULT '',
- job_name VARCHAR(200),
- trigger_type VARCHAR(32) NOT NULL DEFAULT 'AUTO',
- batch_id VARCHAR(64) NOT NULL,
- status VARCHAR(32) NOT NULL DEFAULT 'RUNNING',
- start_time DATETIME,
- end_time DATETIME,
- duration_ms INT,
- stage_rows INT,
- standard_rows INT,
- dwd_rows INT,
- error_message VARCHAR(2000),
- summary_json TEXT,
- create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
- update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_job_time (job_code, start_time),
- INDEX idx_batch (batch_id),
- INDEX idx_status (status)
- ) COMMENT='管道/整链转换运行日志';
|