联邦查询
联邦查询让你用标准 SQL 直接查询外部数据系统(Hive、Databricks、Iceberg、Snowflake 等)中的数据,无需迁移或复制数据。通过
CREATE EXTERNAL CATALOG,将外部数据目录映射到 Lakehouse,实现跨系统统一查询。
支持的外部数据源
| 外部系统 | 连接方式 | 典型场景 |
|---|---|---|
| Apache Hive | Hive Metastore URIs | 原有 Hive 数仓原地加速,替换 Presto/Trino |
| Databricks Unity Catalog | Databricks API | 跨平台联邦分析,Databricks 数据不搬迁 |
| Iceberg REST Catalog | Iceberg REST API | 查询任意兼容 Iceberg REST 协议的数据湖 |
| Snowflake Open Catalog | Iceberg REST API + OAuth | 访问 Snowflake 管理的 Iceberg 表 |
核心概念
访问外部数据有三种独立方式,适用场景不同:
External Catalog(推荐)
将外部数据系统(Hive/Databricks/Snowflake/Iceberg REST)映射为顶层目录,其下的 Schema 和 Table 自动对应外部系统的结构:
查询使用三层命名:
external_catalog.schema.table
支持:Hive、Databricks Unity Catalog、Iceberg REST(含 Snowflake Open Catalog)
External Schema(单独使用)
不通过 External Catalog,直接将外部 Hive Database 挂载到当前 Workspace 的内部 Catalog 下,使用两层命名
schema.table(等价于 <当前内部catalog>.schema.table)。HMS 直接映射——整个 Database 下所有表一次性可查,新增表自动可见,无需逐表定义。
支持:Hive(OSS/COS/GCS/HDFS)。只读,不支持 DML。
External Table(单独使用)
在当前 Workspace 内部 Catalog 的普通 Schema 下创建指向外部存储的单张表,使用两层命名
schema.table。与 External Schema 的区别是:可以自定义列名和类型,支持重命名和修改注释。
支持:Kafka、Delta Lake、Hudi。只读,不支持 DML。
三种方式对比
| External Catalog | External Schema(单独) | External Table(单独) | |
|---|---|---|---|
| 所在 Catalog | 独立的外部 Catalog | 当前 Workspace 内部 Catalog | 当前 Workspace 内部 Catalog |
| 命名方式 | 三层 | 两层 | 两层 |
| 适用场景 | 跨平台联邦分析 | Hive 整库挂载融入工作空间 | 单张外部表自定义映射 |
| 支持数据源 | Hive、Databricks、Iceberg REST、Snowflake | Hive | Kafka、Delta Lake、Hudi |
| 表结构定义 | 自动映射外部系统 | 自动映射 HMS | 手动定义列名和类型 |
| 新增外部表可见 | 需重新映射 | 自动可见 | 逐表创建 |
选型参考:External Catalog vs External Schema
快速开始
External Catalog 依赖预先创建的 Catalog Connection(存储连接 → Catalog Connection → External Catalog)。完整配置步骤见 外部对象使用指南。
创建完成后,使用标准 SQL 查询:
本章内容
| 页面 | 说明 |
|---|---|
| 外部对象使用指南 | External Catalog / Schema / Table 的创建、查询、管理完整操作 |
| 访问 Snowflake OpenCatalog Iceberg 表 | 通过 Iceberg REST API 联邦查询 Snowflake 管理的 Iceberg 数据 |
| Databricks Unity Catalog 联邦查询实践 | 从零配通的完整操作路径,含实测验证和常见报错排查 |
相关文档
- External Catalog 概述 — 功能介绍、支持数据源、权限说明
- External Catalog 联邦查询指南 — 详细操作示例与架构原理
- 创建 External Catalog — DDL 语法参考
- 创建 Hive Catalog — Hive 连接配置详解
- 湖上原地加速方案 — 不搬数据替换 Spark/Hive 和 Presto/Trino 的完整方案
- Databricks Unity Catalog 联邦查询实践 — 从零配通的完整操作路径,含实测验证
联系我们
