メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

データの整合性の管理

Amazon S3 の一部の操作の整合性は結果整合性です。そのため、アップロードの直後に新しいデータが利用できない場合があります。その場合、データのロードが不完全になったり、古いデータがロードされたりします。クラスターとバケットが異なるリージョンにある場合の COPY オペレーションは、結果的に整合性が取れます。すべてのリージョンで、一意のオブジェクトキーを持つ新しいオブジェクトをアップロードした場合の整合性はリードアフターライト整合性になります。データ整合性の詳細については、Amazon Simple Storage Service 開発者ガイド の「Amazon S3データ整合性モデル」を参照してください。

お使いのアプリケーションで正しいデータがロードされるように、次のプラクティスをお勧めします。

  • 新しいオブジェクトキーを作成します。

    Amazon S3 はすべてのリージョンの書き込み操作に対して結果整合性を提供します。データのロード操作のたびに Amazon S3 で新しいファイル名またはオブジェクトキーを作成した場合、すべてのリージョンでデータの整合力が強化されます。

  • COPY 操作でマニフェストファイルを使用します。

    マニフェストにより、ロードするファイルに明示的に名前が付けられます。マニフェストファイルを使うとデータの整合性が強化されます。

このセクションの残りではこれらのステップについて詳しく説明します。

新しいオブジェクトキーを作成する

データの整合性には問題が潜在するため、データのロード操作のたびに一意の Amazon S3 オブジェクトキーで新しいファイルを作成することをお勧めします。既存のファイルを新しいデータで上書きし、その後、アップロードの直後に COPY コマンドを発行した場合、その COPY 操作では、すべての新しいデータが利用可能になる前に古いファイルからのロードを開始する可能性があります。結果整合性に関する詳細は、Amazon S3 開発者ガイド の「Amazon S3S3 データ整合性モデル」を参照してください。

マニフェストファイルを使用する

マニフェストファイルを使い、ロードするファイルを明示的に指定できます。マニフェストファイルを使うと、COPY により強力な整合性が適用されます。リストに指定されているファイルがプライマリサーバーに見つからない場合、セカンダリサーバーが検索されます。マニフェストファイルは任意の mandatory フラグで構成できます。mandatorytrue であり、ファイルが見つからない場合、COPY を実行するとエラーが返されます。

マニフェストファイルの使用に関する詳細は、COPY コマンドの copy_from_s3_manifest_file オプションと COPY 例の Example: COPY from Amazon S3 using a manifest を参照してください。

Amazon S3 ではすべてのリージョンの上書きの整合性が結果整合性になるため、既存のオブジェクトを新しいデータで上書きする場合、古いデータがロードされる可能性があります。ベストプラクティスとしては、決して既存のファイルを新しいデータで上書きしないでください。