设置正确的表级别、包含路径和排除路径。

0

【以下的问题经过翻译处理】 我有一个s3存储桶,路径如下:s3://a/b/c/products

在products文件夹中,每个版本都有一个文件夹(每个版本都是产品表的数据库快照,每周由工作流程获得)。

  1. /version_0
    1. _temporary
      1. 0_$folder$
    2. part-00000-c5... ...c000.snappy.parquet
  2. /version_1
    1. _temporary
      1. 0_$folder$
    2. part-00000-29... ...c000.snappy.parquet

我创建了一个爬虫(Include Path设置为上述相同的路径-s3://a/b/c/products),旨在将所有版本合并为1个表。不同分区的模式始终相同。不同分区的结构也总是相同的。我尝试过不同的表级别(4、5和6)在“S3数据分组行为”部分的爬虫设置中,但它总是创建多个表(每个版本一个表)。

_temporary文件夹是工作流自动生成的东西,所以我不知道是否必须将其包含在排除路径中才能使其工作。

为了创建仅合并所有版本的一个表,正确的包含路径、排除路径和表级别应该是什么?

我已经检查了所有关于此问题的常规文档链接,但是否可以为此问题提供实际解决方案?

profile picture
专家
已提问 5 个月前0 查看次数
1 回答
0

【以下的回答经过翻译处理】 排除模式在这里非常有帮助: 尝试使用 version*/_temporary** 作为排除模式。

这将排除所有不必要的文件,而不是parquet文件。

对于包含模式,请使用 s3://a/b/c/products/'

在此情况下,您不需要提供级别。

检查“为每个S3路径创建单个模式”。

这将创建一个以“version \ *”为分区的表。

参考:https://docs.aws.amazon.com/glue/latest/dg/crawler-s3-folder-table-partition.html

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则