amazon-s3 - Glue Crawler 无法排除 .csv.metadata 文件
问题描述
我有一个 S3 位置s3://bucket-name/folder-name/
,其中包含一个子文件夹,其名称是动态生成的,其中包含短语_Top10InvoiceIds
. 该子文件夹由.csv
和.csv.metadata
文件组成。我正在使用胶水爬虫仅爬取 csv 文件并在 Athena 中查看它们。但我无法排除这些.csv.metadata
文件。我已经尝试了所有可能的正则表达式模式作为 glob 值。
我的一些尝试是:
*_Top10InvoiceIds/ *.metadata
*_Top10InvoiceIds/ * .* metadata
*_Top10InvoiceIds/ *. *.metadata
*_Top10InvoiceIds/ * .csv.metadata
** .metadata
* .metadata
* .csv.metadata
* /*.metadata
如果有人可以帮助我找出模式或提出另一种方法来做同样的事情,那就太好了。
解决方案
听起来您试图通过在 Glue Crawlers 中使用排除项来阻止 .metadata 文件在 Athena 表中显示为数据。
Glue Crawlers 用于为所述表创建表定义和相关元数据。就将数据填充到表中而言,这就是 Athena:
履带式
连接到数据存储(源或目标)的程序,通过分类器的优先级列表确定您的数据的架构,然后在 AWS Glue 数据目录中创建元数据表。
https://docs.aws.amazon.com/glue/latest/dg/components-key-concepts.html
在 Athena 中创建的表会抓取您在包含模式中列出的存储桶路径下的所有数据:
重要的
Athena 读取存储在 's3://bucketname/prefix/' 下的所有数据。如果您有不希望 Athena 读取的数据,请不要将该数据存储在与您希望 Athena 读取的数据相同的 Amazon S3 前缀中。如果您正在利用分区,为了确保 Athena 扫描分区内的数据,您的 WHERE 过滤器必须包含该分区。有关详细信息,请参阅表位置和分区。
https://docs.aws.amazon.com/athena/latest/ug/tables-location-format.html
我想如果你想从你的表中排除数据,它需要自己的子文件夹
推荐阅读
- javascript - 如何将“this”以及 v-model 从输入传递到处理程序
- python - 如果它们在不同的列中,我如何按值分组?
- class - '未声明的标识符'/'标识符“x”未定义'/'class Y没有成员“x”'使用结构类型指针
- c# - 带有 numericupdown 的倒数计时器
- azure-devops - 构建由位于 DevOps 中不同项目中的不同项目组成的解决方案
- javascript - 使用状态数据中的状态值用于 React 应用程序中的顶点图表
- javascript - 对象列表中非常简单的增量函数
- python - 单击条目时如何更改条目的文本
- tensorflow - 自定义指标和损失:AttributeError:“张量”对象在训练期间没有属性“numpy”
- asp.net - 动态变化的链接按钮类属性不起作用