云器 Lakehouse 基本概念

本章节详细介绍云器 Lakehouse 中的基本概念,帮助您理解产品的设计理念和各组件之间的关系。

账户(Account)

账户是你们公司与云器的合同主体,相当于一个企业主账号。

账户是云器 Lakehouse 的商业关系实体,代表与云器公司建立合作关系的组织或个人。

核心职责

  • 账户负责充值、出账单、费用支付以及订购/变更云器产品
  • 所有服务实例及其资源对象都归属于特定账户
  • 账户是权限和费用管理的最高层级

账户 URL:每个账户都有唯一的访问地址,格式为

<account_name>.accounts.clickzetta.com
<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
    workspace.schema.table
  • Studio 层:数据开发环境的隔离单元,包含独立的用户、角色、VCluster、Studio 任务调度等

Catalog 是引入联邦查询后出现的更通用术语,用来统一描述"顶层命名空间":

category说明创建方式
MANAGED
MANAGED
原生 Workspace,同时具备平台层和 Studio 层能力在控制台创建 Workspace
EXTERNAL
EXTERNAL
External Catalog,映射外部数据源(Hive/Databricks/Iceberg 等)
CREATE EXTERNAL CATALOG
CREATE EXTERNAL CATALOG
SHARED
SHARED
系统共享数据集(如 TPC-H、TPC-DS 基准数据)系统内置
  • SHOW WORKSPACES
    SHOW WORKSPACES
    SHOW CATALOGS
    SHOW CATALOGS
    返回相同的结果
  • current_workspace()
    current_workspace()
    current_catalog()
    current_catalog()
    返回相同的值
  • 三层命名支持
    workspace.schema.table
    workspace.schema.table
    catalog.schema.table
    catalog.schema.table
    两种写法

非 MANAGED 类型不支持写操作:EXTERNAL、SHARED 和系统内置的

sys
sys
命名空间均只读,尝试在其中创建表或执行 DML 会报权限错误:

  • SHARED:
    NoPermission: Only read actions are allowed on shared object
    NoPermission: Only read actions are allowed on shared object
  • SYS:
    NoPermission: Workspace sys is readonly, AT_CREATE_TABLE operation is not allowed
    NoPermission: Workspace sys is readonly, AT_CREATE_TABLE operation is not allowed
  • EXTERNAL:取决于外部数据源类型,通常也不支持写入

这三类命名空间可以通过三层命名(

catalog.schema.table
catalog.schema.table
)执行查询,但不能作为数据写入目标,也没有 Studio 层(无 VCluster、用户管理、任务调度)。

Schema

Schema 是工作空间内数据对象的命名空间,用来组织表、视图、动态表等,类似于文件系统中的文件夹。

Schema 是工作空间内一组数据对象的命名空间,包括表、视图、动态表、物化视图等。

与 Workspace 的关系

  • 一个工作空间可以包含多个 Schema
  • Schema 是表等对象的直接容器
  • 完整三层命名:
    workspace.schema.table
    workspace.schema.table
    (类似 PostgreSQL/Snowflake 的
    database.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 捕获变化 → 动态表执行转换聚合

典型操作

-- 创建 Table Stream CREATE TABLE STREAM my_stream ON TABLE source_table WITH PROPERTIES ('TABLE_STREAM_MODE' = 'STANDARD'); -- 消费 Stream 数据(位点自动更新) INSERT INTO target_table SELECT * FROM my_stream;

Pipe

Pipe 是一条持续运行的数据导入管道,类似于水管——只要数据源有新数据进来,就会自动流进 Lakehouse,无需手动触发。

Pipe 是 Lakehouse 的持续数据导入管道对象,用于从 Kafka 或对象存储(OSS/S3/COS)持续导入数据到表中。

核心特点

  • Pipe 是 SQL 对象,通过 DDL 创建和管理
  • 创建后持续运行,自动从数据源读取数据并写入目标表
  • 无需配置 Cron 调度,Pipe 自身就是持续运行的流式任务

与 Studio 同步任务的区别

维度PipeStudio 同步任务
创建方式SQL DDLStudio 可视化界面
管理方式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),数据留在原位
CREATE EXTERNAL VOLUME
CREATE EXTERNAL VOLUME
用户自有云存储
Managed VolumeLakehouse 托管的内部存储,平台负责存储管理
CREATE VOLUME
CREATE VOLUME
Lakehouse 内部存储
User Volume每个用户专属的文件空间,用于上传临时文件、导入导出系统自动创建Lakehouse 内部存储
Table Volume每张表关联的文件空间,存放表的数据文件系统自动创建(每表一个)Lakehouse 内部存储

与 Table 的关系

  • Volume 管理文件,Table 管理结构化数据
  • Volume 是数据入湖的通道,Table 是数据加工的对象
  • 通过
    COPY INTO
    COPY INTO
    将 Volume 中的文件数据导入到 Table

典型操作

-- 查看 External/Managed Volume 中的文件列表 SELECT * FROM DIRECTORY(VOLUME schema_name.vol_name); -- 从 Volume 导入数据到表 COPY INTO orders FROM VOLUME my_schema.my_vol USING CSV OPTIONS('header'='true'); -- 上传本地文件到 User Volume PUT 'file:///local/data.csv' TO USER VOLUME; -- 查看 User Volume 文件列表 SHOW USER VOLUME DIRECTORY; -- 从 User Volume 导入数据到表 COPY INTO orders FROM USER VOLUME USING CSV OPTIONS('header'='true') FILES('data.csv');

Time Travel

Time Travel 让你像"时光机"一样回溯历史数据——可以查询任意时间点的数据快照,也可以恢复被误删的表或回滚被误改的数据。

Time Travel 是 Lakehouse 的历史数据访问功能,允许用户在定义的时间段内访问任意时间点的数据。

核心机制

  • 基于 MVCC(多版本并发控制),每次数据变更生成新版本
  • 默认保留 1 天历史数据,可配置为 0-90 天
  • 支持查询历史版本、恢复误删表(UNDROP)、回滚数据(RESTORE)

三大能力

能力命令适用场景
历史查询
SELECT * FROM table TIMESTAMP AS OF '...'
SELECT * FROM table TIMESTAMP AS OF '...'
对比不同时间点的数据变化
恢复误删表
UNDROP TABLE table_name
UNDROP TABLE table_name
表被 DROP 后恢复
回滚数据
RESTORE TABLE table_name TO TIMESTAMP AS OF '...'
RESTORE TABLE table_name TO TIMESTAMP AS OF '...'
数据被误改/误删后回滚

典型操作

-- 查询指定时间点的历史数据(TIMESTAMP AS OF 只接受字面量,不支持表达式) SELECT * FROM orders TIMESTAMP AS OF '2024-01-15 09:00:00'; -- 恢复被删除的表 UNDROP TABLE orders; -- 回滚表到指定时间点 RESTORE TABLE orders TO TIMESTAMP AS OF '2024-01-15 10:00:00';

数据生命周期(TTL)

数据生命周期是给数据设置"保质期"的机制,超过设定时间未更新的数据会被自动清理,帮助控制存储成本。

数据生命周期是 Lakehouse 的自动数据清理机制,超期未更新的数据会被自动回收。

与 Time Travel 的区别

  • Time Travel:保留历史版本,用于查询和恢复
  • 数据生命周期:自动清理超期数据,用于存储成本控制

External Catalog

External Catalog 让你不搬数据就能查外部系统的表,类似于在 Lakehouse 里装了一个"远程数据库的只读视角"。

External Catalog 是 Lakehouse 的联邦查询功能,用于访问外部数据源(Hive、Databricks、Snowflake Iceberg 等)中的数据,无需复制数据。

核心特性

  • 只读访问:不支持 INSERT/UPDATE/DELETE 操作
  • 无需复制:数据保留在外部系统中,Lakehouse 仅读取元数据和数据文件
  • 统一入口:通过标准 SQL 查询外部数据,如同查询本地表

支持的数据源

数据源连接方式说明
Apache HiveHive Metastore URIs通过 Hive Metastore 访问 Hive 表
Databricks Unity CatalogDatabricks API访问 Databricks 中的表
Iceberg REST CatalogIceberg REST API访问任意兼容 Iceberg REST 协议的数据目录
Snowflake Open CatalogIceberg REST API + OAuthSnowflake 基于 Iceberg REST 协议的托管目录服务

典型操作

-- 查询外部 Catalog 中的表 SELECT * FROM ext_catalog.ext_schema.ext_table; -- 关联查询本地表和外部表 SELECT l.order_id, e.customer_name FROM local_orders l JOIN ext_catalog.sales.customers e ON l.customer_id = e.id;

数据分享(Share)

数据分享让你把表或视图"授权"给其他服务实例使用,对方实时读取你的原始数据,无需复制,类似于共享文档的只读链接。

数据分享是 Lakehouse 的跨实例数据共享功能,无需复制数据即可实时共享表或视图给其他服务实例。

核心特性

  • 无复制:消费方查询时直接读取提供方的原始数据
  • 实时同步:提供方数据变更,消费方立即可见
  • 只读访问:消费方只能查询,不能修改、删除或二次分享

操作流程

提供方:CREATE SHARE → GRANT TO SHARE → ALTER SHARE ADD INSTANCE ↓ 消费方:SHOW SHARES → DESC SHARE → CREATE SCHEMA FROM SHARE → SELECT 查询

典型操作

-- 提供方:创建 Share 并授权 CREATE SHARE my_share; GRANT SELECT, READ METADATA ON TABLE public.orders TO SHARE my_share; ALTER SHARE my_share ADD INSTANCE consumer_instance; -- 消费方:创建 Schema 并查询 CREATE SCHEMA shared_data FROM SHARE provider_instance.my_share.public; SELECT * FROM shared_data.orders;

Lakehouse Studio

Lakehouse Studio 是云器 Lakehouse 的 Web 操作界面,相当于产品的"驾驶舱"——数据集成、开发调度、运维监控都在这里完成,不需要写命令行。

Lakehouse Studio 是云器 Lakehouse 提供的 Web 图形化操作界面,是统一的数据开发和治理平台,集成数据集成、开发调度、运维监控、数据目录等功能。

主要模块

  • 数据同步:配置离线/实时数据同步任务
  • 任务开发:Web IDE 进行 SQL/Python/Shell 任务开发
  • 任务调度:配置 Cron 表达式和任务依赖
  • 运维监控:查看任务运行状态、日志、告警
  • 数据目录:全局检索和过滤表元数据
  • 数据质量:配置数据质量检查规则
  • 计算管理:管理计算集群
  • Agent:AI Agent 集成,支持对话式数据分析和 MCP Server 管理

通过 产品对象模型 查看详细的产品概念。

联系我们
预约咨询
微信咨询
电话咨询