table profiling功能开发

This commit is contained in:
zhaoawd
2025-11-03 00:18:26 +08:00
parent 557efc4bf1
commit c2a08e4134
6 changed files with 1280 additions and 16 deletions

54
table_snippet.sql Normal file
View File

@ -0,0 +1,54 @@
CREATE TABLE IF NOT EXISTS action_results (
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',
table_id BIGINT NOT NULL COMMENT '表ID',
version_ts BIGINT NOT NULL COMMENT '版本时间戳(版本号)',
action_type ENUM('ge_profiling','ge_result_desc','snippet','snippet_alias') NOT NULL COMMENT '动作类型',
status ENUM('pending','running','success','failed','partial') NOT NULL DEFAULT 'pending' COMMENT '执行状态',
error_code VARCHAR(128) NULL,
error_message TEXT NULL,
-- 回调 & 观测
callback_url VARCHAR(1024) NOT NULL,
started_at DATETIME NULL,
finished_at DATETIME NULL,
duration_ms INT NULL,
-- 本次schema信息
table_schema_version_id BIGINT NOT NULL,
table_schema JSON NOT NULL,
-- ===== 动作1GE Profiling =====
ge_profiling_full JSON NULL COMMENT 'Profiling完整结果JSON',
ge_profiling_full_size_bytes BIGINT NULL,
ge_profiling_summary JSON NULL COMMENT 'Profiling摘要剔除大value_set等',
ge_profiling_summary_size_bytes BIGINT NULL,
ge_profiling_total_size_bytes BIGINT NULL COMMENT '上两者合计',
ge_profiling_html_report_url VARCHAR(1024) NULL COMMENT 'GE报告HTML路径/URL',
-- ===== 动作2GE Result Desc =====
ge_result_desc_full JSON NULL COMMENT '表描述结果JSON',
ge_result_desc_full_size_bytes BIGINT NULL,
-- ===== 动作3Snippet 生成 =====
snippet_full JSON NULL COMMENT 'SQL知识片段结果JSON',
snippet_full_size_bytes BIGINT NULL,
-- ===== 动作4Snippet Alias 改写 =====
snippet_alias_full JSON NULL COMMENT 'SQL片段改写/丰富结果JSON',
snippet_alias_full_size_bytes BIGINT NULL,
-- 通用可选指标
result_checksum VARBINARY(32) NULL COMMENT '对当前action有效载荷计算的MD5/xxhash',
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uq_table_ver_action (table_id, version_ts, action_type),
KEY idx_status (status),
KEY idx_table (table_id, updated_at),
KEY idx_action_time (action_type, version_ts),
KEY idx_schema_version (table_schema_version_id)
) ENGINE=InnoDB
ROW_FORMAT=DYNAMIC
COMMENT='数据分析知识片段表';