第一部分:
我尝试使用胶水爬虫在s3中加载的虚拟csv上运行它创建了一个表但是当我在athena中尝试查看表并查询它时显示返回零记录。
但是,雅典娜的ELB演示数据运行良好。
第二部分(情景:)
假设我有一个excel文件和数据字典,说明数据在该文件中的存储方式和格式,我希望将这些数据转储到AWS Redshift中实现这一目标的最佳方法是什么?
答案 0 :(得分:11)
我遇到了同样的问题。您需要将文件夹路径而不是真实文件名提供给爬网程序并运行它。我尝试将文件夹名称提供给爬虫并且它有效。希望这可以帮助。让我知道。谢谢,
答案 1 :(得分:3)
我遇到了同样的问题。尝试为s3存储桶中的单个表创建单独的文件夹,而不是重新运行glue crawler。您将在粘贴数据目录中获取一个与s3存储桶文件夹名称相同的新表。
答案 2 :(得分:1)
再次删除Crawler创建Crawler(在s3中只有一个csv文件不可用,并运行爬虫) 重要提示 一个CSV文件运行它我们可以查看Athena中的记录。
答案 3 :(得分:0)
我确实提供了S3文件夹路径而不是文件名,但仍然无法让Athena返回任何记录(“归还零记录”,“已扫描数据:0KB”)。
发现问题是输入文件(我的旋转日志文件自动从Elastic Beanstalk上传到S3)以下划线(_
)开头,例如_var_log_nginx_rotated_access.log1534237261.gz
!显然,这是不允许的。
答案 4 :(得分:0)
解决方案:即使folder
中有很多folder
,也要选择files
的路径。这将生成一个表并显示数据。
答案 5 :(得分:0)
因此在许多此类情况下,在Glue Crawler中使用EXCLUDE PATTERN可以帮助我。
这可以确保我们应该将爬网程序指向目录,而不是直接将爬网程序指向该文件,即使在没有任何记录的情况下这样做,Exclude Pattern也可以解决。 您将必须设计一些模式,通过该模式仅将要爬网的文件和其余文件排除在外。 (建议这样做,而不是在生产存储桶中的大多数时间为每个文件创建不同的目录,这样做不可行)
我在S3存储桶中有数据!有多个目录,每个目录中都有活泼的镶木地板文件和json文件。 json文件引起了问题。
因此,我在包含许多目录的主目录上和我给出的EXCLUDE PATTERN中运行了搜寻器-* / * .json
这次,它没有为json文件创建任何表,并且我能够使用Athena查看该表的记录。
以供参考-https://docs.aws.amazon.com/glue/latest/dg/define-crawler.html
答案 6 :(得分:0)
s3存储桶/文件夹的结构非常重要:
NameU
并在粘合履带的“包含路径”中指定:
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]>
答案 7 :(得分:0)
将胶水爬虫指向 S3 文件夹而不是实际文件。