云器 Lakehouse 基本概念
本章节详细介绍云器 Lakehouse 中的基本概念,帮助您理解产品的设计理念和各组件之间的关系。
账户(Account)
账户是你们公司与云器的合同主体,相当于一个企业主账号。
账户是云器 Lakehouse 的商业关系实体,代表与云器公司建立合作关系的组织或个人。
核心职责:
- 账户负责充值、出账单、费用支付以及订购/变更云器产品
- 所有服务实例及其资源对象都归属于特定账户
- 账户是权限和费用管理的最高层级
账户 URL:每个账户都有唯一的访问地址,格式为
<account_name>.accounts.clickzetta.com。
用户(User)
用户是账户下的具体操作人员,类似于企业 IT 系统中的员工账号,每个人有自己的权限范围。
用户是账户下的具体操作人员。一个账户可以创建多个用户,不同用户通过权限控制分配可使用的数据和资源。
与账户的关系:
- 用户属于账户,不能跨账户
- 用户需要加入工作空间才能使用其中的对象
- 权限可以授予用户或角色
服务实例(Lakehouse Instance)
服务实例是你在某个云区域部署的一套完整 Lakehouse 环境,类似于在阿里云上开通的一个独立数据仓库实例。
服务实例是云器 Lakehouse 产品服务的载体,包含计算、存储和元数据等全部资源。
关键特性:
- 一个账户下可以创建一个或多个服务实例
- 服务实例具备区域属性,计算、数据和其他服务资源均在此云服务商的区域内
- 不同服务实例间默认相互隔离
- 实例内采用统一元数据管理数据对象、计算资源、作业任务
工作空间(Workspace)
工作空间是团队的独立开发环境,类似于 Git 仓库中的不同项目——不同团队在各自的工作空间内操作,互不干扰。
工作空间是组织 Lakehouse 资源对象(数据对象、计算资源、用户等)的逻辑容器,并提供配套的数据开发能力。
核心能力:
- 组织管理 Schema、表、视图等数据对象
- 提供数据集成、开发调度、运维监控等工具
- 工作空间之间默认隔离,用户需加入工作空间才能使用其中对象
- 通过跨工作空间授权实现同一实例下不同工作空间内对象的共享
与工作流的关系:一个服务实例下可以创建多个工作空间,每个工作空间有独立的开发环境和调度系统。
计算集群(Virtual Cluster / VCluster)
计算集群是按需启动的计算资源,用完即停,不用时不产生费用——类似于打车,需要时叫来,用完就走。
计算集群由多实例虚拟计算集群和运行在其中的计算服务构成,为作业提供 CPU、内存和临时存储资源。
三种类型:
| 类型 | 适用场景 | 特性 |
|---|---|---|
| 通用型(GP VC / GENERAL) | 离线 ETL、数据开发 | 作业共享资源,公平调度 |
| 分析型(AP VC / ANALYTICS) | 在线查询、高并发分析 | 多计算实例、自动弹缩 |
| 同步型(Integration VC / SYNC) | 数据同步任务 | 专为数据同步优化 |
计费方式:按 CRU(Compute Resource Unit)× 小时计费,不同集群类型的 CRU 步长不同。
弹性能力:
- 分析型集群支持自动扩缩容,根据并发数自动增减计算实例
- 所有集群支持自动挂起和恢复,空闲时自动暂停以节省成本
Workspace 与 Catalog 的关系
这是 Lakehouse 中最容易混淆的概念之一。
Workspace(工作空间) 是 Lakehouse 的原生概念,有两层含义:
- 平台层:数据对象的顶层命名空间,等价于传统数据库的 Database(三层结构:
)workspace.schema.table - Studio 层:数据开发环境的隔离单元,包含独立的用户、角色、VCluster、Studio 任务调度等
Catalog 是引入联邦查询后出现的更通用术语,用来统一描述"顶层命名空间":
| category | 说明 | 创建方式 |
|---|---|---|
| 原生 Workspace,同时具备平台层和 Studio 层能力 | 在控制台创建 Workspace |
| External Catalog,映射外部数据源(Hive/Databricks/Iceberg 等) | |
| 系统共享数据集(如 TPC-H、TPC-DS 基准数据) | 系统内置 |
和SHOW WORKSPACES
返回相同的结果SHOW CATALOGS
和current_workspace()
返回相同的值current_catalog()- 三层命名支持
和workspace.schema.table
两种写法catalog.schema.table
非 MANAGED 类型不支持写操作:EXTERNAL、SHARED 和系统内置的
sys 命名空间均只读,尝试在其中创建表或执行 DML 会报权限错误:
- SHARED:
NoPermission: Only read actions are allowed on shared object - SYS:
NoPermission: Workspace sys is readonly, AT_CREATE_TABLE operation is not allowed - EXTERNAL:取决于外部数据源类型,通常也不支持写入
这三类命名空间可以通过三层命名(
catalog.schema.table)执行查询,但不能作为数据写入目标,也没有 Studio 层(无 VCluster、用户管理、任务调度)。
Schema
Schema 是工作空间内数据对象的命名空间,用来组织表、视图、动态表等,类似于文件系统中的文件夹。
Schema 是工作空间内一组数据对象的命名空间,包括表、视图、动态表、物化视图等。
与 Workspace 的关系:
- 一个工作空间可以包含多个 Schema
- Schema 是表等对象的直接容器
- 完整三层命名:
(类似 PostgreSQL/Snowflake 的workspace.schema.table
)database.schema.table
表(Table)
表是 Lakehouse 中存放结构化数据的基本单元,和关系型数据库中的表概念一致。
表是 Lakehouse 中最基本的数据存储对象,以格式化的二维数据形式存储。
存储格式:默认使用 Parquet 格式,支持高效压缩和列式查询。
表类型:Lakehouse 提供多种表类型,详见 概念索引。
动态表(Dynamic Table)
动态表是会自动更新的数据表,你只需定义好加工逻辑,它会按设定的频率自动把最新数据算好存进来,省去手动跑 ETL 的麻烦。
动态表是一种基于查询定义自动增量刷新的数据对象。创建时通过 SQL 查询定义数据加工逻辑,刷新时自动获取源表的增量数据,采用增量算法进行计算。
核心优势:
- 增量计算:仅处理自上次刷新以来变化的数据,大幅减少计算资源消耗
- 自动刷新:可配置刷新间隔(分钟/小时/天),无需手动触发
- 版本管理:支持 Time Travel 查询历史版本,支持 UNDROP 恢复误删
适用场景:
- DWD/DWS/ADS 层数据加工
- 指标汇总和报表宽表
- 替代传统定时全量刷新的 ETL 任务
与物化视图的区别:
- 动态表专注于数据加工,不依赖查询优化器的查询改写
- 物化视图专注于查询加速,优化器会自动识别并使用预存结果进行查询改写
物化视图(Materialized View)
物化视图是把常用查询的结果提前算好并存下来,查询时直接读缓存结果,速度更快——优化器会自动帮你决定什么时候用它。
物化视图是一种预计算并存储查询结果的特殊视图,与普通视图不同,物化视图在 Lakehouse 中实际存在并占用存储资源。
核心特性:
- 查询优化器会自动识别并使用物化视图进行查询改写
- 采用定时刷新机制保持数据最新
- 适合预计算并复用查询结果的场景
视图(View)
视图是一个保存好的查询快捷方式,本身不存数据,每次查询时实时执行底层 SQL,类似于 Excel 中的公式引用。
视图是一种虚拟表,不存储实际数据,仅保存查询定义。查询时动态执行底层 SQL。
适用场景:
- 简化复杂查询,提供逻辑抽象层
- 查询复杂度不高、不涉及大量数据加工的场景
Table Stream
Table Stream 是 Lakehouse 的变更数据捕获(CDC)机制,相当于给表装了一个"变更监听器",记录每一次数据的增删改,供下游任务消费。
Table Stream 是 Lakehouse 的变更数据捕获(CDC)机制,用于捕获表对象的变化数据。
工作原理:
- Table Stream 不存储实际数据,仅记录和维护源表的数据版本位点
- 查询时返回从初始位点到当前最新版本的所有变化记录
- 通过 DML 操作(INSERT/DELETE/UPDATE/MERGE)消费时,位点自动更新
两种类型:
| 类型 | 跟踪范围 | 适用场景 |
|---|---|---|
| STANDARD | 所有 DML 变化(INSERT、UPDATE、DELETE) | 需要完整捕获数据变更的 ETL 场景 |
| APPEND_ONLY | 仅 INSERT 操作 | 日志类、事件类仅追加的数据场景 |
与动态表的关系:
- Table Stream 是底层 CDC 机制,负责捕获变化
- 动态表是高级数据加工特性,基于增量计算实现数据转换
- 两者可协同工作:Table Stream 捕获变化 → 动态表执行转换聚合
典型操作:
Pipe
Pipe 是一条持续运行的数据导入管道,类似于水管——只要数据源有新数据进来,就会自动流进 Lakehouse,无需手动触发。
Pipe 是 Lakehouse 的持续数据导入管道对象,用于从 Kafka 或对象存储(OSS/S3/COS)持续导入数据到表中。
核心特点:
- Pipe 是 SQL 对象,通过 DDL 创建和管理
- 创建后持续运行,自动从数据源读取数据并写入目标表
- 无需配置 Cron 调度,Pipe 自身就是持续运行的流式任务
与 Studio 同步任务的区别:
| 维度 | Pipe | Studio 同步任务 |
|---|---|---|
| 创建方式 | SQL DDL | Studio 可视化界面 |
| 管理方式 | SQL 命令 | Studio 界面 + cz-cli |
| 数据源 | Kafka、对象存储 | 关系型数据库、Kafka、对象存储 |
| 适用场景 | 熟悉 SQL 的用户 | 偏好可视化配置的用户 |
两种类型:
- Kafka Pipe:从 Kafka Topic 持续消费数据并写入 Lakehouse 表
- 对象存储 Pipe:从 OSS/S3/COS 持续扫描新文件并导入
Volume
Volume 是 Lakehouse 访问文件的入口,相当于把 OSS/S3/COS 等对象存储"挂载"进来,让你可以用 SQL 直接读写里面的文件。
Volume 是 Lakehouse 的对象存储挂载点,用于访问 OSS/COS/S3 等外部存储中的文件,或作为 Lakehouse 内置的文件存储空间。
四种类型:
| 类型 | 说明 | 创建方式 | 存储位置 |
|---|---|---|---|
| External Volume | 挂载用户自有的对象存储(OSS/COS/S3),数据留在原位 | | 用户自有云存储 |
| Managed Volume | Lakehouse 托管的内部存储,平台负责存储管理 | | Lakehouse 内部存储 |
| User Volume | 每个用户专属的文件空间,用于上传临时文件、导入导出 | 系统自动创建 | Lakehouse 内部存储 |
| Table Volume | 每张表关联的文件空间,存放表的数据文件 | 系统自动创建(每表一个) | Lakehouse 内部存储 |
与 Table 的关系:
- Volume 管理文件,Table 管理结构化数据
- Volume 是数据入湖的通道,Table 是数据加工的对象
- 通过
将 Volume 中的文件数据导入到 TableCOPY INTO
典型操作:
Time Travel
Time Travel 让你像"时光机"一样回溯历史数据——可以查询任意时间点的数据快照,也可以恢复被误删的表或回滚被误改的数据。
Time Travel 是 Lakehouse 的历史数据访问功能,允许用户在定义的时间段内访问任意时间点的数据。
核心机制:
- 基于 MVCC(多版本并发控制),每次数据变更生成新版本
- 默认保留 1 天历史数据,可配置为 0-90 天
- 支持查询历史版本、恢复误删表(UNDROP)、回滚数据(RESTORE)
三大能力:
| 能力 | 命令 | 适用场景 |
|---|---|---|
| 历史查询 | | 对比不同时间点的数据变化 |
| 恢复误删表 | | 表被 DROP 后恢复 |
| 回滚数据 | | 数据被误改/误删后回滚 |
典型操作:
数据生命周期(TTL)
数据生命周期是给数据设置"保质期"的机制,超过设定时间未更新的数据会被自动清理,帮助控制存储成本。
数据生命周期是 Lakehouse 的自动数据清理机制,超期未更新的数据会被自动回收。
与 Time Travel 的区别:
- Time Travel:保留历史版本,用于查询和恢复
- 数据生命周期:自动清理超期数据,用于存储成本控制
External Catalog
External Catalog 让你不搬数据就能查外部系统的表,类似于在 Lakehouse 里装了一个"远程数据库的只读视角"。
External Catalog 是 Lakehouse 的联邦查询功能,用于访问外部数据源(Hive、Databricks、Snowflake Iceberg 等)中的数据,无需复制数据。
核心特性:
- 只读访问:不支持 INSERT/UPDATE/DELETE 操作
- 无需复制:数据保留在外部系统中,Lakehouse 仅读取元数据和数据文件
- 统一入口:通过标准 SQL 查询外部数据,如同查询本地表
支持的数据源:
| 数据源 | 连接方式 | 说明 |
|---|---|---|
| Apache Hive | Hive Metastore URIs | 通过 Hive Metastore 访问 Hive 表 |
| Databricks Unity Catalog | Databricks API | 访问 Databricks 中的表 |
| Iceberg REST Catalog | Iceberg REST API | 访问任意兼容 Iceberg REST 协议的数据目录 |
| Snowflake Open Catalog | Iceberg REST API + OAuth | Snowflake 基于 Iceberg REST 协议的托管目录服务 |
典型操作:
数据分享(Share)
数据分享让你把表或视图"授权"给其他服务实例使用,对方实时读取你的原始数据,无需复制,类似于共享文档的只读链接。
数据分享是 Lakehouse 的跨实例数据共享功能,无需复制数据即可实时共享表或视图给其他服务实例。
核心特性:
- 无复制:消费方查询时直接读取提供方的原始数据
- 实时同步:提供方数据变更,消费方立即可见
- 只读访问:消费方只能查询,不能修改、删除或二次分享
操作流程:
典型操作:
Lakehouse Studio
Lakehouse Studio 是云器 Lakehouse 的 Web 操作界面,相当于产品的"驾驶舱"——数据集成、开发调度、运维监控都在这里完成,不需要写命令行。
Lakehouse Studio 是云器 Lakehouse 提供的 Web 图形化操作界面,是统一的数据开发和治理平台,集成数据集成、开发调度、运维监控、数据目录等功能。
主要模块:
- 数据同步:配置离线/实时数据同步任务
- 任务开发:Web IDE 进行 SQL/Python/Shell 任务开发
- 任务调度:配置 Cron 表达式和任务依赖
- 运维监控:查看任务运行状态、日志、告警
- 数据目录:全局检索和过滤表元数据
- 数据质量:配置数据质量检查规则
- 计算管理:管理计算集群
- Agent:AI Agent 集成,支持对话式数据分析和 MCP Server 管理
通过 产品对象模型 查看详细的产品概念。
