Logo
数据加解密任务

加解密洗数任务 #

语法描述类型
ALTER ENCRYPTING RULE修改数据加密洗数规则RAL
SHOW ENCRYPTING RULE查看数据加密洗数规则RAL
ENCRYPT TABLE启动加密洗数作业RAL
SHOW ENCRYPTING LIST查看加密洗数作业RAL
SHOW ENCRYPTING STATUS查看加密洗数状态RAL
COMMIT ENCRYPTING提交加密洗数作业RAL
ROLLBACK ENCRYPTING回滚加密洗数作业RAL
ALTER DECRYPTING RULE修改数据解密洗数规则RAL
SHOW DECRYPTING RULE查看数据解密洗数规则RAL
DECRYPT TABLE启动解密洗数作业RAL
SHOW DECRYPTING LIST查看解密洗数作业RAL
SHOW DECRYPTING STATUS查看解密洗数状态RAL
COMMIT DECRYPTING提交解密洗数作业RAL
ROLLBACK DECRYPTING回滚解密洗数作业RAL
REENCRYPT TABLE WITH RULE tableName换密钥第一阶段语句RAL
START REENCRYPTING jobId换密钥第二阶段洗数语句RAL
STOP ENCRYPTING jobId停止加密洗数作业RAL
START ENCRYPTING jobId重启加密洗数作业RAL
STOP DECRYPTING jobId停止解密洗数作业RAL
START DECRYPTING jobId重启解密洗数作业RAL
STOP REENCRYPTING jobId停止换密钥作业RAL

1. 定义数据加密洗数规则 #

copyALTER ENCRYPTING RULE

因 ENCRYPTING RULE 具有默认值,无需创建,仅提供 ALTER 语句。

完整配置 DistSQL 示例

copyALTER ENCRYPTING 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')))
);

配置说明

copyALTER ENCRYPTING RULE (
READ( -- 数据读取配置。如果不配置则部分参数默认生效。
  WORKER_THREAD=20, -- 从源端摄取全量数据的线程池大小。如果不配置则使用默认值。
  BATCH_SIZE=1000, -- 一次查询操作返回的最大记录数。如果不配置则使用默认值。
  SHARDING_SIZE=10000000, -- 全量数据分片大小。如果不配置则使用默认值。
  RATE_LIMITER ( -- 限流算法。如果不配置则不限流。
  TYPE( -- 算法类型。可选项:QPS
  NAME='QPS',
  PROPERTIES( -- 算法属性
  'qps'='500'
  )))
),
WRITE( -- 数据写入配置。如果不配置则部分参数默认生效。
  WORKER_THREAD=20, -- 数据写入到目标端的线程池大小。如果不配置则使用默认值。
  BATCH_SIZE=1000, -- 一次批量写入操作的最大记录数。如果不配置则使用默认值。
  RATE_LIMITER ( -- 限流算法。如果不配置则不限流。
  TYPE( -- 算法类型。可选项:TPS
  NAME='TPS',
  PROPERTIES( -- 算法属性
  'tps'='2000'
  )))
),
STREAM_CHANNEL ( -- 数据通道,连接生产者和消费者,用于 read 和 write 环节。如果不配置则默认使用 MEMORY 类型。
TYPE( -- 算法类型。可选项:MEMORY
NAME='MEMORY',
PROPERTIES( -- 算法属性
'block-queue-size'='2000' -- 属性:阻塞队列大小
)))
);

2. 查看数据加密洗数规则 #

copySHOW ENCRYPTING RULE

参数说明

示例

copySHOW ENCRYPTING RULE

3. 启动加密洗数作业 #

copyENCRYPT TABLE tableName;

参数说明

参数名说明
tableName加密洗数的表

示例

启动表的洗数

copyENCRYPT TABLE t_user;

启动表的指定列的洗数

copyENCRYPT TABLE t_user (password);

启动表的指定列的衍生列的洗数

copyENCRYPT TABLE t_user (username(LIKE_QUERY));

4. 查看加密洗数作业 #

copySHOW ENCRYPTING LIST;

参数说明

示例

copySHOW ENCRYPTING LIST;

5. 查看加密洗数状态 #

copySHOW ENCRYPTING STATUS jobId;

参数说明

参数名说明
jobid作业id

示例

copymysql> SHOW ENCRYPTING STATUS j5202p0000e2af8bea809d29f6ab4b3ac4c99b5789;
+-------------+----------+--------+-------------------------+-------------------------------+---------------+
| table_name  | status   | active | processed_records_count | inventory_finished_percentage | error_message |
+-------------+----------+--------+-------------------------+-------------------------------+---------------+
| t_user      | FINISHED | true   | 3                       | 100                           |               |
| t_user_info | FINISHED | true   | 3                       | 100                           |               |
+-------------+----------+--------+-------------------------+-------------------------------+---------------+

输出说明

  • table_name : 逻辑表名
  • status : 作业状态
  • active : 作业是否在运行
  • processed_records_count : 已经处理的记录数
  • inventory_finished_percentage : 完成百分比
  • error_message : 错误信息

6. 提交加密洗数作业 #

copyCOMMIT ENCRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copyCOMMIT ENCRYPTING 'j51017f973ac82cb1edea4f5238a258c25e89';

7. 回滚加密洗数作业 #

copyROLLBACK ENCRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copyROLLBACK ENCRYPTING  'j51017f973ac82cb1edea4f5238a258c25e89';

8. 定义数据解密洗数规则 #

copyALTER DECRYPTING RULE

因 DECRYPTING RULE 具有默认值,无需创建,仅提供 ALTER 语句。

完整配置 DistSQL 示例

copyALTER DECRYPTING 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')))
);

9. 查看数据解密洗数规则 #

copySHOW DECRYPTING RULE

参数说明

示例

copySHOW DECRYPTING RULE

10. 启动解密洗数作业 #

copyDECRYPT TABLE tableName;

参数说明

参数名说明
tableName加密洗数的表

示例

copyDECRYPT TABLE t_user;

启动表的反洗数

copyDECRYPT TABLE t_user;

启动表的指定列的反洗数

copyDECRYPT TABLE t_user (password);

特别说明

在启动反洗数时,若目标表为单表且物理表中不包含明文列,Engine 将会自动创建明文列用于反洗数,否则用户需自行创建明文列。(该特性支持 MySQL、PostgreSQL、openGauss、Oracle 和 Hive 存储单元)

11. 查看解密洗数作业 #

copySHOW DECRYPTING LIST;

参数说明

示例

copySHOW DECRYPTING LIST;

12. 查看解密洗数状态 #

copySHOW DECRYPTING STATUS jobId;

参数说明

参数名说明
jobid作业id

示例

copymysql> SHOW DECRYPTING STATUS j5302p0000e2af8bea809d29f6ab4b3ac4c99b5789;
+------+-------------+----------+--------+---------------------+---------------+
| item | data_source | status   | active | finished_percentage | error_message |
+------+-------------+----------+--------+---------------------+---------------+
| 0    | testdb      | FINISHED | true   | 100                 |               |
+------+-------------+----------+--------+---------------------+---------------+

输出说明

  • data_source : 作业任务项所在存储单元
  • status : 作业状态
  • active : 作业是否在运行
  • finished_percentage : 完成百分比
  • error_message : 错误信息

13. 提交解密洗数作业 #

copyCOMMIT DECRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copyCOMMIT DECRYPTING  'j51017f973ac82cb1edea4f5238a258c25e89';

14. 回滚解密洗数作业 #

copyROLLBACK DECRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copyROLLBACK DECRYPTING  'j51017f973ac82cb1edea4f5238a258c25e89';

15. 换密钥第一阶段语句 #

copyREENCRYPT TABLE WITH RULE tableName 

重洗数支持自动创建明文列,在作业完成后,会自动删除明文列。

参数说明

参数名说明
tableName换密钥的表

示例

copyREENCRYPT TABLE WITH RULE t_encrypt (
COLUMNS(
(NAME=user_id,PLAIN=user_plain,CIPHER=user_cipher,ASSISTED_QUERY_COLUMN=user_assisted,LIKE_QUERY_COLUMN=user_like,ENCRYPT_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='665544aaa'))),ASSISTED_QUERY_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='523234abc'))), LIKE_QUERY_ALGORITHM(TYPE(NAME='CHAR_DIGEST_LIKE'))),
(NAME=order_id, PLAIN=order_plain,CIPHER =order_cipher, ENCRYPT_ALGORITHM(TYPE(NAME='AES',PROPERTIES('aes-key-value'='445533ccc'))))
), QUERY_WITH_CIPHER_COLUMN=true);

16. 换密钥第二阶段洗数语句 #

copySTART REENCRYPTING jobId;

参数说明

参数名说明
jobid换密钥作业的id

示例

copySTART REENCRYPTING j54014fb26631db0f7149741422d86cc5dfe6;

17. 停止加密洗数作业 #

copySTOP ENCRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copySTOP ENCRYPTING 'j51017f973ac82cb1edea4f5238a258c25e89';

18. 重启加密洗数作业 #

copySTART ENCRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copySTART ENCRYPTING 'j51017f973ac82cb1edea4f5238a258c25e89';

19. 停止解密洗数作业 #

copySTOP ENCRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copySTOP DECRYPTING 'j51017f973ac82cb1edea4f5238a258c25e89';

20. 重启解密洗数作业 #

copySTART DECRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copySTART DECRYPTING 'j51017f973ac82cb1edea4f5238a258c25e89';

21. 停止换密钥洗数作业 #

copySTOP REENCRYPTING jobId;

参数说明

参数名说明
jobid作业id

示例

copySTOP REENCRYPTING 'j51017f973ac82cb1edea4f5238a258c25e89';