クローラーによる既存のスキーマの変更を防止する - AWS Glue

クローラーによる既存のスキーマの変更を防止する

実行時に、AWS Glue クローラー が Data Catalog に対してスキーマの変更を行わないようにすることができます。デフォルトでは、クローラーは Data Catalog 内のスキーマを更新して、クロールするデータソースと一致させます。ただし、特にデータを変換またはクリーンアップし、元のスキーマに変更を上書きしない場合は、クローラーが既存のスキーマを変更できないようにする必要があります。

テーブル定義の既存のスキーマを上書きしないようにクローラーを設定するには、次の手順に従います。

AWS Management Console
  1. AWS Management Consoleにサインインし、AWS Glue コンソール (https://console.aws.amazon.com/glue/) を開きます。

  2. [Data Catalog][クローラー] を選択します。

  3. リストからクローラーを選択したら、[編集] を選択します。

  4. [ステップ 4: 出力とスケジュールを設定する] を選択します。

  5. [詳細オプション] で、[新しい列のみを追加] または [変更を無視し、Data Catalog のテーブルを更新しない] を選択します。

  6. すべての新規パーティションと既存パーティションをテーブルのメタデータで更新するように設定オプションを設定できます。この設定により、パーティションスキーマがテーブルから継承されます。

  7. [Update] (更新) を選択します。

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" } } }