4. 数据采集与工程化接入
KLA检测机台(如Surfscan、SP系列、Puma、8系列等)产生的数据并非单一文件,而是由检测结果、缺陷清单、晶圆图、配方参数、机台状态日志等多类对象组成。要把这些数据稳定接入数据平台,核心不是“把文件拷过来”,而是建立一条可追溯、可重放、可校验的ETL链路:从机台侧的数据落盘位置出发,经过采集、解析、标准化、关联、入库,最终形成可供良率分析使用的结构化表。本节围绕这条链路,讲清采集方式、接口协议与工程化落地要点。
一、机台侧数据形态与采集边界
KLA机台通常以“批次/晶圆/检测任务”为组织单位输出数据。典型对象包括:缺陷明细文件(Defect List,含缺陷坐标X/Y、尺寸、类别、通道、灰度等字段)、晶圆图文件(Wafer Map,按Die或坐标网格记录Bin结果)、检测汇总报告(Summary,含缺陷总数、分类计数、扫描条件)、配方与机台参数(Recipe/Setup,含阈值、灵敏度、光源、像素尺寸)、以及机台运行日志(Log,含时间戳、状态、报警)。采集边界要明确:哪些目录是机台自动落盘的、哪些需要主动拉取、哪些只能通过机台软件导出。工程上建议先做一次“数据源盘点”,记录每类文件的路径模板、命名规则、生成频率和保留周期,避免后续解析规则频繁返工。
二、ETL流程:从落盘到可分析表
一条完整的ETL链路可拆为五段。第一段是发现与触发:通过文件监听(inotify/轮询)或机台消息通知,识别新批次数据到达。第二段是采集与暂存:将原始文件复制到暂存区(Staging),保留原始文件名与校验值(如MD5),确保可重放。第三段是解析与标准化:按文件类型解析为结构化记录,统一字段命名、单位、坐标系和时间格式。第四段是关联与补全:把缺陷明细与晶圆图、批次、产品、工序、机台配方关联,形成“缺陷—Die—批次—产品”的链路。第五段是入库与校验:写入数据平台(如Hive/ClickHouse/关系库),并执行行数、空值、坐标范围、重复率等质量校验。
三、实时采集与批量采集的分工
实时采集与批量采集不是二选一,而是按数据用途分工。实时采集面向“在线监控、快速告警、当日良率趋势”,通常采用文件监听或消息队列,延迟目标在秒级到分钟级;批量采集面向“历史批次补录、全量重算、跨天汇总”,通常按小时或按天调度,允许更高延迟但要求更强的幂等与重跑能力。工程上建议:实时链路只做轻量解析和关键字段入库,重计算放到批量链路;两条链路共用同一份解析规则和校验规则,避免同一批数据出现两套口径。对于机台网络不稳定或文件生成有延迟的场景,实时链路要设置超时与补偿机制,例如超过阈值未收到文件则触发批量补拉。
四、常见接口与协议选择
KLA机台与数据平台之间的接口选择,取决于机台开放能力和现场网络条件。常见方式包括:SFTP/SCP,适合机台支持文件推送或平台主动拉取,稳定、易审计;SMB/CIFS,适合机台已挂载共享目录的场景,但要注意权限与并发读写;REST API,适合机台软件提供HTTP接口时,可获取结构化结果,但需处理分页、鉴权和限流;消息队列(Kafka/RabbitMQ),适合机台或中间件能发消息的场景,解耦好、吞吐高,但需要额外维护消息可靠性;数据库直连,仅在机台侧有中间库且允许只读账号时使用,需严格控制查询频率。实际项目中,常见组合是“SFTP拉取原始文件 + 消息通知触发解析”,兼顾稳定与实时性。
五、工程化落地要点与示例配置
要让ETL链路可运维,至少需要做到四点:一是幂等,同一批次重复采集不产生重复数据,通常用“批次号+文件MD5”做唯一键;二是可追溯,每条记录保留来源文件、采集时间、解析版本;三是可校验,入库前后对行数、缺陷总数、坐标范围做比对;四是可重跑,解析失败或规则升级后能按批次重放。下面给出一个批量采集的调度配置示例,用于说明关键参数如何设置。
# 示例:KLA批量采集任务配置(教学示例,非实测参数)
source:
protocol: sftp
host: 10.20.30.41
remote_dir: /kla/export/{product}/{lot}
file_pattern: "*.klarf,*.csv,*.xml"
poll_interval: 300s # 轮询间隔
stable_time: 120s # 文件大小稳定后才采集,避免半包
staging:
local_dir: /data/staging/kla
checksum: md5
parse:
klarf_version: "1.8"
coord_system: "die" # 坐标系:die / wafer
time_format: "yyyy-MM-dd HH:mm:ss"
load:
target: dwd_kla_defect
unique_key: [lot_id, wafer_id, file_md5]
batch_size: 50000
quality:
min_rows: 1
max_null_ratio: 0.05
coord_range: [0, 200] # 示例坐标范围
配置中几个参数值得注意:stable_time用于避免采集到正在写入的半包文件;coord_system必须与后续良率关联的坐标系一致,否则缺陷与Die的对应会整体偏移;unique_key决定幂等边界,建议包含批次、晶圆和文件校验值;coord_range用于快速发现解析异常,例如坐标字段错位或单位错误。实际运行时,建议先在小批量批次上验证解析结果,再逐步扩大采集范围。
总体而言,从KLA机台到数据平台的接入,关键不在于单次拷贝成功,而在于把“发现—采集—解析—关联—校验—入库”做成一条可重复、可审计、可重跑的工程链路。实时与批量各司其职,接口协议按现场条件选择,解析与校验规则统一维护,才能为后续的良率关联分析提供稳定、可信的数据底座。