Logo
防篡改摘要值生成作业

防篡改洗数规则 #

语法清单 #

语法描述类型
ALTER DATA_INTEGRATING RULE修改防篡改洗数规则RAL
SHOW DATA_INTEGRATING RULE查看防篡改洗数规则RAL

1. 修改防篡改洗数规则 #

ALTER DATA_INTEGRATING RULE (
READ(
  WORKER_THREAD=20,
  BATCH_SIZE=1000,
  SHARDING_SIZE=10000000,
  RATE_LIMITER (TYPE(NAME='QPS', PROPERTIES('qps'='500')))
),
WRITE(
  WORKER_THREAD=20,
  BATCH_SIZE=1000,
  RATE_LIMITER (TYPE(NAME='TPS', PROPERTIES('tps'='2000')))
),
STREAM_CHANNEL (TYPE(NAME='MEMORY', PROPERTIES('block-queue-size'='2000')))
);

2. 查看防篡改洗数规则 #

SHOW DATA_INTEGRATING RULE;

防篡改摘要值生成 #

语法清单 #

语法描述类型
INTEGRATE TABLE ruleName启动防篡改摘要值生成任务RAL
SHOW DATA_INTEGRATING LIST查看摘要值生成任务RAL
SHOW DATA_INTEGRATING STATUS查看摘要值生成任务状态RAL
START DATA_INTEGRATING重启摘要值生成任务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                                         | database | tables | columns            | job_item_count | active | create_time         | stop_time |
+--------------------------------------------+----------+--------+--------------------+----------------+--------+---------------------+-----------+
| j5702p00006919cfe81b54535ef5d9c4325ac15850 | test     | 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';
+---------------+------------+----------+--------+-------------------------+-------------------------------+---------------+
| database_name | table_name | status   | active | processed_records_count | inventory_finished_percentage | error_message |
+---------------+------------+----------+--------+-------------------------+-------------------------------+---------------+
| test          | t_user     | FINISHED | true   | 100                     | 100                           |               |
+---------------+------------+----------+--------+-------------------------+-------------------------------+---------------+
1 row in set (0.03 sec)

4. 重启摘要值生成任务 #

START DATA_INTEGRATING jobId;

示例

START DATA_INTEGRATING 'j5702p00006919cfe81b54535ef5d9c4325ac15850';

5. 提交摘要值生成任务 #

COMMIT DATA_INTEGRATING jobId;

示例

COMMIT DATA_INTEGRATING 'j5702p00006919cfe81b54535ef5d9c4325ac15850';

6. 回滚摘要值生成任务 #

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 '(' digestGroupDefinition (COMMA_ digestGroupDefinition)* ')'

digestGroupDefinition ::=
    '(' 'DIGEST_COLUMN' '=' digestColumnName (',' digestColumnDataType)? ',' columnNames ',' algorithmDefinition ')'

digestColumnDataType ::=
    'DATA_TYPE' '=' dataType

columnNames ::=
    'COLUMNS' '(' columnName (',' columnName)* ')'

ruleName ::=
  identifier

digestColumnName ::=
  identifier

columnName ::=
  identifier

dataType ::=
  string

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
START DATA_INTEGRATING CHECK jobId重启摘要值检查任务RAL
STOP DATA_INTEGRATING CHECK jobId停止摘要值检查任务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                                         | database | tables | columns            | job_item_count | active | create_time         | stop_time |
+--------------------------------------------+----------+--------+--------------------+----------------+--------+---------------------+-----------+
| j6002p00006919cfe81b54535ef5d9c4325ac15850 | test     | 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. 重启防篡改摘要值检查任务 #

START DATA_INTEGRATING CHECK jobId;

示例

START DATA_INTEGRATING CHECK 'j6002p00006919cfe81b54535ef5d9c4325ac15850';

5. 停止防篡改摘要值检查任务 #

STOP DATA_INTEGRATING CHECK jobId;

示例

STOP DATA_INTEGRATING CHECK 'j6002p00006919cfe81b54535ef5d9c4325ac15850';

6. 删除防篡改摘要值检查任务 #

DROP DATA_INTEGRATING CHECK jobId;

示例

DROP DATA_INTEGRATING CHECK 'j6002p00006919cfe81b54535ef5d9c4325ac15850';