StarRocks SHOW CATALOGS 详解:查询集群内部与外部 Catalog 的完整指南 📅 发布时间:2026/9/19 8:46:21 👁 浏览次数: StarRocks SHOW CATALOGS 详解查询集群内部与外部 Catalog 的完整指南【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks导读在 StarRocks 的多 Catalog 体系Multi-Catalog中一个集群可以同时挂载default_catalog内部目录以及 Hive、Hudi、Iceberg、Delta Lake、JDBC 等多个外部数据目录。SHOW CATALOGS是快速盘点当前集群所有 Catalog、验证外部 Catalog 是否创建成功、排查权限配置是否生效的核心运维命令。读完本文你将掌握SHOW CATALOGS的完整语法、输出字段语义、LIKE模糊匹配用法以及它背后在 FE 端的权限过滤与结果排序实现原理。命令概述SHOW CATALOGS用于查询当前 StarRocks 集群中的所有 Catalog包括内部 Catalog 与外部 CatalogSHOW CATALOGS [LIKE pattern]不带任何参数时返回集群内全部 Catalog。使用LIKE子句时仅返回名称匹配指定模式的 Catalog。权限说明SHOW CATALOGS只会向用户返回其拥有USAGE 权限的外部 Catalog。如果当前用户或角色对任何外部 Catalog 都没有 USAGE 权限那么该命令仅返回default_catalog这一个内部目录。该命令的语法定义与实现可以分别在 FE 的 ShowCatalogsStmt.java语句抽象类与 ShowExecutor.java执行器中确认。参数说明参数说明pattern可选参数。与LIKE子句配合使用用于匹配 Catalog 名称。%匹配任意多个字符_匹配任意单个字符。仅返回名称匹配该模式的 Catalog。在 FE 执行器中该模式最终通过PatternMatcher.createMysqlPattern编译为 MySQL 风格的匹配器参见 ShowExecutor.java因此%与_的通配语义与 MySQLLIKE完全一致。返回字段说明命令返回一张包含三列的二维结果集结构如下---------------------------- | Catalog | Type | Comment | ----------------------------各字段含义字段说明CatalogCatalog 名称。TypeCatalog 类型。若为内部目录default_catalog返回Internal若为外部 Catalog则返回其对应的类型如Hive、Hudi、Iceberg等。CommentCatalog 的注释信息。StarRocks 不支持为外部 Catalog 添加注释因此外部 Catalog 的该值为NULL。对于default_catalog默认注释为An internal catalog contains this clusters self-managed tables.。关于内部 Catalog需要明确两点default_catalog是 StarRocks 集群中唯一的内部 Catalog它承载集群自管理的表self-managed tables。内部 Catalog 的类型固定为Internal而外部 Catalog 的类型取决于其创建时使用的连接器Connector。结果集中的类型信息来源于CatalogMgr中对每个 Catalog 记录的连接器类型可通过CatalogMgr.getCatalogType等接口按名称查询参见 CatalogMgr.java。使用示例示例一查询集群中的所有 CatalogSHOW CATALOGS\G *************************** 1. row *************************** Catalog: default_catalog Type: Internal Comment: An internal catalog contains this clusters self-managed tables. *************************** 2. row *************************** Catalog: hudi_catalog Type: Hudi Comment: NULL *************************** 3. row *************************** Catalog: iceberg_catalog Type: Iceberg Comment: NULL在终端中使用\G结尾可以按纵向格式展示结果便于在 Catalog 较多时阅读。上述输出展示了一个同时挂载了 Hudi 与 Iceberg 外部 Catalog 的典型场景内部目录固定显示Internal类型与默认注释外部目录的Comment均为NULL。示例二按名称模式过滤 CatalogSHOW CATALOGS LIKE iceberg%\G *************************** 1. row *************************** Catalog: iceberg_catalog Type: Iceberg Comment: NULLLIKE iceberg%匹配所有以iceberg开头的 Catalog 名称若希望精确匹配单个字符位可将_用于占位例如LIKE iceberg_catalog中_可匹配任意单个字符。底层实现与行为细节1. 结果来自 CatalogMgr 的 Proc Node从源码实现看SHOW CATALOGS的结果集并非在执行器中临时拼装而是直接读取CatalogMgr内部CatalogProcNode的聚合结果public ListListString getCatalogsInfo() { return procNode.fetchResult().getRows(); }参见 CatalogMgr.javaCatalogProcNode汇总了集群内所有已注册 Catalog 的名称、类型与注释是系统表如information_schema中的相关视图与SHOW CATALOGS共用的数据源。2. 过滤与排序逻辑在 ShowExecutor.java 的visitShowCatalogsStatement中执行流程分三步模式过滤若指定了LIKE模式先编译为PatternMatcher仅保留名称匹配的 Catalog权限过滤对每个非default_catalog的外部 Catalog 调用Authorizer.checkAnyActionOnCatalog做 USAGE 级校验校验失败抛出AccessDeniedException的 Catalog 会被剔除——这正是文档中“无权限用户只能看到default_catalog”这一行为的实现来源排序最终结果按 Catalog 名称升序字典序排序后返回保证多次查询输出顺序稳定便于脚本比对。3. 与 SHOW CREATE EXTERNAL CATALOG 的分工SHOW CATALOGS只负责罗列 Catalog 的概要信息名称、类型、注释。若需要查看某个外部 Catalog 的完整建表语句包括脱敏后的连接属性应使用SHOW CREATE EXTERNAL CATALOG。两者的执行入口同位于 ShowExecutor.java前者是“目录清单”后者是“目录 DDL”。常见场景与排查建议场景建议操作验证外部 Catalog 是否创建成功执行SHOW CATALOGS确认目标 Catalog 出现在结果集中且Type列显示预期的连接器类型如Hive、Iceberg。创建后看不到某个外部 Catalog检查当前用户/角色是否被授予该 Catalog 的 USAGE 权限可先以具备管理员权限的用户执行SHOW CATALOGS交叉验证或使用SHOW GRANTS检查授权情况。集群中 Catalog 数量较多结合LIKE按命名前缀过滤例如SHOW CATALOGS LIKE ods%快速定位业务域内的 Catalog。需要导出/审计 Catalog 清单使用SHOW CATALOGS配合客户端重定向如mysql -e SHOW CATALOGS获取结构化输出注意结果按名称排序便于与配置文件比对。小结SHOW CATALOGS是 StarRocks Multi-Catalog 体系中最常用的只读管理命令之一语法简单SHOW CATALOGS [LIKE pattern]支持 MySQL 风格通配符输出清晰三列字段Catalog/Type/Comment足以快速判断每个数据目录的类型与归属权限收敛无 USAGE 权限的用户只能看到default_catalog从执行器源码ShowExecutor.java可以确认这一过滤行为结果稳定Catalog 名称按字典序排序输出适合脚本化巡检。配合 CREATE EXTERNAL CATALOG 与 SHOW CREATE EXTERNAL CATALOG 使用即可完成外部数据目录从创建、核验到复制的完整闭环。【免费下载链接】starrocksThe worlds fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考