阻止爬网程序更改现有架构 - AWS Glue

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

阻止爬网程序更改现有架构

您可以阻止 AWS Glue 爬网程序在运行时对 Data Catalog 进行任何架构更改。默认情况下,爬网程序会更新 Data Catalog 中的架构,使其与正在爬取的数据来源相匹配。但是,在某些情况下,您可能需要阻止爬网程序修改现有架构,尤其是在您已经转换或清理数据并且不希望原始架构覆盖更改的情况下。

按照以下步骤将您的爬网程序配置为不覆盖表定义中的现有架构。

AWS Management Console
  1. 登录 AWS Management Console,然后打开 AWS Glue 控制台,网址为:https://console.aws.amazon.com/glue/

  2. 数据目录下选择爬网程序

  3. 从列表中选择一个爬网程序,然后选择编辑

  4. 选择步骤 4,设置输出和计划

  5. 高级选项下,选择仅添加新列忽略更改,不更新 Data Catalog 中的表

  6. 您还可以将配置选项设置为使用表中的元数据更新所有新的和现有的分区。这会将分区架构设置为从表继承。

  7. 选择更新

AWS CLI

以下示例说明如何将爬网程序配置为不更改现有架构,仅添加新列:

aws glue update-crawler \ --name myCrawler \ --configuration '{"Version": 1.0, "CrawlerOutput": {"Tables": {"AddOrUpdateBehavior": "MergeNewColumns"}}}'

以下示例说明如何将爬网程序配置为不更改现有架构,且不添加新列:

aws glue update-crawler \ --name myCrawler \ --schema-change-policy UpdateBehavior=LOG \ --configuration '{"Version": 1.0, "CrawlerOutput": {"Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }}}'
API

如果您不希望在爬网程序运行时更改表架构,请将架构更改策略设置为 LOG

当您使用 API 配置爬网程序时,请设置以下参数:

  • SchemaChangePolicy 结构中的 UpdateBehavior 字段设置为 LOG

  • 使用爬网程序 API 中的以下 JSON 对象的字符串表示形式设置 Configuration 字段;例如:

    { "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" } } }