You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Glue Crawler中用glob排除字符串实现目标文件抓取

解决AWS Glue爬虫精准抓取指定S3分区文件的问题

针对你遇到的Glue爬虫界面仅支持排除字符串、无法直接配置包含路径的问题,这里有几个实用方案帮你精准抓取Analytics/{timestamp}/Session/Search/DirectURL/PageData下的文件:

方案1:通过S3前缀通配符缩小抓取范围

不要把爬虫的数据源路径设为根目录s3://your-bucket/Analytics/,直接指定带通配符的具体路径:

  • 在爬虫的S3目标配置中,将路径设置为s3://your-bucket/Analytics/*/Session/Search/DirectURL/PageData/
  • 这里的*会匹配任意时间戳文件夹,爬虫只会遍历这个层级下的文件,自动忽略其他不符合路径结构的内容

这个方法简单直接,适配你的固定路径结构,无需额外复杂配置。

方案2:用CLI/API配置IncludePaths参数

Glue控制台界面确实没暴露IncludePaths的配置选项,但通过AWS CLI或SDK可以直接设置包含路径,精准锁定要抓取的文件:

比如用AWS CLI更新已有爬虫:

aws glue update-crawler \
    --name your-analytics-crawler \
    --targets '{
        "S3Targets": [
            {
                "Path": "s3://your-bucket/Analytics/",
                "IncludePaths": ["*/Session/Search/DirectURL/PageData/*"],
                "ExcludePaths": []
            }
        ]
    }'

执行后爬虫只会抓取符合IncludePaths规则的文件,完全忽略其他路径内容。

方案3:结合分区投影优化爬虫效率

你的时间戳分区有严格规律(每5分钟生成一个),可以启用分区投影让爬虫只识别符合格式的时间分区,减少无效遍历:

  1. 在Glue数据表的分区投影配置中,定义时间戳规则:
    • 分区键设为timestamp
    • 投影类型选datetime,格式设置为yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
    • 配置时间范围和间隔(比如每5分钟)
  2. 爬虫运行时只会生成符合该格式的分区,自动跳过不符合规则的路径,同时提升扫描性能

这个方案适合分区规律明确的场景,既能精准抓取,又能优化爬虫运行效率。


内容的提问来源于stack exchange,提问作者Brandon Camp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:53:22