联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
6.6.6 多模存储管理
更新时间:4/14/2025, 10:20:57 AM

ArgoDB 中使用 TDDMS 管理数据在存储介质上的合理分片分布,扩缩存储容量时,自动管理数据重分布,充分利用存储资源;保障数据高可用,在存储硬件故障时,保持数据存储服务不中断。

ArgoDB 6.0 及以上版本中,Quark 服务提供 tddms gate 模块实现多 TDDMS 模式功能。即一个 SQL 引擎 Quark 服务能够同时对接访问多个 TDDMS,满足多模型计算存储场景。

功能概述

Quark 的多 TDDMS 模式支持通过 tddms gate 模块实现连接一个 Quark 服务器访问多个 TDDMS 的功能,并通过创建表时设置表参数例如 TBLPROPERTIES("tddms.nameservice"="tddms1") 来指定表存储在对应的 TDDMS1 服务中,并且支持同时对多个 TDDMS 服务中的表数据进行 SELECT/INSERT/UPDATE/DELETE 操作。

quark multi tddms architecture
图 14. 一个 Quark 服务依赖多个 TDDMS

适用场景

Quark 的多 TDDMS 模式,一般适用于以下场景:

  • 多数据源整合

    对于那些需要整合多个数据源实例,Quark 的多 TDDMS 模式可以实现同时处理整合多个数据源。

  • 数据隔离

    在某些情况下,需要将不同的数据分离开,以满足合规性或隐私要求。这个功能可以在保证数据存储隔离的同时,做到灵活访问使用。

  • 多租户支持

    如果你的产品支持多租户,可以使用这个功能来为不同租户提供独立的 TDDMS 实例,以隔离他们的数据和查询。

注意事项

  • Quark 版本需不低于 8.31,且对接的 TDDMS 版本需不低于 2.3.2 时,才支持使用 Quark 的多 TDDMS 模式功能。

  • 支持一个 Quark 对接多个、且不同版本的 TDDMS 服务。

  • Quark 服务对接依赖多个 TDDMS 服务时,需要 TDDMS 服务的 TDDMS Tablet Server 角色与 Quark 服务的 Nucleon Executor 角色在相同的节点上,以保证正确挂载数据目录。

配置多 TDDMS 模式

对于 Manager 9.3.1 及以上版本,我们支持在 Manager 平台界面化的进行配置生效。若您的 Manager 版本较低,推荐升级至 Manager 9.3.1 或联系星环相关技术人员。

通过配置 Quark 服务,在其默认 TDDMS 以外依赖于其他 TDDMS 服务来开启多 TDDMS 模式。

  1. 登录 Transwarp Manager 统一管理平台。

  2. 单击进入需要配置多个 TDDMS 服务的 Quark 服务详情界面,并点击服务右上角,选择 ... > 更新依赖,打开 Quark 服务的依赖配置界面。

    quark update dependence
    图 15. 配置 Quark 服务依赖关系
  3. 依赖包 TDDMS 模块中,选择该 Quark 服务依赖的其他多个 TDDMS 服务。

    quark configure multi tddms
    图 16. 配置多个 TDDMS 服务
  4. 确认修改依赖后,点击配置服务并在弹出框中点击确定下发配置,最后点击重启服务配置生效。

    quark configure dependence restart
    图 17. 配置服务
  5. 通过 Beeline 连接 Quark1,测试创建表并指定存储在 TDDMS2 中:

    CREATE TABLE testholo2 (
        c1 tinyint,c2 SMALLINT,c3 int,c4 bigint,c5 float,c6 double,c7 decimal(18,4),c8 boolean,
        c9 string,c10 char(200),c11 varchar(250),c12 varchar2(300),c13 date,c14 TIMESTAMP)
    partitioned by (p1 string, p2 int)
    CLUSTERED BY(c3)
    stored as holodesk
    TBLPROPERTIES("tddms.nameservice"="tddms2", "holodesk.rowkey"="c3");
    复制
参数说明

配置 Quark 服务开启多 TDDMS 模式之后,会新增如下参数配置,我们向您提供重要参数的相关说明:

参数名称 取值示例 参数说明

quark.multiple.tddms.mode.enable

true

是否启用多 TDDMS 模式。启用后才能配置依赖多个 TDDMS,否则报错。

quark.multiple.tddms.mode.check.strict

true

在启用多 TDDMS 模式的情况下,该参数有效,控制是否严格检查 nameservice 参数。开启本参数后,建表时缺失 tddms.nameservice 属性时会报错。

ngmr.tddms2.default.nameservice

tddms1

Quark 服务默认使用的 TDDMS 服务名称标识。

ngmr.tddms2.nameservices

tddms1,tddms2,tddms3

多 TDDMS 模式下启用的 TDDMS 服务名称标识,用英文逗号“,”间隔。

ngmr.tddms2.mastergroup.XXX

tx-node8:19630,tx-node7:19630,tx-node5:19630

其中“XXX”是在参数 ngmr.tddms2.nameservices 中自定义的多 TDDMS 模式的服务名称。本参数取值是对接的 TDDMS 服务“XXX”对应的 MasterGroup 信息,并用英文逗号“,”隔开。

MasterGroup 信息可以进入对应各 TDDMS 的 TDDMS Webserver 中的 Master 界面中进行查看。

ngmr.shiva.rpc.timeout.XXX

3

TDDMS 服务“XXX”对应的客户端的失败重试次数。

ngmr.shiva.max.error.retry.XXX

120000

TDDMS 服务“XXX”对应的客户端的请求超时时间,单位:毫秒。

ngmr.tddms2.user.XXX

shiva

TDDMS 服务“XXX”对应的客户端的请求的用户名。

ngmr.tddms2.password.XXX

shiva

TDDMS 服务“XXX”对应的客户端的请求的密码

ngmr.tddms2.default.nameservice.holodesk

tddms_argo

默认使用的 ArgoDB 的 TDDMS 集群标识