ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

133.7万条刷卡记录,一套开源栈如何把深圳地铁客流算明白

133.7万条刷卡记录,一套开源栈如何把深圳地铁客流算明白 133.7万条刷卡记录一套开源栈如何把深圳地铁客流算明白【免费下载链接】SZT-bigdata深圳地铁大数据客流分析系统项目地址: https://gitcode.com/gh_mirrors/sz/SZT-bigdataSZT-bigdata深圳地铁大数据客流分析系统拿 133.7 万条真实深圳通刷卡记录开刀用 Flink、Kafka、Hive、ClickHouse 等十几种开源组件搭出一条从数据清洗、实时入库到指标看板的完整链路。它要回答的不是大数据能做什么而是地铁客流这个具体问题每一步落在哪个组件上。深圳地铁客流数据到底难在哪深圳每天几百万人次进出站运营方想知道的其实很朴素哪个站最挤、哪条线通勤最久、换乘占多大比例。但原始刷卡数据是带 11 个字段的 JSON 串单日一百多万条直接扔进任何数据库都查不动更麻烦的是同一份数据要同时服务当天实时看和历史深挖两种需求。SZT-bigdata 的选择是不找商业平台用开源组件把链路一段段拼出来每一步能替换、能复现选型理由直接写进文档。拆开看5个Maven模块各管一摊根 pom 下只有 5 个子模块职责切得很干净。数据怎么进来ETL清洗与接入SZT-ETLETL-Flink是一组 Scala 写的 Flink 作业每个都是独立的 main 方法Jsons2Redis把原始 JSON 写入 Redis靠 HSET 天然去重Redis2Kafka把清洗后的 126.6 万条合格数据推进topic-flink-sztRedis2ES、Redis2HBase、Redis2Csv分别负责全文检索、卡号流水查询和按天分块存盘。选 Flink 1.10 是因为流批两头的生态最成熟Redis 做中转几乎零成本。它是全链路的数据源头所有下游都从它手里拿数据。ETL-SpringBoot只干两件事暴露 Redis 数据的 REST API以及卡号密文明文互转——项目反推出了深圳通卡号的脱敏映射规律支持一键解密查询。SpringBoot 是暴露 API 最省事的方案配 knife4j 在线调试接口不用背命令。实时怎么查双库写入SZT-flink SZT-kafka-hbaseSZT-flink的Kafka2MyCH消费 Kafka 主题经自写的MyClickhouseSinkFun写入 ClickHouse——第三方 sink 连不通作者干脆自己实现了一个。ClickHouse 选来做实时分析层是因为列式聚合查询比同类方案快得多。SZT-kafka-hbase是自制的 HBase SpringBoot Kafka 集成rowkey 用卡号反转打散热点列族保留 10 个版本查一张卡最近 10 次交易秒回。自研是因为现成 starter 依赖太旧、连接不复用。两个模块消费同一批 Kafka 消息一个写分析库、一个写 KV 库互不干扰。离线怎么算Hive数仓四层建模SZT-spark-hiveSparkOnHive演示本地写 Spark 程序操作远程 Hive。真正的重头戏是仓库里的sqlcommand/hive.sql1300 多行 HQL 按 ODS、DWD、DWS、ADS 四层建模产出 20 多张 ADS 指标表从各站进出站人次排行到全城平均通勤时长。指标用 Hive SQL 而不是纯 Spark 写是开发维护成本最低的选择Spark 留给更复杂的计算场景。公共部分怎么复用SZT-commonSZT-common放各模块共享的数据模型SZTBean、卡号互转工具ParseCardNo还有爬取的 45932 条线路规划换乘方案SZmetro、TravelPlan。它不碰任何集群组件保证五个模块里同一份数据长得一样。跑起来是什么样深圳地铁客流看板实录第一幕在 Kibana时间轴定在 2018-09-01刷卡记录曲线集中砸在上午 6 点到 12 点早高峰形状一眼可辨。第二幕在 ADS 看板当天进站第一是五和站出站客流主要涌向深圳北、罗湖、福田口岸三个枢纽一号线上午收入 30 万元排第一全城乘客平均通勤 1791 秒约 30 分钟还有个滞留王进出站间隔 4.75 小时作者专门用地图标出了那个站。第三幕在 ClickHouse 和 HBase 里刷卡记录经 Flink 实时落库按卡号一查就是最近交易流水不用扫全表。上手要多久值不值得花时间先说结论它不是半小时跑起来的项目。完整链路依赖 CDH/Hadoop 集群README 建议至少 40GB 总内存、三台机器起步家庭开发机照搬不现实。适合两类人一是正在学大数据、想亲眼看到Flink 洗的数据怎么流进 Kafka、Hive 怎么建 ADS的人二是做选型调研、想看同一份数据在 Hive、Spark、Impala、ClickHouse 里表现差异的人。最短体验路径先读 README 的架构说明再按Jsons2Redis、Redis2Kafka、hive.sql、Kafka2MyCH的顺序看代码每个 Flink 作业都是单个 main 方法读起来不累仓库内附2018record3.zip备用数据离线也能玩。不适合只想要一个现成看板、不关心中间链路的人——这个项目的价值恰好在链路本身看板只是副产品。仓库地址 https://gitcode.com/gh_mirrors/sz/SZT-bigdata clone 下来从 README 的准备工作一节开始即可。作者的设计意图是同一个问题多种实现同一批指标 Hive SQL 和 Spark 各有一套ClickHouse sink 也留着第三方与自写两个版本对着比。TODO 里还挂着flink 流式实时分析早晚高峰站点压力排行没做完没写完的地方本身就是学习材料。README 里的踩坑注释——ES 时区、CDH 2021 年转收费后改推原生 Hadoop 集群——比代码本身更值得细读。对想啃深圳地铁大数据方案的新手来说这些注释是比文档更直接的捷径。【免费下载链接】SZT-bigdata深圳地铁大数据客流分析系统项目地址: https://gitcode.com/gh_mirrors/sz/SZT-bigdata创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表