Amazon S3 イベント通知を使用した加速クロール - AWS Glue

Amazon S3 イベント通知を使用した加速クロール

Amazon S3 または Data Catalog ターゲットからオブジェクトを一覧表示する代わりに、Amazon S3 イベントを使用して変更を検索するようにクローラーを設定できます。この機能は、Amazon S3 または Data Catalog ターゲット全体を一覧表示するのではなく、Amazon S3 イベントを使用してイベントをトリガーしたサブフォルダからのすべてのファイルを一覧表示して 2 つのクロール間の変更を識別することによって、再クロール時間を短縮します。

最初のクロールでは、ターゲットからのすべての Amazon S3 オブジェクトを一覧表示します。最初のクロールの成功後、手動または設定されたスケジュールでリクロールを選択できます。クローラーは、すべてのオブジェクトをリストするのではなく、それらのイベントのオブジェクトのみをリストします。

ターゲットが Data Catalog テーブルの場合、クローラーは変更内容 (テーブル内の追加パーティションなど) で Data Catalog 内の既存のテーブルを更新します。

Amazon S3 イベントベースのクローラーに移行する利点は以下のとおりです。

  • ターゲットからのすべてのオブジェクトの一覧表示を要しない場合は、より速く再クロールできます。その代わりに、オブジェクトが追加または削除される特定のフォルダが一覧表示されます。

  • オブジェクトが追加または削除される特定のフォルダの一覧表示を行うと、全体的なクロールコストが削減されます。

Amazon S3 イベントクロールは、クローラースケジュールに基づいてSQSキューから Amazon S3 イベントを消費することで実行されます。キューにイベントがない場合、費用はかかりません。Amazon S3 イベントは、SQSキューに直接移動するように設定することも、複数のコンシューマーが同じイベント、 SNSと の組み合わせを必要とする場合に設定することもできますSQS。詳細については、「Amazon S3 イベント通知のアカウントを設定します。」を参照してください。

イベントモードでクローラーを作成して設定した後の最初のクロールは、Amazon S3 または Data Catalog ターゲットの完全な一覧表示を行う一覧表示モードで実行されます。次のログは、最初に成功したクロール、「クロールは Amazon S3 イベントを使用して実行します」の後に、Amazon S3 イベントを使用してクロールのオペレーションを確認します。

Amazon S3 イベントクロールを作成し、クロールに影響を与える可能性のあるクローラーのプロパティを更新すると、クロールがリストモードで動作し、「クロールは S3 イベントモードで実行されていません」というログが追加されます。

注記

クロールあたりの最大メッセージ数は 100,000 です。

制限

Amazon S3 イベント通知を使用して変更を検索するようにクローラーを設定する場合、以下の制限が適用されます。

  • ターゲットが Amazon S3 または Data Catalog であるかにかかわらず、クローラーがサポートするのは単一のターゲットのみです。

  • SQS on private VPC はサポートされていません。

  • Amazon S3 サンプリングはサポートされていません。

  • クローラーターゲットは、Amazon S3 ターゲットのフォルダ、または 1 つ以上のフォルダである必要があります。AWS Glue Data Catalog ターゲットのデータカタログテーブル。

  • 「すべての」パスのワイルドカードをサポートしていません: s3: //%

  • Data Catalog ターゲットの場合、Amazon S3 イベントモードでは、すべてのカタログテーブルが同じ Amazon S3 バケットをポイントする必要があります。

  • Data Catalog ターゲットの場合、カタログテーブルは Delta Lake 形式の Amazon S3 ロケーションをポイントしない必要があります (_symlink フォルダが含まれる、またはカタログテーブルの InputFormat を確認)。

Amazon S3 イベント通知のアカウントを設定します。

以下の設定タスクを実行します。括弧内の値は、スクリプトの構成可能な設定を参照している点に注意してください。

  1. Amazon S3 バケットのイベント通知を設定する必要があります。

    詳細については、「Amazon S3 イベント通知」を参照してください。

  2. Amazon S3 イベントベースのクローラーを使用するには、Amazon S3 バケットでイベント通知を有効にし、S3 ターゲットと同じプレフィックスからフィルタリングされたイベントを に格納する必要がありますSQS。「チュートリアル: 通知用のバケットを設定する」の手順に従って、コンソールを介して SQSとイベント通知を設定できます。 https://docs.aws.amazon.com/AmazonS3/latest/userguide/ways-to-add-notification-config-to-bucket.html

  3. クローラーで使用されるロールに次のSQSポリシーを追加します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ListDeadLetterSourceQueues", "sqs:ReceiveMessage", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:SetQueueAttributes", "sqs:PurgeQueue" ], "Resource": "arn:aws:sqs:{region}:{accountID}:cfn-sqs-queue" } ] }