Fluss Catalog

Fluss Catalog是一种External Catalog,自StarRocks 3.3.13-1.2.0版本开始支持。本文为您介绍如何创建和查看Fluss Catalog。

背景信息

通过Fluss Catalog,您可以:

  • 直接查询Apache Fluss里的数据。

  • 基于Fluss Catalog,结合INSERT INTO能力对Fluss数据源的数据实现转换和导入。

创建Fluss Catalog

语法

CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
    "type" = "fluss",
    CatalogParams
);

参数说明

  • catalog_name:Fluss Catalog的名称,必选参数。命名要求如下:

    • 必须由字母(a~zA~Z)、数字(0~9)或下划线(_)组成,并且只能以字母开头。

    • 总长度不能超过64个字符。

  • comment:Fluss Catalog的描述。此参数为可选。

  • type:数据源的类型。设置为fluss

  • CatalogParams:StarRocks访问Fluss集群元数据的相关参数配置。

    属性

    是否必须

    说明

    bootstrap.servers

    Fluss集群的服务发现地址

    fluss.option.client.security.protocol

    Fluss集群的认证协议,云上默认采用SASL

    fluss.option.client.security.sasl.mechanism

    SASL认证的机制,默认采用PLAIN机制账号密码登录

    fluss.option.client.security.sasl.username

    Sasl认证的账号名

    fluss.option.client.security.sasl.password

    Sasl认证的账号密码

示例

以下示例创建了一个名为fluss_catalogFluss Catalog,用于查询Fluss数据源里的数据。

CREATE EXTERNAL CATALOG `fluss_catalog`
PROPERTIES
(
  "type"  =  "fluss",
  "bootstrap.servers"  =  "internal.svc.cluster.local.fluss:9123",
  "fluss.option.client.security.sasl.mechanism"  =  "PLAIN",
  "fluss.option.client.security.sasl.password"  =  "xxx",
  "fluss.option.client.security.protocol"  =  "SASL",
  "fluss.option.client.security.sasl.username"  =  "xxx"
)

查看Fluss Catalog

您可以通过SHOW CATALOGS查询当前StarRocks集群中的所有Catalog。

SHOW CATALOGS;

您也可以通过SHOW CREATE CATALOG查询某个External Catalog的创建语句。

SHOW CREATE CATALOG fluss_catalog;

删除Fluss Catalog

您可以通过DROP CATALOG删除某个External Catalog。例如,通过如下命令删除名为fluss_catalogFluss Catalog。

DROP CATALOG fluss_catalog;

查看Fluss表结构

您可以通过如下方法查看Fluss表的表结构。

DESC[RIBE] <catalog_name>.<database_name>.<table_name>;

查询Fluss表数据

方法一:跨 Catalog 直接查询

无需切换上下文,直接使用三段式命名空间查询。

SELECT * FROM <catalog_name>.<database_name>.<table_name>;

方法二:设置会话级默认 Catalog 和 Database

  1. 通过SHOW DATABASES查看指定Catalog所属的Fluss Catalog中的数据库。

    SHOW DATABASES FROM <catalog_name>;
  2. 选择目标数据库。

    -- 通过 SET CATALOG切换当前会话生效的Catalog。
    SET CATALOG <catalog_name>;
    -- 通过use指定数据库
    USE <db_name>;

    或一步到位:

    USE <catalog_name>.<db_name>;
  3. 通过SELECT查询目标数据库中的目标表。

    SELECT count(*) FROM <table_name> LIMIT 10;