Amazon web services 我应该每次运行Glue crawler来获取最新数据吗?

Amazon web services 我应该每次运行Glue crawler来获取最新数据吗?,amazon-web-services,amazon-s3,aws-glue,aws-glue-data-catalog,aws-glue-spark,Amazon Web Services,Amazon S3,Aws Glue,Aws Glue Data Catalog,Aws Glue Spark,我有一个名为Employee的S3 bucket。每隔三个小时,我就会在桶里收到一个附有时间戳的文件。我将使用Glue job通过一些转换将文件从S3移动到红移。我在S3 bucket中的输入文件将具有固定的结构。我的粘合作业将使用通过爬虫在数据目录中创建的表作为输入 首次运行: datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "test", table_name = "e

我有一个名为Employee的S3 bucket。每隔三个小时,我就会在桶里收到一个附有时间戳的文件。我将使用Glue job通过一些转换将文件从S3移动到红移。我在S3 bucket中的输入文件将具有固定的结构。我的粘合作业将使用通过爬虫在数据目录中创建的表作为输入

首次运行:

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "test", table_name = "employee_623215", transformation_ctx = "datasource0")
三个小时后,如果我要为员工再获取一个文件,我应该再次抓取它吗

是否有一种方法可以在数据目录(如employee)中创建一个表,并使用最新的S3文件更新该表,Glue Job可以使用该文件进行处理。或者我应该每次运行crawler来获取最新的数据吗?问题是,将在我的数据目录中创建更多的表


请告诉我这是否可行。

如果架构发生更改,您只需再次运行AWS胶水爬虫程序。只要模式保持不变,就可以将文件添加到AmazonS3,而无需重新运行爬虫程序

更新:@Eman下面的评论是正确的


如果您正在阅读目录,此建议将不起作用。如果不重新爬网,分区将不会更新到目录表。运行爬虫将这些新分区映射到表中,并允许您处理第二天的分区


如果模式发生更改,只需再次运行AWS Glue爬虫程序。只要模式保持不变,就可以将文件添加到AmazonS3,而无需重新运行爬虫程序

更新:@Eman下面的评论是正确的


如果您正在阅读目录,此建议将不起作用。如果不重新爬网,分区将不会更新到目录表。运行爬虫将这些新分区映射到表中,并允许您处理第二天的分区


另一种方法是,不从目录中读取,而是直接从s3中读取,并在Glue job中处理数据

这样您就不需要再次运行爬虫程序

使用

从\u选项连接\u类型,连接\u选项={},格式=无,格式\u选项={},转换\u ctx=


有文档记录的

一种替代方法可以是,而不是直接从s3读取目录,并在Glue job中处理数据

这样您就不需要再次运行爬虫程序

使用

从\u选项连接\u类型,连接\u选项={},格式=无,格式\u选项={},转换\u ctx=


有据可查

嗨,丹尼斯,第一天我的胶水作业代码将有以下输入:第一次运行:datasource0=glueContext.create\u dynamic\u frame.from\u catalogdatabase=test,table\u name=employee,transformation\u ctx=datasource0第一天数据第二天,如果我在glue作业代码datasource0=glueContext.create\u dynamic\u frame.from\u catalogdatabase=test,table\u name=employee,transformation\u ctx=datasource0中使用,我将在S3存储桶中获得一个新数据。它不会有前一天的数据吗?请让我现在!如果您正在阅读目录,此建议将不起作用。如果不重新爬网,分区将不会更新到目录表。运行爬虫程序将这些新分区映射到表中,并允许您处理第二天的分区。嗨,丹尼斯,在第一天,我的粘合作业代码将有以下输入:第一次运行:datasource0=glueContext.create\u dynamic\u frame.from\u catalogdatabase=test,table\u name=employee,transformation\u ctx=datasource0第一天数据第二天,如果我在glue作业代码datasource0=glueContext.create\u dynamic\u frame.from\u catalogdatabase=test,table\u name=employee,transformation\u ctx=datasource0中使用,我将在S3存储桶中获得一个新数据。它不会有前一天的数据吗?请让我现在!如果您正在阅读目录,此建议将不起作用。如果不重新爬网,分区将不会更新到目录表。运行爬虫将这些新分区映射到表中,并允许您处理第二天的分区。如果我必须直接从S3使用它,我需要在Glue job中每次都更改文件名,这对于生产环境来说并不理想。如果是这种情况,请让我知道。你只需要提供文件夹的路径,而不是要精确的文件名。我们应该如何处理多个文件?嗨,Shubham,我的传入文件将有一个时间戳。如果我必须直接从S3使用它,我需要在Glue job中每次都更改文件名,这对于生产环境来说并不理想。如果是这种情况,请告诉我。您只需要提供文件夹的路径,而不需要提供精确的文件名。我们应该如何处理多个文件?