更新时间:2024-09-18 GMT+08:00

配置ClickHouse表为只读表模式

本章节仅适用于MRS 3.2.0及之后版本。

操作场景

在数据迁移、一键均衡和退服缩容时,ClickHouse支持only_allow_select_statement表级参数,可以对mergetree系列表引擎配置only_allow_select_statement参数来限制alter、rename、drop、insert操作,只允许select操作。

设置表只读模式

  1. 安装客户端,具体请参考安装MRS客户端章节。
  2. 使用root用户登录安装客户端的节点,执行以下命令:

    cd 客户端安装目录

    source bigdata_env

  3. 如果当前集群为安全模式(开启Kerberos认证),执行以下命令认证当前用户,如果当前集群为普通模式(关闭Kerberos认证),则无需执行本步骤。

    kinit 组件业务用户

    该用户需要具有ClickHouse管理员权限。

  4. 执行ClickHouse组件的客户端命令连接服务端。

    • 普通模式:

      clickhouse client --host ClickHouse的实例IP --user 用户名 --password --port 9440 --secure

      输入用户密码

    • 安全模式:

      clickhouse client --host ClickHouse的实例IP --port 9440 --secure

    • MRS 3.2.0-LTS及之前版本:普通模式的用户为默认的default用户,或者使用ClickHouse社区开源能力添加管理用户。不能使用在FusionInsight Manager页面创建的用户。
    • MRS 3.3.0-LTS及之后版本:普通模式可以使用在FusionInsight Manager页面创建的用户。
    • ClickHouse的实例IP地址可登录集群FusionInsight Manager,然后选择“集群 > 服务 > ClickHouse > 实例”,获取ClickHouseServer实例对应的业务IP地址。

  5. 执行如下语句,设置表为只读模式:

    ALTER TABLE {table_name} MODIFY SETTING only_allow_select_statement = true;

解除表只读模式

  1. 参考24登录ClickHouse客户端。
  2. 执行如下语句,解除表只读模式:

    ALTER TABLE {table_name} MODIFY SETTING only_allow_select_statement = false settings hw_internal_operation = true;