面试官问数据湖架构,其实只想听四个东西:分层存储怎么设计、数据怎么流进去、湖和仓库怎么选、以及你的答案有没有覆盖粒度、幂等、血缘、对账这些检查点。上来就报Databricks或者Snowflake名字的,这一轮基本就挂了。
这套东西不复杂。最经典的考法是"从零设计一个分析湖",标准答案是三层 medallion 架构:bronze层原样追加源数据,silver层做去重、类型转换和业务主键对齐,gold层输出星型模型的事实表维度表给BI用。每层的服务等级、读写权限、保留策略都不一样。Databricks叫青铜白银黄金,AWS叫raw/curated/consumption,微软叫landing/refined/analytics,形状是一样的,名字随便换。
第二层考数据怎么进去。套路是 ingestion → 元数据目录 → 计算引擎,底下挂对象存储。CDC从Postgres进来也好,埋点日志进来也好,都是这个管道。面试官想看的是你知不知道怎么保证exactly-once,怎么让下游能查到"这张表现在有哪些文件"。
第三层是湖、云数仓、lakehouse三选一。决策点在于开放表格式——Iceberg、Delta、Hudi。需要支持机器学习特征工程、灵活schema演进的往湖走;需要严格ACID、纯SQL分析的往warehouse走;想两边都沾的选lakehouse。但大部分大厂其实是混着用:湖接高吞吐的原始数据,warehouse或lakehouse接治理好的分析负载。
最后一层是答案的结构。合格的回答必须主动提:数据粒度怎么定、写入怎么幂等、血缘怎么追踪、聚合结果怎么和源头对账。漏一个就被追问,追不上就扣分。这四个检查点跟具体厂商无关,是面试官心里的评分卡。
整个面试的核心就一句话:能用原理解释清楚,比知道十个产品名字有用得多。
