我在一个物联网项目中。
我将IoT数据从IoT设备保存到S3中。有7种数据,所以我将它们保存在S3的7个子文件夹中。
我设置我的爬虫如下:
-只抓取新的子文件夹
-为每个S3路径创建一个模式
当爬虫第一次完成时,我将所有列的类型方案和分区更改为字符串。
一切顺利。
但是有一天新数据的列会被添加,你能告诉我我应该如何改变爬虫的设置来得到一个包含所有列的新模式吗?
根据这里的AWS文档https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html,您有三个选项
更新数据目录中的表定义-添加新列,删除缺失的列,并修改现有列的定义在AWS Glue数据目录中。删除未设置的任何元数据爬虫。这是默认设置
仅添加新列—对于映射到Amazon S3数据存储的表,在发现新列时添加它们,但不要删除或删除更改"数据目录"中现有列的类型。选择这个选项,当"数据目录"中的当前列正确且您不希望爬虫删除或更改的类型现有的列。如果一个基本的Amazon S3表属性发生了变化,如分类、压缩类型或CSV分隔符,将表已弃用。保持输入格式和输出格式不变存在于数据目录中。的情况下才更新SerDe参数参数为爬虫设置的参数。对于所有其他数据存储、修改现有的列定义。
忽略更改,不更新Data Catalog -中的表只创建新的表和分区。
我最近遇到了同样的问题,其中爬虫被设置为默认配置,即。忽略更改,不更新Data catalog中的表,但我需要添加一些列。因此,我将爬虫配置更改为"添加新列",并运行爬虫以在我的模式中获取新列。请参考文档,它将适用于爬虫中的所有数据源。