数据湖与湖仓一体 可视化实验室

用交互式 SVG 呈现数据湖架构、Iceberg/Delta Lake 表格式、数据分层、查询引擎等湖仓一体核心技术。八个模块,纯原生实现。

zero-deps HTML / CSS / JS + SVG requestAnimationFrame prefers-reduced-motion
MODULE 01

数据湖架构与对象存储

HDFS / S3 对象存储承载海量原始数据。缺乏治理的数据湖退化为“数据沼泽”;加上目录、Schema 与访问控制才是真正的数据湖。切换观察差异。

data-lake.svg
已编目 未治理 结构化 非结构化

数据湖 vs 数据沼泽

数据沼泽:数据随意堆放、无 Schema、无目录、无人能找到。数据湖:通过 Catalog(如 Hive Metastore / Glue)登记、打标、设权限,数据可被发现与信任。

对象数
24
已编目
—
沼泽比例
—
存储
S3
MODULE 02

湖仓一体:统一数据架构

Lakehouse 在对象存储之上叠加开放表格式,实现 ACID 事务、Schema 治理与 BI/ML 统一访问,兼具数据湖的低成本与仓库的管理能力。

lakehouse.svg
已启用 未启用 表格式层 访问层

Lakehouse 能力

逐项开启能力:开放表格式(Iceberg/Delta/Hudi)提供 ACID 与 Schema;元数据层支撑时间旅行;统一访问让 BI 与 ML 读同一份数据,避免搬迁与孤岛。

能力数
0/6
ACID
off
统一访问
off
架构
Lake
MODULE 03

Iceberg 表格式与时间旅行

Iceberg 用 metadata.json → manifest list → manifest → data file 的分层元数据管理表。每个快照对应一次表状态,支持时间旅行与回滚。

iceberg-manifest.svg
metadata manifest list manifest data file

快照与时间旅行

选择不同快照查看表在该时间点的数据文件组成。manifest 记录每个 data file 的分区与统计信息,查询计划时只读取相关 manifest,无需列举全部文件。

快照数
4
manifest
—
data files
—
当前快照
s3
MODULE 04

Delta Lake 事务日志

_delta_log 中每个 JSON 是一次原子提交,记录增删文件。OPTIMIZE 合并小文件,Z-ORDER 按列聚簇以加速查询裁剪。

delta-log.svg
提交 data file OPTIMIZE Z-ORDER

事务日志演进

点击“写入”追加提交与小文件;点击“OPTIMIZE”把小文件合并为大文件;点击“Z-ORDER”按选定列重排聚簇。观察 data file 数量与布局变化。

提交数
0
data files
0
小文件
0
OPTIMIZE
0
MODULE 05

数据分层:Medallion 架构

Bronze(原始)→ Silver(清洗)→ Gold(聚合)逐层提纯。越往上层质量越高、越贴近业务,记录数可能减少但价值密度提升。

medallion.svg
Bronze 原始 Silver 清洗 Gold 聚合 质量

Medallion 分层

Bronze 落地原始数据(含脏数据/重复);Silver 去重、类型校正、关联;Gold 按业务域聚合,供 BI 直接消费。点击各层查看其处理动作与质量。

当前层
Gold
记录数
—
质量
—
延迟
—
MODULE 06

Schema 演化与合并

开放表格式支持 Schema Evolution:新增列对旧文件读为 NULL;Schema Merge 合并不同版本分区。无需重写历史数据即可演进。

schema-evolution.svg
新增列 删除列 改名列 NULL 填充

Schema 版本

点击“新增列/删除列/改名”演进 Schema。新列对旧文件读出 NULL,旧列对新文件保留兼容。MERGE SCHEMA 自动合并写入门禁。

版本
v1
列数
3
变更
0
向后兼容
是
MODULE 07

数据跳过与文件裁剪

每个 data file 记录各列 Min/Max 统计。查询时按谓词跳过不在区间的文件;Z-ORDER 把高频过滤列聚簇,使跳过更高效。

data-skipping.svg
需读取 已跳过 谓词区间 Z-ORDER

文件裁剪

拖动谓词区间,文件按 Min/Max 与区间相交判定是否读取。开启 Z-ORDER 后同列值聚拢,相交文件减少,跳过率显著提升。

总文件
16
需读取
—
已跳过
—
跳过率
—
MODULE 08

查询引擎与向量化执行

Spark 适合大规模批处理与 ETL;Trino/Presto 专注交互式即席查询,向量化执行按列批量处理,提升 CPU 缓存命中率。

query-engine.svg
解析 逻辑计划 物理计划 向量化执行

查询执行流水线

选择引擎并运行查询,观察 SQL → 逻辑计划 → 优化 → 物理计划 → 向量化执行的阶段耗时。Trino 向量化执行让即席查询达到亚秒级。

引擎
Trino
延迟
—
扫描行
—
向量化
on