本文介绍如何通过 Serverless StarRocks 查询 Fluss 中的数据。Fluss 支持通过 StarRocks External Catalog 机制,将 Fluss 注册为外部数据源,实现对 Fluss 数据的即席查询和分析。
使用限制
Serverless StarRocks 3.3.13-1.2.0 及以上版本。
操作步骤
步骤一:创建 Fluss Catalog
在 StarRocks 中执行以下 SQL,将 Fluss 注册为 External Catalog:
CREATE EXTERNAL CATALOG <catalog_name>[COMMENT <comment>]
PROPERTIES
("type" = "fluss",
CatalogParams
);参数说明
参数 | 是否必填 | 说明 |
catalog_name | 是 | Catalog 名称。只能包含字母、数字、下划线,且以字母开头,长度不超过 64 个字符。 |
comment | 否 | Catalog 描述信息。 |
type | 是 | 数据源类型,固定为 |
bootstrap.servers | 是 | Fluss 集群的服务发现地址。可在 Fluss 实例详情页获取。 |
fluss.option.client.security.protocol | 是 | 认证协议。阿里云上默认为 |
fluss.option.client.security.sasl.mechanism | 是 | SASL 认证机制。默认为 |
fluss.option.client.security.sasl.username | 是 | SASL 认证的账号名。 |
fluss.option.client.security.sasl.password | 是 | SASL 认证的账号密码。 |
示例
CREATE EXTERNAL CATALOG `fluss_catalog`
PROPERTIES
("type" = "fluss","bootstrap.servers" = "internal.svc.cluster.local.fluss:9123","fluss.option.client.security.protocol" = "SASL","fluss.option.client.security.sasl.mechanism" = "PLAIN","fluss.option.client.security.sasl.username" = "xxx","fluss.option.client.security.sasl.password" = "xxx");步骤二:查询 Fluss 数据
Catalog 创建完成后,您可以通过以下两种方式查询 Fluss 中的数据。
方式一:跨 Catalog 直接查询
使用三段式命名(Catalog.Database.Table)直接查询,无需切换上下文:
SELECT * FROM <catalog_name>.<database_name>.<table_name>;方式二:切换到 Fluss Catalog 后查询
切换当前会话的 Catalog 和数据库:
-- 切换 CatalogSET CATALOG <catalog_name>;-- 切换数据库USE <db_name>;或一步到位:
USE <catalog_name>.<db_name>;直接查询目标表:
SELECT count(*) FROM <table_name> LIMIT 10;
相关操作
查看已创建的 Catalog
-- 查看所有 CatalogSHOW CATALOGS;-- 查看指定 Catalog 的创建语句SHOW CREATE CATALOG fluss_catalog;查看 Fluss 表结构
DESCRIBE <catalog_name>.<database_name>.<table_name>;查看 Fluss 数据库列表
SHOW DATABASES FROM <catalog_name>;删除 Fluss Catalog
删除 Catalog 仅移除 StarRocks 中的映射关系,不会影响 Fluss 中的实际数据。
DROP CATALOG fluss_catalog;