External Catalog 与 External Schema
External Catalog 和 External Schema 是 Lakehouse 的联邦查询入口,让你用标准 SQL 直接查询外部数据源(Hive、Databricks、Iceberg REST Catalog 等),无需复制数据。
类比:它们像 Lakehouse 的"透视镜"——数据保留在外部系统,但你可以在 Lakehouse 里直接查询或 JOIN。External Catalog 是独立的顶层目录(三层命名
catalog.schema.table),适合统一管理多个外部系统;External Schema 则是挂载到当前工作空间的快捷方式(两层命名 schema.table),更适合日常查询。
核心特性
零存储开销:数据保留在外部系统(OSS/S3/HDFS),Lakehouse 仅读取元数据和数据文件,不产生存储费用。
只读访问:External Catalog 和 External Schema 下的表仅支持查询(SELECT)和创建视图,不支持 INSERT/UPDATE/DELETE。
实时元数据:通过 HMS(Hive Metastore)或 Databricks API 实时获取元数据,外部表结构变更自动同步。
External Catalog vs External Schema 选型
| 维度 | External Catalog | External Schema |
|---|---|---|
| 命名方式 | 三层: | 两层: |
| 层级位置 | 独立的顶层目录 | 挂载到当前工作空间的 Schema |
| 适用场景 | 统一管理多个外部系统 | 将单个外部数据库融入现有工作空间 |
| 查询示例 | | |
| 支持的数据源 | Hive、Databricks、Iceberg REST Catalog、Snowflake Open Catalog | Hive、Databricks |
何时使用 External Catalog?
| 场景 | 原因 |
|---|---|
| 统一管理多个外部系统 | 三层命名结构清晰,适合多目录管理 |
| 跨平台联邦查询 | 同时查询 Hive、Databricks、Snowflake 等多个外部系统 |
| 渐进式数据迁移 | 迁移过程中保持业务连续性,验证数据一致性 |
何时使用 External Schema?
| 场景 | 原因 |
|---|---|
| 日常查询外部 Hive 数据 | 两层命名更简洁,像本地表一样查询 |
| 将外部数据库融入现有工作空间 | 挂载到当前 Schema,无需切换 Catalog |
| 历史数据查询 | 数据保留在 Hive,按需查询,无需导入 Lakehouse |
何时不该用联邦查询?
| 场景 | 推荐替代方案 | 原因 |
|---|---|---|
| 频繁查询、数据加工 | 数据同步到 Lakehouse 本地表 | 联邦查询受网络延迟影响,本地表性能更优 |
| 需要修改外部数据 | 数据同步任务 | 联邦查询仅支持只读 |
快速示例
External Catalog:三层命名查询
External Schema:两层命名查询
常见问题
常见问题 1:在 External Catalog/Schema 下执行 DML 操作
问题:尝试
INSERT INTO hive_catalog.sales_db.orders VALUES (...)。
症状:报错
External table does not support DML operations。
解决:
- External Catalog/Schema 下的表仅支持只读查询
- 如需写入,请先将数据
导入本地表INSERT INTO local_table SELECT ... FROM hive_catalog.sales_db.orders
常见问题 2:在 External Schema 下创建或删除表
问题:尝试
CREATE TABLE hive_sales.new_table (...) 或 DROP TABLE hive_sales.old_table。
症状:报错
Cannot create/drop table in external schema。
解决:
- External Schema 是外部数据库的直接映射,表结构由外部系统管理
- 如需修改表结构,请在外部系统(如 Hive)中操作
常见问题 3:外部表权限无法单独授权
问题:尝试对 External Schema 下的某张表单独授权。
症状:授权失败或无效。
解决:
- 目前 External Schema 下的表不支持单表授权,仅支持
级别授权ALL TABLES - 如需细粒度权限控制,请将数据同步到 Lakehouse 本地表
成本影响
存储成本
- External Catalog/Schema 本身仅存储元数据映射关系,几乎零存储成本
- 外部数据保留在 OSS/S3/HDFS,按云厂商标准计费
计算成本
- 查询外部表消耗 VCluster CRU
- 跨网络查询外部数据可能比本地查询慢,建议将频繁查询的数据同步到本地
生命周期管理
创建和删除
相关文档
- 湖上原地加速方案实施指南 — POC 快速验证,完整三步实施流程
- External Catalog 简介 — External Catalog 完整概念
- External Catalog 联邦查询 — 详细使用指南、操作示例、架构原理
- 创建 External Catalog — CREATE EXTERNAL CATALOG 语法
- 创建 External Schema — 完整语法和各云平台参数
- 使用 External Schema — 详细操作指南
- 组织层级 — External Catalog vs External Schema 选型说明
联系我们
