Skip to content

分布区

本章节介绍 Ignite 3 的分布区,现在为了获得更好的性能和稳定性,可以微调节点上分区的分布。

1.创建分布区

创建新的分布区。

提示

这个操作也可以通过 Java API 来实现。

CREATE ZONEIF NOT EXISTSqualified_zone_name

关键字和参数:

  • IF NOT EXISTS:仅当不存在同名的分布区时,才创建新的分布区;
  • qualified_zone_name:分布区名;
  • WITH:接受以下附加参数:
    • STORAGE_PROFILES:必须,逗号分割的存储配置列表;
    • PARTITIONS:数据被划分的分区数,然后分区会分散在各个节点存储;
    • REPLICAS:每个分区的副本数;
    • DATA_NODES_FILTER:根据节点属性,指定可用于在分布区中存储数据的节点,可以使用命令行配置节点属性,使用JSONPath规则进行过滤,如果未找到该属性,所有否定比较也将有效。例如$[?(@.storage != 'SSD']},没有指定storage属性的节点也会包含在内;
    • DATA_NODES_AUTO_ADJUST_SCALE_UP:新节点加入与数据区调整开始之间的延迟(秒);
    • DATA_NODES_AUTO_ADJUST_SCALE_DOWN:节点离开集群与数据区调整开始之间的延迟(秒);
    • DATA_STORAGE_ENGINE:数据存储引擎名。

示例:

创建名为exampleZone的分布区:

sql
CREATE ZONE IF NOT EXISTS exampleZone WITH STORAGE_PROFILES='default'

创建一个名为exampleZone的分布区,其将仅使用具有 SSD 属性的节点,并在集群拓扑更改后 300 秒进行调整:

sql
CREATE ZONE IF NOT EXISTS exampleZone WITH DATA_NODES_FILTER='SSD', DATA_NODES_AUTO_ADJUST_SCALE_UP=300, STORAGE_PROFILES='default'

2.更改分布区

修改分布区。

ALTER ZONE RENAME TO

ALTER ZONEIF EXISTSqualified_zone_nameRENAME TOnew_qualified_zone_name

关键字和参数:

  • IF EXISTS:如果指定的分布区不存在不会报错;
  • qualified_zone_name:分布区名;
  • RENAME TO:重命名;
  • new_qualified_zone_name:分布区的新名字。

示例:

exampleZone重命名为renamedZone

sql
ALTER ZONE IF EXISTS exampleZone RENAME TO renamedZone;

ALTER ZONE SET

ALTER ZONEIF EXISTSqualified_zone_nameSET(parameter,)

关键词和参数:

  • IF EXISTS:如果指定的分布区不存在不会报错;
  • qualified_zone_name:分布区名;
  • SET:为下面的一个或多个参数赋值:
    • STORAGE_PROFILES:逗号分隔的存储配置列表;
    • PARTITIONS:分区数;
    • REPLICAS:每个分区的副本数;
    • DATA_NODES_FILTER:根据节点属性,指定可用于在分布区中存储数据的节点;
    • DATA_NODES_AUTO_ADJUST_SCALE_UP:新节点加入与数据区调整开始之间的延迟(秒);
    • DATA_NODES_AUTO_ADJUST_SCALE_DOWN:节点离开集群与数据区调整开始之间的延迟(秒)。

3.删除分布区

删除已有的分布区。

提示

这个操作也可以通过 Java API 来实现。

DROP ZONEIF EXISTSqualified_zone_name

关键字和参数:

  • IF EXISTS:如果指定的分布区不存在不会报错;
  • qualified_zone_name:分布区名。

示例:

删除一个已有的名为exampleZone的分布区:

sql
DROP ZONE IF EXISTS exampleZone

18624049226