Agent Skills
返回列表
📊

S3 Parquet 模式提取器

数据分析 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/parquet-schema-extractor-for-s3。

技能介绍

要解决的问题

在 S3 数据湖里,Parquet 文件通常按分区散落在不同的 key 下。表面看是同一批表,字段却在慢慢漂移:上游某天把 order_id 从 int 改成了 string,或者某个分区把 event_time 写成了不可为空的 timestamp。等到下游 ETL 读取时,轻则 cast 失败,重则整批任务挂掉。定位这类问题往往要写临时脚本遍历 S3 前缀,再逐个文件读元数据,费时又容易遗漏。

技能如何工作

这个技能把这件事变成一次可重复的检查:

  • 读取元数据:通过 boto3 拿到 S3 对象的 list 结果,用 PyArrow 的 Parquet 读取能力解析每个文件的 schema,而不是把整份数据拉下来。
  • 跨分区比对:把每个分区路径下的 schema 归到一起,逐列比较字段名、类型、nullable 属性等结构信息,识别出只在某个前缀出现的列,或者同一列在不同分区里类型不一致的情况。
  • 输出差异报告:生成一份结构化的 schema diff 报告,列出受影响的分区路径和具体列,便于直接贴进 issue 或数据治理记录。

适用边界与注意点

  • 报告覆盖的是 结构层面 的差异,如字段缺失、类型变化;数据本身的质量或取值分布不在检测范围内。
  • 只读取文件的元数据部分,但清单大量对象仍然会产生对应的 S3 API 调用,执行前最好先限定前缀或时间窗口。
  • 团队要对「合法演进」有共识:像新增可空列这类向后兼容的变更,也要在报告里标注并决定是否放行。

使用场景

  • 夜间批处理突然因列类型不匹配失败,需要快速列出 S3 上受影响的分区路径与字段。
  • 数据湖中同一张表按日期分目录存放,要确认各分区的字段类型是否仍然一致。
  • 上游团队新增了可空字段,需要生成一份结构差异报告,评估对下游读取的影响。
  • 把 S3 上的 Parquet 结构变更整理成记录,用于数据治理评审或 issue 跟进。

适合人员

  • 数据工程师:负责把 S3 上的 Parquet 接入 ETL,需要提前发现结构变更以免任务失败。
  • 数据分析工程师:要对比不同分区的表结构,确认字段口径是否发生变化。
  • 数据平台负责人:需要在变更评审中看到结构差异报告,评估兼容性风险。