当前位置: 首页 > 知识库问答 >
问题:

在AWS胶水中登录

柯昱
2023-03-14

我已经创建了一个成功执行的AWS胶水作业。但是,我无法在作业中放置任何自定义日志记录。

如何在AWS S3存储桶中创建日志文件,以便跟踪日常作业执行情况?

目前,当我的工作执行时,它会创建默认日志(即火花日志),我可以在AWS云手表中看到它。在AWS胶水中记录事件的最佳实践是什么?

共有1个答案

芮明知
2023-03-14

AWS Glue旨在通过CloudWatch进行最佳日志记录(有关详细信息,请参阅此文档)。由于您的日志越来越大,无法确定根本原因,而且CloudWatch中没有符合@varnit建议的事件,因此我们可以做下一件最好的事情:创建一个CloudWatch仪表板,该仪表板带有一个查询,可以拉取您日志的过滤版本。

在CloudWatch控制台上,导航到“Dashboards”,然后选择“Create dashboard”。给它起个有意义的名字(例如,“粘贴自定义日志”)。继续,我们将添加并配置一个“查询结果”小部件。如果使用默认值,请选择日志流,可能是“/aws glue/jobs/error”,并注意,如果使用普通python打印,则glue默认为错误流。为回溯选择一个合理的时间窗口,以便对结果进行某种程度的预筛选。

如果自定义日志消息中有唯一标识符,如“glue custom log”,我们现在可以轻松编写一个过滤结果的查询:

fields @timestamp, @message
| filter @message like 'glue-custom-log'
| sort @timestamp desc

保存小部件,保存仪表板,现在您就可以在CloudWatch中轻松访问预过滤日志,以满足您的自定义日志记录需求。

 类似资料:
  • 我每天都有csv文件被传递到S3,这些文件在当月是增量的。所以file1包含第1天的数据,file2包含第1天和第2天的数据,等等。每天我都想对该数据运行一个ETL并将其写入不同的S3位置,这样我就可以使用Athena查询它,而不会出现重复的行。本质上,我只想查询聚合数据的最新状态(这只是最近交付给S3的文件的内容)。 我认为书签不会起作用,因为增量交付包含以前文件中的数据,因此会产生重复。我知道

  • 我需要对S3 bucket执行附加加载。 每天都有新的. gz文件被转储到S3位置,胶水爬虫读取数据并在数据曲库中更新它。 Scala AWS Glue作业运行并仅过滤当前日期的数据。 上面过滤的数据按照一些规则进行转换,并创建一个分区的动态数据帧(即年、月、日)级别。 现在,我需要将这个动态数据帧写入到S3 bucket中,其中包含所有前一天的分区。事实上,我只需要将一个分区写入S3存储桶。目前

  • 我有一个S3存储桶,每天的文件都会被丢弃。AWS爬虫从该位置爬网数据。在我的glue作业运行的第一天,它将获取AWS crawler创建的表中的所有数据。例如,在第一天就有三个文件。(即file1.txt、file2.txt、file3.txt)和glue job在执行glue job的第一天处理这些文件。第二天,另两个文件到达S3位置。现在,在S3位置,这些是存在的文件。(即file1.txt、

  • 当我试图提取1个表时,我使用AWS Glue从EC2(Postgre)提取要转换的数据,并将其放在S3上。我得到一个错误,如下所示: 有什么我能做的吗?我试图删除null字段或fillna,但这些都不起作用。

  • 我有一个数据帧。我需要将每个记录转换为JSON,然后使用JSON负载调用API将数据插入postgress。我在数据框中有14000条记录,要调用api并获得响应,需要5个小时。有没有办法提高性能。下面是我的代码片段。 注意:我知道通过做"json_insert=df_insert.toJSON()。收集()"我正在失去数据帧的优势。有没有更好的方法来完成。

  • 对于要在拼花格式的S3存储桶中的数据上运行的作业,有两种方法: > 使用 由于我的数据方案不会及时更改,使用爬虫程序是否有任何优势(性能方面或其他方面)?在这种情况下,我为什么需要爬虫?