Logo
Job

--- 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';