【跟我一起学大数据】开篇:用一个电商项目打通数据全链路 开篇:用一个电商项目打通 Hadoop、Hive、Kafka、Flink、Iceberg 大数据全链路大数据学习中常见的问题是:单个组件能够启动,Hive SQL 能写,Kafka 消息能够发送,Flink WordCount 也能运行,但进入真实项目或面试场景后,仍然很难讲清楚“数据从业务系统到报表到底怎么流转”。简历中列出 Hadoop、Hive、Kafka、Flink 等技术栈并不困难,项目追问更容易暴露短板:GMV 指标来自哪张表,支付金额与下单金额如何区分,离线结果和实时结果为什么可能不一致。本专栏不以单点组件教程为目标。专栏以一个电商实时湖仓项目为主线,从业务数据出发,完整打通数据采集、离线数仓、实时计算、湖仓一体、数据治理、性能优化和架构复盘。项目目标是形成一套能运行、能复盘、能写入简历的大数据实战项目。一、项目背景:为什么要做这套项目传统大数据学习路径通常从组件开始:安装 Hadoop,学习 Hive SQL,运行 Kafka,再编写 Flink Demo。这种路径适合入门组件,但容易形成一个问题:每个组件都接触过,却无法说明它们如何组成一个真实的数据平台。在真实公司里,大数据开发很少只做一个孤立 Demo。更常见的是业务部门提出一个问题:业务侧需要查看每日 GMV、实时订单趋势、商品销售排行、城市销售分布,并能够解释实时看板和离线报表在某些情况下为什么不一致。这类需求无法仅靠“会 Hive”或“会 Flink”解决。完整方案需要覆盖业务数据接入、数仓分层设计、指标计算、实时事件处理、数据质量保障,以及架构设计说明。这套项目的背景可以概括为:用一个贴近真实业务的数据平台项目,把零散的大数据组件组织成一条完整工程链路。二、为什么选择电商项目WordCount、日志 Demo、随机数据流适合演示 API,但很难迁移到真实业务场景。真实项目中的技术问题通常更具体:订单数据从哪里来?支付金额和下单金额是不是同一个指标?退款订单要不要算进 GMV?离线报表为什么和实时看板不一致?数据重跑后,昨天的指标能不能修正?任务失败后,是重新跑全量,还是只补某一天?电商业务很适合作为大数据实战主线,因为它既有清晰的业务模型,也有足够多的数据分析场景。项目围绕用户、商品、订单、订单明细、支付事件这些核心数据,逐步计算 GMV、订单数、客单价、商品 TOPN、城市销售排行、用户复购率、实时支付趋势等指标。电商业务的核心数据关系如下:placescontainssold_aspaid_byUSERbigintuser_idstringcitystringregister_timeORDERbigintorder_idbigintuser_idstringorder_statusdecimalorder_amountORDER_ITEMbigintorder_idbigintproduct_idintquant