全部标签
#Spark
16 篇 · 4 站
2026年10月HWLens:硬件行情湖仓数据平台复盘多源挂牌价采集,建湖仓一体数仓,对外给行情大屏、业务后台与智能体问答。项目复盘2026年9月湖仓一体不是一次切换:旁路双写、直连湖与读路径的回滚设计把 Parquet 目录升级成 Iceberg 表,再让 Doris 直连湖、最后把后端读路径切过去——每一步都能独立验证、独立回滚。记录阶段划分理由、"读回刚写分区再入湖"保的三件事,以及 warehouse 路径被序列化成单斜杠导致 scheme null 的那个坑。大数据2026年8月改一个键定义,为什么要重放全部历史商品身份 ID 是组键的确定性哈希,所以收紧对齐键会让所有 ID 换代:历史分区和新分区连不上,含 ID 的跨日特征必须全量重放。记录重放前的断点水位清理、字段宽度契约、旧分区 schema 冲突,以及"补完历史要再重载最新一天"这条铁律。工程笔记2026年7月口径只能有一个来源:spec_ontology、when 链和那条匹配空串的正则同一个"容量"在采集侧、计算侧、后台各解析一遍,迟早出问题。记录把单位折算、键别名、正则常量收进一个纯 Python 模块的过程,以及两条代价很高的教训:可选单位的正则把 TB 当 GB 落库,十几层 when 链让 executor 被 OOM 杀掉。工程笔记2026年7月跨源实体对齐:宁可少合并,不可假合并把两个站点的同一条商品认成一个,是所有跨源比价的前提。记录从标题归一化到分层确定性键的整段演进:规格键造出的假合并、concat_ws 对 null 跳段、字符多重集键,以及那条支配所有取舍的不对称原则。工程笔记2026年6月第一条离线链路:从 ODS 到 ADS,以及那些写死在提交命令里的参数把采集数据一路推到可查询的 ADS 表,中间踩的不是 SQL 而是工程细节:executor 的代码从哪来、内存为什么必须显式限、JDK 有缺陷怎么绕、校验为什么要在编排层之外再做一遍。工程笔记2026年5月集群重启之后:那些不会自启的服务和它们各自的怪脾气一次计划外重启让离线链路连着挂了两天:NameNode 没起、BE 没起、Spark Worker 不自启。逐个踩过 swap 检测、代理变量、文件句柄上限、隧道端口残留之后,我才理解"能跑"和"重启后能跑"是两个工程问题。工程笔记