Amazon CloudSearch ドメインへのデータのアップロード - Amazon CloudSearch

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon CloudSearch ドメインへのデータのアップロード

重要

Amazon CloudSearch ドメインにデータをアップロードする前に、次のガイドラインに従ってください。

  • ドキュメントをアップロードする前にグループ化してバッチします。1 つのドキュメントのみで構成されるバッチを継続的にアップロードすると、Amazon が更新を処理 CloudSearch できる速度に大きな悪影響を及ぼします。代わりに、できるだけ制限に近いバッチを作成し、アップロードする頻度を少なくしてください。最大バッチサイズとアップロード頻度の詳細については、「Amazon CloudSearch の制限について」を参照してください。

  • ドメインのドキュメントエンドポイントと検索エンドポイントは、ドメインが存在している間変わりません。すべてのアップロードリクエストや検索リクエストの前にエンドポイントを取得するのではなく、エンドポイントをキャッシュに保存してください。すべてのリクエストDescribeDomainsの前に aws cloudsearch describe-domainsまたは を呼び出して Amazon CloudSearch 設定サービスにクエリを実行すると、リクエストがスロットリングされる可能性があります。

ドキュメントバッチを作成して、Amazon CloudSearch ドメインにアップロードするデータを記述します。ドキュメントバッチは追加および削除操作のコレクションであり、ドメインで追加、更新、削除するドキュメントを表します。バッチは JSON または XML で記述できます。ドキュメントバッチをドメインにアップロードすると、ドメインのインデックス作成オプションに従って自動的にデータのインデックスが作成されます。

データが変更されたら、バッチをアップロードして、インデックスのドキュメントを追加、変更、または削除します。Amazon は更新を継続的に CloudSearch 適用します。明示的にデータのインデックスを再作成する必要があるのは、ドメインが NEEDS INDEXING 状態になる設定変更を実行した場合、または、サジェスタを更新する必要がある場合のみです。

ドメインにデータをアップロードするには、データが有効な JSON または XML バッチ形式である必要があります。各ドキュメントに指定されたフィールドは、ドメイン用に設定されたインデックスフィールドに対応する必要があります。ただし、設定されたすべてのインデックスフィールドをドキュメントが含んでいる必要はありません。ドキュメントバッチの作成方法については、「データの準備」を参照してください。ドメインのインデックスフィールドの設定については、「configure indexing options」を参照してください。

削除操作を行うバッチも含めて、検索ドメインにアップロードしたドキュメントバッチの合計数に対して請求されます。Amazon の CloudSearch 料金の詳細については、aws.amazon.com/cloudsearch/pricing/ を参照してください。

ドキュメントバッチは、Amazon CloudSearch console または AWS CLI を使用するか、ドメインのドキュメントサービスエンドポイントに posting it directly することで、ドメインに送信できます。

ドキュメントサービス API の詳細については、「Document Service API」を参照してください。

Amazon での一括アップロード CloudSearch

ドキュメントバッチは 10 秒ごとに 1 つ、バッチあたり 5 MB に制限されます。詳細については、「制限」を参照してください。ただし、バッチを並行してアップロードして、すべてのデータをアップロードするのにかかる時間を短縮することができます。

一括アップロードを実行するには、以下に従います。

  • 必要なインスタンスタイプを、デフォルトの search.small より大きなインスタンスタイプに設定します。使用できるアップロードスレッドの数は、ドメインで使っている検索インスタンスのタイプ、データの性質、インデックス作成オプションによって異なります。インスタンスタイプが大きいほど、アップロード容量が大きくなります。search.small インスタンスにバッチを並列アップロードしようとすると、通常は、高い確率で 504 または 507 エラーが発生します。必要なインスタンスタイプの設定の詳細については、「Amazon でのスケーリングオプションの設定 CloudSearch」を参照してください。

  • 設定の変更がアクティブになったら、データのアップロードを開始します。5xx エラーが高い確率で発生する場合は、アップロードレートを減らすか、サイズの大きいインスタンスタイプに切り替える必要があります。最大のインスタンスタイプを既に使っている場合は、望ましいパーティション数を増やしてアップロード容量をさらに増やすことができます。

    重要

    ドメインが「PROCESSING」状態の間に大量の更新を送信した場合、更新が検索インデックスに適用されるまでの時間が長くなることがあります。これを回避するには、ドメインが「ACTIVE」状態になるまで待ってから一括アップロードを開始してください。

  • 一括アップロードが終了すると、必要なインスタンスタイプを、小さなインスタンスタイプに戻すことができます。インデックスが小さいタイプに収まる場合、Amazon CloudSearch はドメインを自動的にスケールダウンします。Amazon CloudSearch は、ドメインに設定された目的のインスタンスタイプよりも小さいインスタンスタイプにスケールしません。

データが 1 GB 未満や 100 万個未満の 1 KB ドキュメントのデータセットの場合は、小さな検索インスタンスで十分です。1 GB~8 GB のデータセットをアップロードするには、アップロードを開始する前に、目的のインスタンスタイプを search.large に設定することをお勧めします。8 GB~16 GB のデータセットについては、search.xlarge で開始します。16 GB~32 GB のデータセットについては、search.2xlarge で開始します。32 GB を超えるアップロードの場合は、search.2xlarge インスタンスタイプを選択し、データセットに合わせて必要なパーティション数を増やします。各パーティションには、32 GB までのデータを格納できます。より多くのアップロード容量が必要な場合、またはインデックスに 500 GB を超える場合は、サービス引き上げ限度リクエストを送信します。

Amazon CloudSearch コンソールを使用したデータのアップロード

Amazon CloudSearch コンソールでは、ドメインダッシュボードからローカルファイルシステムまたは Amazon S3 からドメインにデータをアップロードできます。コンソールは、アップロード処理中に以下のファイルタイプを自動的にドキュメントバッチに変換します。

  • JSON または XML (.json、.xml) でフォーマットされたドキュメントバッチ

  • カンマ区切り値 (.csv)

  • テキストドキュメント (.txt)

また、DynamoDB テーブルの項目を変換してアップロードすることもできます。詳細については、「Uploading DynamoDB Data」を参照してください。

注記

Amazon S3 または DynamoDB からデータをアップロードするには、サービスとアップロードするリソースの両方に対するアクセス許可が必要です。詳細については、「バケットポリシーとユーザーポリシーの使用」および「IAM を使用して DynamoDB リソースへのアクセスをコントロールする」を参照してください。

CSV ファイルは解析 row-by-row され、行ごとに個別のドキュメントが生成されます。その他のファイルタイプはすべて単一ドキュメントとして扱われます。ドキュメントバッチの自動生成の詳細については、「データの準備」を参照してください。

インデックス作成のためにデータをドメインに送信するには
  1. https://console.aws.amazon.com/cloudsearch/home で Amazon CloudSearch コンソールを開きます。

  2. 左側のナビゲーションペインで [Domains] (ドメイン) を選択します。

  3. ドメイン名を選択し、ドメイン設定を開きます。

  4. [アクション][ドキュメントをアップロード] の順に選択します。

  5. ドメインにアップロードするデータの場所を選択します。

    • ローカルマシン

    • Amazon S3

    • Amazon DynamoDB

    • サンプルデータ

    ドキュメントバッチとしてフォーマットされていないデータをアップロードすると、アップロード処理中に自動的に変換されます。

    注記

    バッチが無効な場合、Amazon は、単一のコンテンツフィールドと汎用メタデータフィールドを含む有効なバッチにコンテンツを CloudSearch 変換します。これらは通常、ドメイン用に設定されたフィールドではないため、フィールドが存在しないことを示すエラーが発生します。

  6. データをアップロードします。

    1. ローカルファイルをアップロードする場合は、[ファイルを選択] を選択して、アップロードするファイルを探します。

    2. Amazon S3 からオブジェクトをアップロードする場合は、アップロード元となるバケットの URL を指定します。

    3. DynamoDB から項目をアップロードする場合は、アップロード元となるテーブルを選択します。テーブルからの読み取り時に消費可能な読み取りキャパシティユニットを制限するには、読み取りキャパシティユニットの最大パーセンテージを入力します。特定の項目から読み取りを開始するには、[ハッシュキーを開始] を指定します。

    4. 定義済みのサンプルデータをアップロードする場合は、使用するデータセットを選択します。

  7. [続行] を選択します。

  8. アップロードするドキュメントを確認し、[ドキュメントをアップロード] を選択します。

  9. [アップロードの概要] で、ドキュメントバッチがデータから自動生成されている場合は、[生成されたドキュメントバッチをダウンロード] を選択して、そのバッチを取得できます。[閉じる] を選択してドメインダッシュボードに戻ります。

AWS CLI を使用したデータのアップロード

aws cloudsearch upload-documents コマンドを使って、ドキュメントバッチを検索ドメインに送信できます。AWS CLI のインストールおよびセットアップの詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

インデックス作成のためにドキュメントバッチをドメインに送信するには
  • aws cloudsearchdomain upload-documents コマンドを実行して、ドメインにバッチをアップロードします。

    aws cloudsearchdomain upload-documents --endpoint-url http://doc-movies-y6gelr4lv3jeu4rvoelunxsl2e.us-east-1.cloudsearch.amazonaws.com --content-type application/json --documents document-batch.json { "status": "success", "adds": 5000, "deletes": 0 }

HTTP 経由で Amazon CloudSearch ドメインのドキュメントサービスエンドポイントにドキュメントを投稿する

documents/batch リソースを使用して、ドメインにドキュメントバッチを投稿し、ドキュメントを追加、更新、または削除します。例:

curl -X POST --upload-file movie-data-2013.json doc-movies-123456789012.us-east-1.cloudsearch.amazonaws.com/2013-01-01/documents/batch --header "Content-Type:application/json"