13

第一部分 :

我尝试在 s3 中加载的虚拟 csv 上运行胶水爬虫,它创建了一个表,但是当我尝试在 athena 中查看表并查询它时,它显示返回了零记录。

但是 Athena 中 ELB 的演示数据运行良好。

第二部分(场景:)

假设我有一个 excel 文件和数据字典,说明该文件中数据的存储方式和格式,我希望将这些数据转储到 AWS Redshift 中实现此目的的最佳方法是什么?

4

8 回答 8

23

我遇到了同样的问题。您需要将文件夹路径而不是真实文件名提供给爬虫并运行它。我尝试将文件夹名称提供给爬虫,它起作用了。希望这可以帮助。让我知道。谢谢,

于 2017-12-26T01:33:40.057 回答
10

我遇到了同样的问题。尝试为 s3 存储桶中的单个表创建单独的文件夹,而不是重新运行胶水爬虫。您将在胶水数据目录中获得一个与 s3 存储桶文件夹名称同名的新表。

于 2017-12-27T06:11:10.130 回答
5

删除 Crawler 再次创建 Crawler(s3 中应该只有一个 csv 文件不可用并运行爬虫) 重要注意 一个 CSV 文件运行它我们可以查看 Athena 中的记录。

于 2017-12-13T04:40:39.413 回答
3

我确实提供了 S3 文件夹路径而不是文件名,但仍然无法让 Athena 返回任何记录(“返回零记录”、“扫描数据:0KB”)。

原来问题在于输入文件(我的旋转日志文件从 Elastic Beanstalk 自动上传到 S3)以下划线 ( _) 开头,例如_var_log_nginx_rotated_access.log1534237261.gz!显然这是不允许的。

于 2018-08-15T16:10:32.483 回答
2

s3 存储桶/文件夹的结构非常重要:

s3://<bucketname>/<data-folder>/
    /<type-1-[CSVs|Parquets etc]>/<files.[csv or parquet]>
    /<type-2-[CSVs|Parquets etc]>/<files.[csv or parquet]>
    ...
    /<type-N-[CSVs|Parquets etc]>/<files.[csv or parquet]>

并在 Glue Crawler 的“包含路径”中指定:

s3://<bucketname e.g my-s3-bucket-ewhbfhvf>/<data-folder e.g data>
于 2020-09-07T08:33:50.083 回答
1

解决方法:选择路径,folder即使folder你里面有很多files. 这将生成一个表格并显示数据。

于 2020-01-30T17:33:01.067 回答
1

因此,在许多此类情况下,在 Glue Crawler 中使用 EXCLUDE PATTERN 可以帮助我。

这是肯定的,而不是直接将爬虫指向文件,我们应该将它指向目录,即使在我们没有得到任何记录时这样做,排除模式也会来救援。您将必须设计一些模式,通过该模式仅排除您想要抓取的文件并排除其余文件。(建议这样做而不是为每个文件创建不同的目录,并且大多数时候在生产存储桶中,进行这样的更改是不可行的)

我在 S3 存储桶中有数据!有多个目录,每个目录内都有 snappy parquet 文件和 json 文件。json文件导致了这个问题。

所以我在包含许多目录的主目录和我给出的排除模式中运行了爬虫 - * / *.json

而这一次,它没有为 json 文件创建任何表,我能够使用 Athena 查看表的记录。

供参考 - https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html

于 2020-06-17T06:16:56.670 回答
0

将胶水爬虫指向 S3 文件夹而不是实际文件就可以了。

于 2021-04-08T20:14:34.160 回答