管理StarRocks Catalog

更新时间:
复制 MD 格式

Catalog提供了元数据信息,例如数据库、表、分区以及数据库或其他外部系统中存储的函数和信息。配置StarRocks Catalog后,您可以在实时计算开发控制台直接读取StarRocks元数据,无需再手动注册StarRocks表,提高作业开发的效率且保证数据的正确性。本文为您介绍如何在创建、查看、使用及删除StarRocks Catalog。

使用限制

  • 仅实时计算引擎VVR-6.0.6-Flink-1.15及以上版本支持配置StarRocks Catalog。

  • 不支持通过Catalog创建和修改StarRocks表。

创建StarRocks Catalog

支持UISQL命令两种方式配置StarRocks Catalog,推荐使用UI方式配置StarRocks Catalog。

UI方式

  1. 进入数据管理页面。

    1. 登录实时计算控制台,单击目标工作空间操作列下的控制台

    2. 单击数据管理

  2. 单击创建Catalog,选择StarRocks,单击下一步

  3. 填写参数配置信息。

    重要

    Catalog创建完成后,以下配置信息都不支持修改。如果需要修改,则您需要删除掉已创建的Catalog,重新进行创建。

    配置项

    说明

    是否必填

    备注

    catalog name

    StarRocks Catalog名称。

    仅支持小写字母a-z和数字0-9,不含大写字母、中划线(-)、下划线(_)等特殊字符。

    endpoint

    StarRocksFE(Front End)访问地址。

    指定FEIPJDBC端口,格式为jdbc:mysql://ip:port。一般为9030。

    dbname

    访问StarRocks的默认数据库名称。

    无。

    username

    访问StarRocks的用户名。

    无。

    password

    访问StarRocks的密码。

    为了避免您的密码信息泄露,建议您使用变量的方式填写,详情请参见项目变量

  4. 单击确定

  5. 在左侧元数据区域,查看创建的Catalog。

SQL命令

  1. 数据查询文本编辑区域,输入创建StarRocks Catalog的命令。

    CREATE CATALOG <catalogname> WITH (
      'type' = 'starrocks',
      'endpoint' = '<ip>:<port>', 
      'username' = '<userName>',
      'password' = '<password>',
      'dbname' = '<dbname>'
    );

    VVR 11及以上版本

    配置项

    说明

    是否必填

    备注

    catalogname

    StarRocks Catalog名称。

    仅支持小写字母a-z和数字0-9,不含大写字母、中划线(-)、下划线(_)等特殊字符。

    type

    类型。

    固定值为starrocks。

    endpoint

    StarRocksFE(Front End)访问地址。

    指定FEIPJDBC端口,格式为jdbc:mysql://ip:port。一般为9030。

    jdbc-url

    用于访问FE节点上的MySQL服务器。

    多个地址用英文逗号(,)分隔。格式:jdbc:mysql://<fe_host1>:<fe_query_port1>,<fe_host2>:<fe_query_port2>

    重要

    您可选择配置jdbc-urlhttp-url(需同时配置) 或endpoint参数,两种方式效果一致,任选其一即可。

    http-url

    用于访问FE节点上的HTTP服务器。

    多个地址用英文分号(;)分隔。格式:<fe_host1>:<fe_http_port1>;<fe_host2>:<fe_http_port2>

    重要

    您可选择配置jdbc-urlhttp-url(需同时配置) 或endpoint参数,两种方式效果一致,任选其一即可。

    username

    访问StarRocks的用户名。

    无。

    password

    访问StarRocks的密码。

    为了避免您的密码信息泄露,建议您使用变量的方式填写,详情请参见项目变量

    dbname

    访问StarRocks的默认数据库名称。

    无。

    default-database

    访问StarRocks的默认数据库名称。

    兼容社区版本参数,效果同dbname。任选其一即可。

    table.num-buckets

    指定通过Catalog创建的表,每个分区默认包含的Bucket数。

    无默认值。

    table.char-expand-multiple

    指定通过Catalog创建的表,varcharchar类型长度相比于源表类型的长度扩大倍数。

    默认扩大为4倍。

    table.binary-padding

    指定通过Catalog创建的表,varbinarybinary类型长度相比于源表类型的扩大长度。

    默认扩大2个字符长度。

    table.key-type

    指定通过Catalog创建的表类型。

    参数取值如下:

    • PRI:主键表。

    • UNI:唯一键表。

    • AGG:聚合键表。

    • DUP:明细表。

    默认值为PRI。

    table.keys

    指定通过Catalog创建的表的key字段。

    无默认值。

    table.distribution-keys

    指定通过Catalog创建的表的分布列(分桶键)。

    不配置时,主键表默认使用主键作为分桶键。

    重要

    请勿将此参数配置为空字符串(''),否则主键表会因分桶列为空而报错 Distribution column() doesn't exist。如需使用主键作为分桶键,不配置此参数即可。

    table.enable-null-primary-key

    支持将下游可空列映射为主键。

    参数取值如下:

    • false(默认值)

    • true

    重要

    此参数强制将 StarRocks 的可空主键列视为非空。确保上游输入数据不含 NULL 值,否则会导致非预期问题。

    VVR 8及以下版本

    配置项

    说明

    是否必填

    备注

    catalogname

    StarRocks Catalog名称。

    仅支持小写字母a-z和数字0-9,不含大写字母、中划线(-)、下划线(_)等特殊字符。

    type

    类型。

    固定值为starrocks。

    endpoint

    StarRocksFE(Front End)访问地址。

    指定FEIPJDBC端口,格式为jdbc:mysql://ip:port。一般为9030。

    username

    访问StarRocks的用户名。

    无。

    password

    访问StarRocks的密码。

    为了避免您的密码信息泄露,建议您使用变量的方式填写,详情请参见项目变量

    dbname

    访问StarRocks的默认数据库名称。

    无。

  2. 选中创建Catalog的代码后,单击左侧代码行数上的运行

    CREATE CATALOG starrocks WITH (
        'type' = 'starrocks',
        'endpoint' = '<ip>:<port>',
        'username' = '<userName>',
        'password' = '<password>',
        'dbname' = '<dbname>'
    );

查看StarRocks Catalog

StarRocks Catalog配置成功后,您可以通过以下步骤查看StarRocks元数据。

  1. 进入数据管理页面。

    1. 登录实时计算控制台

    2. 单击目标工作空间操作列下的控制台

    3. 单击数据管理

  2. Catalog列表页面,查看Catalog名称类型

    说明

    如果您需要查看Catalog下的数据库和表,请单击查看

使用StarRocks Catalog

StarRocks表中读取数据

VVR 11及以上版本

INSERT INTO ${other_sink_table}
SELECT ...
FROM `${catalog_name}`.`${db_name}`.`${table_name}`

VVR 8及以下版本

说明

OPTIONS为必填项,用于配置读取starrocks源表的参数。

INSERT INTO ${other_sink_table}
SELECT ...
FROM `${catalog_name}`.`${db_name}`.`${table_name}`
    /*+
        OPTIONS('connector' = 'starrocks', 'jdbc-url' = 'jdbc:mysql://ip:port', 'scan-url' = 'ip:port')
    */

写入结果数据至StarRocks

VVR 11及以上版本

INSERT INTO `${catalog_name}`.`${db_name}`.`${table_name}`
SELECT ... 
FROM ${other_source_table}

VVR 8及以下版本

说明

OPTIONS为必填项,用于配置写入starrocks结果表的参数。

INSERT INTO `${catalog_name}`.`${db_name}`.`${table_name}`
 /*+
        OPTIONS('connector' = 'starrocks', 'jdbc-url' = 'jdbc:mysql://ip:port', 'load-url' = 'ip:port', 'sink.buffer-flush.interval-ms' = '5000','sink.properties.row_delimiter' = '\x02',
'sink.properties.column_separator' = '\x01')
    */
SELECT ... 
FROM ${other_source_table}

作为CTAS&CDAS的目标端Catalog

use catalog sr_catalog;
CREATE TABLE IF NOT EXISTS `${table_name}`
WITH (
  ...
) AS TABLE ${other_source_table};
CREATE DATABASE IF NOT EXISTS `${db_name}`
WITH (
 ...
) AS DATABASE ${other_source_database};

详情请参见基于实时计算Flink使用CTAS语句同步MySQL数据至StarRocks

删除StarRocks Catalog

支持UISQL命令两种方式删除StarRocks Catalog,推荐使用UI方式删除StarRocks Catalog。

UI方式

  1. 进入数据管理页面。

    1. 登录实时计算控制台

    2. 单击目标工作空间操作列下的控制台

    3. 单击数据管理

  2. Catalog列表页面,单击目标Catalog名称对应操作列的删除

  3. 在弹出的提示页面中,单击删除

  4. 左侧元数据区域下,查看目标Catalog是否已删除。

SQL命令方式

  1. 数据查询文本编辑区域,输入以下命令。

    DROP CATALOG `<catalog name>`;

    其中,<catalog name>是您StarRocks Catalog的名称。

    重要

    删除StarRocks Catalog不会影响已运行的作业,但对未上线或者作业需要暂停恢复的作业均产生影响,请您谨慎操作。

  2. 选中删除Catalog的命令,鼠标右键选择运行

  3. 在左侧元数据区域,查看目标Catalog是否已删除。