数据处理引擎-表结构设计

邓尼茨我今天去赶集 2020年06月28日 1,207次浏览

数据增量处理引擎,适合通过时间全量或者增量处理数据的场景。

CREATE TABLE `it_general_data_engine_t` (
  `engine_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '引擎ID',
  `app_id` varchar(64) NOT NULL COMMENT '应用ID',
  `engine_name` varchar(255) NOT NULL COMMENT '引擎名称',
  `engine_class` varchar(255) NOT NULL COMMENT '引擎类名',
  `max_execution_time` int(11) DEFAULT NULL COMMENT '引擎最长执行时间,超过这个时间会在下次任务开始时被终止',
  `query_condition_increment` int(11) DEFAULT NULL COMMENT '查询条件的递增量',
  `query_condition_offset` int(11) DEFAULT NULL COMMENT '查询条件偏移量(比如前移5秒)',
  `query_page_size` int(11) DEFAULT NULL COMMENT '单次查询条数',
  `cache_commit_size` int(11) DEFAULT NULL COMMENT '事务提交的条数阈值',
  `engine_status` int(11) NOT NULL DEFAULT '1' COMMENT '引擎状态,失效,正常。',
  `engine_running_status` int(11) DEFAULT '0' COMMENT '引擎执行状态',
  `engine_type` int(11) DEFAULT '1' COMMENT '引擎类型(1宽表,2其它)',
  `group_id` int(11) DEFAULT NULL COMMENT '引擎分组ID',
  `engine_order` int(11) DEFAULT NULL COMMENT '分组内的执行顺序',
  `engine_desc` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '引擎描述',
  `creation_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
  `last_update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',
  PRIMARY KEY (`engine_id`) USING BTREE,
  UNIQUE KEY `idx_en_de_uniq` (`engine_name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='通用数据处理引擎';
CREATE TABLE `it_general_data_engine_group_t` (
  `group_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '任务分组ID',
  `app_id` varchar(64) NOT NULL COMMENT '应用ID',
  `group_name` varchar(255) NOT NULL COMMENT '任务分组名称',
  `group_desc` varchar(255) DEFAULT NULL COMMENT '分组描述',
  `group_status` int(11) NOT NULL DEFAULT '1' COMMENT '分组状态,失效,正常。',
  `creation_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
  `last_update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',
  PRIMARY KEY (`group_id`) USING BTREE,
  UNIQUE KEY `idx_uniq` (`group_name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='通用数据处理引擎分组';

CREATE TABLE `it_general_data_engine_process_t` (
  `process_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `app_id` varchar(64) NOT NULL COMMENT '应用ID',
  `engine_id` int(11) DEFAULT NULL COMMENT '引擎ID',
  `query_condition_from` datetime NOT NULL COMMENT '本次处理的数据范围开始',
  `query_condition_current` datetime DEFAULT NULL COMMENT '当前处理到的时间,即下次任务数据范围的开始',
  `query_condition_to` datetime NOT NULL COMMENT '本次本应处理的数据范围最大值',
  `total_count_to_process` int(11) DEFAULT NULL COMMENT '本次预计处理的数据条数',
  `total_count_query_cost` decimal(11,2) DEFAULT NULL COMMENT '查询源数据总数耗时(秒),小数点后两位',
  `process_begin_date` datetime DEFAULT NULL COMMENT '数据处理开始时间',
  `process_end_date` datetime DEFAULT NULL COMMENT '数据处理结束时间',
  `process_time_cost` decimal(11,2) DEFAULT NULL COMMENT '整个任务处理时间,小数点后两位',
  `process_status` int(11) NOT NULL COMMENT '传输状态,0为未开始,100传输中,任务完成200,查询数据错误400,写入出错410,其它错误500,系统关机501,引擎收到中断指令502,引擎人为终止503,引擎被强制终止504',
  `processed_current_count` int(11) DEFAULT '0' COMMENT '已处理条数(含失败的条数)',
  `error_msg` text COMMENT '错误信息',
  `creation_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间,即数据同步开始时间',
  `last_update_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',
  PRIMARY KEY (`process_id`) USING BTREE,
  KEY `idx_task_id_status_unique` (`engine_id`,`process_status`) COMMENT '任务执行状态索引',
  KEY `idx_task_creation_date` (`creation_date`) USING BTREE,
  KEY `idx_task_id_status` (`process_status`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='通用数据处理引擎的执行记录';

CREATE TABLE `it_general_data_engine_statistics_t` (
  `stat_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '统计ID,自增',
  `app_id` varchar(64) NOT NULL COMMENT '应用ID',
  `engine_id` int(11) NOT NULL COMMENT '引擎ID',
  `engine_name` varchar(255) NOT NULL COMMENT '引擎名称',
  `group_id` int(11) DEFAULT NULL COMMENT '分组ID',
  `group_name` varchar(255) DEFAULT NULL COMMENT '分组名称',
  `execution_date` varchar(32) NOT NULL COMMENT '执行时间(日,月)',
  `execution_times` int(11) DEFAULT '0' COMMENT '执行次数',
  `succeed_times` int(11) DEFAULT '0' COMMENT '执行成功次数',
  `failed_times` int(11) DEFAULT '0' COMMENT '执行失败次数',
  `processed_total_count` int(11) DEFAULT '0' COMMENT '处理数据总数',
  `succeed_total_count` int(11) DEFAULT '0' COMMENT '处理成功的数据总数',
  `failed_total_count` int(11) DEFAULT '0' COMMENT '处理失败的数据总数',
  `execution_elapsed_time` decimal(11,2) DEFAULT NULL COMMENT '执行总耗时',
  `execution_efficiency` varchar(255) DEFAULT NULL COMMENT '执行效率',
  `stat_type` int(11) NOT NULL COMMENT '统计类型(1日,2月)',
  `creation_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
  PRIMARY KEY (`stat_id`),
  UNIQUE KEY `idx_engine_stat_uniq` (`engine_id`,`execution_date`,`stat_type`),
  KEY `idx_engine_stat_engine_id` (`engine_id`),
  KEY `idx_engine_stat_engine_date_type` (`stat_type`,`execution_date`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='引擎执行情况统计表';