--- title : "防篡改摘要值生成作业" weight : 2 ---
防篡改摘要值生成 #
语法清单 #
| 语法 | 描述 | 类型 |
|---|---|---|
| INTEGRATE TABLE ruleName | 启动防篡改摘要值生成任务 | RAL |
| SHOW DATA_INTEGRATING LIST | 查看摘要值生成任务 | RAL |
| SHOW DATA_INTEGRATING STATUS | 查看摘要值生成任务状态 | RAL |
| COMMIT DATA_INTEGRATING | 提交摘要值生成任务 | RAL |
| ROLLBACK DATA_INTEGRATING | 回滚摘要值生成任务 | RAL |
1. 启动防篡改摘要值生成任务 #
INTEGRATE TABLE ruleName
INTEGRATE TABLE ruleName (digestColumn, digestColumn)
启动指定规则摘要值生成任务
示例
INTEGRATE TABLE `t_user`;
启动指定规则指定摘要列摘要值生成任务
示例
INTEGRATE TABLE `t_user`(`id_digest`, `test_digest`);
2. 查看摘要值生成任务 #
SHOW DATA_INTEGRATING LIST;
示例
mysql> SHOW DATA_INTEGRATING LIST;
+--------------------------------------------+--------+--------------------+----------------+--------+---------------------+-----------+
| id | tables | columns | job_item_count | active | create_time | stop_time |
+--------------------------------------------+--------+--------------------+----------------+--------+---------------------+-----------+
| j5702p00006919cfe81b54535ef5d9c4325ac15850 | t_user | t_user.test_digest | 1 | true | 2024-11-07 12:20:01 | |
+--------------------------------------------+--------+--------------------+----------------+--------+---------------------+-----------+
1 row in set (0.09 sec)
3. 查看摘要值生成任务状态 #
SHOW DATA_INTEGRATING STATUS jobId;
示例
mysql> SHOW DATA_INTEGRATING STATUS 'j5702p00006919cfe81b54535ef5d9c4325ac15850';
+------------+----------+--------+-------------------------+-------------------------------+---------------+
| table_name | status | active | processed_records_count | inventory_finished_percentage | error_message |
+------------+----------+--------+-------------------------+-------------------------------+---------------+
| t_user | FINISHED | true | 100 | 100 | |
+------------+----------+--------+-------------------------+-------------------------------+---------------+
1 row in set (0.03 sec)
4. 提交摘要值生成任务 #
COMMIT DATA_INTEGRATING jobId;
示例
COMMIT DATA_INTEGRATING 'j5702p00006919cfe81b54535ef5d9c4325ac15850';
5. 回滚摘要值生成任务 #
ROLLBACK DATA_INTEGRATING jobId;
示例
ROLLBACK DATA_INTEGRATING 'j5702p00006919cfe81b54535ef5d9c4325ac15850';
重新生成摘要值 #
语法清单 #
| 语法 | 描述 | 类型 |
|---|---|---|
| REINTEGRATE TABLE | 重新生成摘要值 | RAL |
| REINTEGRATE TABLE WITH RULE | 使用新规则重新生成摘要值 | RAL |
| SHOW DATA_REINTEGRATING LIST | 查看重新生成摘要值作业列表 | RAL |
| SHOW DATA_REINTEGRATING STATUS | 查看重新生成摘要值作业状态 | RAL |
| START DATA_REINTEGRATING | 启动重新生成摘要值作业 | RAL |
| STOP DATA_REINTEGRATING | 停止重新生成摘要值作业 | RAL |
| COMMIT DATA_REINTEGRATING | 提交重新生成摘要值作业 | RAL |
| ROLLBACK DATA_REINTEGRATING | 回滚重新生成摘要值作业 | RAL |
按表重新生成摘要值 #
语法
REINTEGRATE TABLE tableName;
示例
mysql> REINTEGRATE TABLE t_order;
Query OK, 0 rows affected (0.12 sec)
按列重新生成摘要值 #
语法
REINTEGRATE TABLE tableName(`digestColumnName1`, `digestColumnName2`)
示例
REINTEGRATE TABLE tableName(`name_digest`, `id_digest`)
按新规则对已存在的摘要列重新生成摘要值 #
语法
reintegrateTableWithRule ::=
REINTEGRATE TABLE WITH RULE ruleName '(' digesGroupDefinition (COMMA_ digesGroupDefinition)* ')'
digesGroupDefinition ::=
'(' 'DIGEST_COLUMN' '=' digestColumnName ',' columnNames ',' algorithmDefinition ')'
columnNames ::=
'COLUMNS' '(' columnName (',' columnName)* ')'
ruleName ::=
identifier
digestColumnName ::=
identifier
columnName ::=
identifier
algorithmDefinition ::=
'TYPE' '(' 'NAME' '=' algorithmTypeName (',' propertiesDefinition)? ')'
algorithmTypeName ::=
string
propertiesDefinition ::=
'PROPERTIES' '(' key '=' value (',' key '=' value)* ')'
key ::=
string
value ::=
literal
示例
REINTEGRATE TABLE WITH RULE `t_order` (
(DIGEST_COLUMN=`name_digest`, COLUMNS(`name`), TYPE(NAME='MD5', PROPERTIES('salt'='123456'))),
(DIGEST_COLUMN=`password_digest`, COLUMNS(`password`), TYPE(NAME='MD5', PROPERTIES('salt'='123456')))
)
查看重生成摘要值作业 #
语法
SHOW DATA_REINTEGRATING LIST;
示例
mysql> SHOW DATA_REINTEGRATING LIST;
+--------------------------------------------+---------+-----------------------+----------------+--------+---------------------+-----------+
| id | tables | columns | job_item_count | active | create_time | stop_time |
+--------------------------------------------+---------+-----------------------+----------------+--------+---------------------+-----------+
| j6102p00004a3de278f4a83f6279d5a026ad3e5eb5 | t_order | name_digest,id_digest | 1 | true | 2024-12-31 17:29:39 | |
+--------------------------------------------+---------+-----------------------+----------------+--------+---------------------+-----------+
1 row in set (0.04 sec)
查看重生成摘要值作业状态 #
语法
SHOW DATA_REINTEGRATING STATUS 'jobId';
示例
mysql> SHOW DATA_REINTEGRATING STATUS 'j6102p00004a3de278f4a83f6279d5a026ad3e5eb5';
+------+-------------+----------+--------+---------------------+---------------+
| item | data_source | status | active | finished_percentage | error_message |
+------+-------------+----------+--------+---------------------+---------------+
| 0 | test_db | FINISHED | true | 100 | |
+------+-------------+----------+--------+---------------------+---------------+
1 row in set (0.06 sec)
启动重生成摘要值作业 #
语法
START DATA_REINTEGRATING 'jobId';
示例
START DATA_REINTEGRATING 'j6102p00004a3de278f4a83f6279d5a026ad3e5eb5';
停止重生成摘要值作业 #
语法
STOP DATA_REINTEGRATING 'jobId';
示例
STOP DATA_REINTEGRATING 'j6102p00004a3de278f4a83f6279d5a026ad3e5eb5';
提交重生成摘要值作业 #
语法
COMMIT DATA_REINTEGRATING 'jobId';
示例
COMMIT DATA_REINTEGRATING 'j6102p00004a3de278f4a83f6279d5a026ad3e5eb5';
回滚重生成摘要值作业 #
语法
ROLLBACK DATA_REINTEGRATING 'jobId';
示例
ROLLBACK DATA_REINTEGRATING 'j6102p00004a3de278f4a83f6279d5a026ad3e5eb5';
防篡改报告 #
语法清单 #
| 语法 | 描述 | 类型 |
|---|---|---|
| CHECK DATA_INTEGRITY TABLE ruleName | 启动摘要值检查任务 | RAL |
| SHOW DATA_INTEGRATING CHECK LIST | 查询摘要值检查任务 | RAL |
| SHOW DATA_INTEGRATING CHECK STATUS | 查询摘要值检查任务状态 | RAL |
| DROP DATA_INTEGRATING CHECK jobId | 删除摘要值检查任务 | RAL |
1. 启动防篡改摘要值检查任务 #
CHECK DATA_INTEGRITY TABLE `t_user` BY TYPE(NAME='OUTPUT:DATABASE', PROPERTIES('diff-storage-unit-name'='ds_0', 'diff-table-name'='check_diff'));
CHECK DATA_INTEGRITY TABLE `t_user`(`test_digest`, `id_digest`) BY TYPE(NAME='OUTPUT:DATABASE', PROPERTIES('diff-storage-unit-name'='ds_0', 'diff-table-name'='check_diff'));
目前只支持 OUTPUT:DATABASE 一种算法
– diff-storage-unit-name 存储结果的存储节点
– diff-table-name 存储结果的表名称
启动指定规则的全部摘要列检查任务
示例
CHECK DATA_INTEGRITY TABLE `t_user` BY TYPE(NAME='OUTPUT:DATABASE', PROPERTIES('diff-storage-unit-name'='ds_0', 'diff-table-name'='check_diff'));
启动指定规则的指定摘要列检查任务
示例
CHECK DATA_INTEGRITY TABLE `t_user`(`test_digest`, `id_digest`) BY TYPE(NAME='OUTPUT:DATABASE', PROPERTIES('diff-storage-unit-name'='ds_0', 'diff-table-name'='check_diff'));
2. 查询防篡改摘要值检查任务 #
SHOW DATA_INTEGRATING CHECK LIST;
示例
mysql> SHOW DATA_INTEGRATING CHECK LIST;
+--------------------------------------------+--------+--------------------+----------------+--------+---------------------+-----------+
| id | tables | columns | job_item_count | active | create_time | stop_time |
+--------------------------------------------+--------+--------------------+----------------+--------+---------------------+-----------+
| j6002p00006919cfe81b54535ef5d9c4325ac15850 | t_user | t_user.test_digest | 1 | true | 2024-11-07 13:12:23 | |
+--------------------------------------------+--------+--------------------+----------------+--------+---------------------+-----------+
1 row in set (0.02 sec)
3. 查询防篡改摘要值检查任务状态 #
SHOW DATA_INTEGRATING CHECK STATUS jobId;
示例
mysql> SHOW DATA_INTEGRATING CHECK STATUS 'j6002p00006919cfe81b54535ef5d9c4325ac15850';
+------------+----------+--------+-------------------------+-------------------------------+-----------------+------------------------------------------------------------------------------------------------+---------------+
| table_name | status | active | processed_records_count | inventory_finished_percentage | type | props | error_message |
+------------+----------+--------+-------------------------+-------------------------------+-----------------+------------------------------------------------------------------------------------------------+---------------+
| t_user | FINISHED | true | 100 | 100 | OUTPUT:DATABASE | {"diff-storage-unit-name":"ds_0","diff-table-name":"check_diff","target-database-name":"test"} | |
+------------+----------+--------+-------------------------+-------------------------------+-----------------+------------------------------------------------------------------------------------------------+---------------+
1 row in set (0.08 sec)
4. 删除防篡改摘要值检查任务 #
DROP DATA_INTEGRATING CHECK jobId;
示例
DROP DATA_INTEGRATING CHECK 'j6002p00006919cfe81b54535ef5d9c4325ac15850';