AWS Glue 爬网程序命名约定

Kir*_*rst 5 aws-glue

我正在尝试抓取 s3 路径中的许多项目(使用 的根路径s3://my-bucket/somedata/

s3://my-bucket/somedata/20180101/data1/stuff.txt.gz
s3://my-bucket/somedata/20180101/data2/stuff.txt.gz
s3://my-bucket/somedata/20180101/data1.sql
s3://my-bucket/somedata/20180101/data2.sql  
s3://my-bucket/somedata/20180102/data1/stuff.txt.gz
s3://my-bucket/somedata/20180102/data2/stuff.txt.gz
...
Run Code Online (Sandbox Code Playgroud)

有时我们的表是根据日期模式命名的(例如20180101);有时它们根据叶级“文件夹”命名(例如data1),有时根据文件(例如data1.sql)命名,当存在冲突时,Glue 似乎只是在表名后附加一个唯一标识符(例如data1_c17b2f988649f2171b24b1d35da7f2b4)。

这里的逻辑是什么?这些名称是确定性的吗?我是否应该使用一些模式来构建数据,以便爬虫能够按某种逻辑顺序对内容进行编目?

小智 -2

您需要标准化路径才能正确获取名称,例如

s3://my-bucket/Customer/Customer_20180101/customer.csv 
s3://my-bucket/Customer/Customer_20180102/customer.csv 
s3://my-bucket/Customer/Customer_20180103/customer.csv 
s3://my-bucket/Customer/Customer_20180104/customer.csv 
s3://my-bucket/Customer/Customer_20180105/customer.csv
Run Code Online (Sandbox Code Playgroud)

一旦您将爬网程序指向 s3 上的 Customer 文件夹,将使用 Glue 爬网程序加载 Customer 表中的所有文件

  • 它没有回答问题。您不能期望每次都以理想的方式提供数据。爬网程序应该不知道路径的提供方式。它创建表的方式确实有问题。如果该文件夹包含多个文件,则会创建包含文件名的表。如果该文件夹仅包含一个文件,它将创建仅包含文件夹名称的表。这不能称为一致性。 (5认同)