本文介绍什么是 Catalog, 以及如何使用 Catalog 管理和查询内外部数据。
StarRocks 自 2.3 版本起支持 Catalog(数据目录)功能,实现在一套系统内同时维护内、外部数据,方便您轻松访问并查询存储在各类外部源的数据。
内部数据:指保存在 StarRocks 中的数据。
外部数据:指保存在外部数据源(如 Apache Hive™、JDBC)中的数据
当前 StarRocks 提供两种类型 Catalog:internal catalog 和 external catalog。
Internal catalog: 内部数据目录,用于管理 StarRocks 所有内部数据。例如,执行 CREATE DATABASE 和 CREATE TABLE 语句创建的数据库和数据表都由 internal catalog 管理。 每个 StarRocks 集群都有且只有一个 internal catalog 名为 default_catalog。
External catalog: 外部数据目录,用于连接外部 metastore。在 StarRocks 中,您可以通过 external catalog 直接查询外部数据,无需进行数据导入或迁移。当前支持创建以下类型的 external catalog:
Hive catalog:用于查询 Hive 集群中的数据。
JDBC catalog:用于查询 JDBC 数据源中的数据。
使用 external catalog 查询数据时,StarRocks 会用到外部数据源的两个组件:
元数据服务:用于将元数据暴露出来供 StarRocks 的 FE 进行查询规划。
存储系统:用于存储数据。数据文件以不同的格式存储在分布式文件系统或对象存储系统中。当 FE 将生成的查询计划分发给各个 BE(或 CN)后,各个 BE(或 CN)会并行扫描 Hive 存储系统中的目标数据,并执行计算返回查询结果。
您可以使用 SET CATALOG 切换当前会话里生效的 Catalog,然后通过该 Catalog 查询数据
但在产品对Catalog的使用进行能力封装,通过选择具体的Catalog来时间当前会话Catalog的切换
查询内部数据
如要查询存储在 StarRocks 中的数据,请参见内部数据管理。
查询外部数据
如要查询存储在外部数据源中的数据,请参见外部数据管理。
我们的产品专家为您找到最合适的产品/解决⽅案
1v1线上咨询获取售前专业咨询
专业产品顾问,随时随地沟通