多租户

1.创建租户

create tenant jarvex;

2.查看租户

show tenants;

查看租户

3.启动租户

使用创建的租户启动 Executor。

注意:创建普通租户并启动 Executor 时,它会初始化与根租户相同的所有元数据表,并使用根用户和相同的默认密码登录,连接到普通租户。

模式 1

通过环境变量(可以是系统变量、用户变量或会话临时变量),这里我们以系统变量为例:

  • 步骤 1:编辑 /etc/profile 文件,添加系统环境变量。

export tenant=1001
  • 第 2 步:保存并退出,执行源文件 /etc/profile

如果当前执行器是通过 0 租户启动的,请重启执行器,然后连接到该租户的执行器,检查租户:非 0 租户,show tenants 只显示当前租户本身。这说明通过普通租户启动成功。

启动新租户

模式 2

  • 第 1 步:首先指定租户参数(在 start-executor.sh 脚本中指定),然后再次创建一个新租户 (1002)

  • 步骤 2:在 start-executor.sh 中指定租户 id: -tenant 1002 \ 如下所示:

启动新租户

  • 步骤 3:重新启动 Executor,然后连接到该节点的地址,查看当前租户是否为指定的租户 ID。

启动新租户

4.更新租户信息

只有根租户才有更新租户的权限。通过 shell 命令行操作只能更新租户名称。执行命令:

alter tenant <old_name> rename as <new_name>;

更新后,可以看到租户名称已更新,UPDATE_TIME 是更新的时间,租户 ID 保持不变。更新租户](.../../images/sql_multi_tenant_update.png)

5.删除租户

说明:

  • 只有根租户才有删除租户的权限,而且只能删除普通租户,不能删除根租户本身。

  • 成功删除租户后,该租户下的所有元数据和用户数据都将被删除。因此,删除租户时请务必小心。

  • 为便于跟踪租户历史信息,已删除的租户仍会显示在租户列表中,IS_DELETE 显示为 true

  • 删除租户,启动执行器将失败(即租户不再可用)

  • 删除租户的 Shell 命令行,只支持按租户名称删除,不支持按租户 ID 删除。

  • 如果已删除的租户下有已创建的数据。不允许直接删除,如果需要删除,需要使用 purge_resources 参数。

  • 如果租户下没有创建新的数据表或模式,则可直接删除租户。

  • 如果租户下有数据,直接删除会返回失败:

drop tenant <tenant_name>;

删除租户 如果租户下有数据,使用 purge_resources 参数可以成功删除。

注意:已删除的租户仍将显示在租户列表中,IS_DELETE 字段将变为 true

drop tenant <tenant_name> if purge_resources;

删除租户 如果租户下没有创建新数据,可直接删除 删除租户