Amazon による DynamoDB データの検索 CloudSearch - アマゾン CloudSearch

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

Amazon による DynamoDB データの検索 CloudSearch

インデックスオプションを設定するとき、またはコンソールを介してデータを検索ドメインにアップロードするときに、DynamoDB テーブルをソースとして指定できます。これにより、検索ドメインをすばやくセットアップし、DynamoDB データベーステーブルに保存されているデータの検索を試みることができます。

検索ドメインがテーブルの変更と同期された状態を保つには、テーブルおよび検索ドメインの両方に更新を送信するか、テーブル全体を新しい検索ドメインに定期的に読み込むことができます。

Amazon を設定する CloudSearch DynamoDB データを検索するためのドメイン

DynamoDB データを検索するように検索ドメインを設定するには、Amazon を使用するのが最も簡単です CloudSearchconsole. コンソールの設定ウィザードは、テーブルデータを分析し、テーブル内の属性に基づいて推奨されるインデックス作成オプションを表示します。推奨される設定を変更して、インデックスを作成するテーブル属性を制御できます。

注記

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

DynamoDB テーブルから検索ドメインを自動的に設定すると、最大 200 の一意の属性をインデックスフィールドにマッピングできます (200 を超えるフィールドを検索ドメインに設定することはできないため、属性が 200 未満の DynamoDB テーブルからのみデータをアップロードできます)。アマゾンが CloudSearch により、一意の値の数が少ない属性が検出されると、フィールドの推奨される設定でファセットが有効になります。

重要

DynamoDB テーブルを使用してドメインを設定しても、データがインデックス作成のためにドメインに自動的にアップロードされることはありません。ドメインを設定した後、別個のステップとしてインデックス作成のためにデータをアップロードする必要があります。

Amazon を使用して DynamoDB を検索するためのドメインの設定 CloudSearch コンソール

Amazon を使用できます CloudSearch コンソールを使用して、DynamoDB テーブルのデータを分析して検索ドメインを設定します。テーブルのサイズに関係なく、最大 5 MB が読み取られます。デフォルトでは、Amazon CloudSearch はテーブルの先頭から読み取ります。開始キーを指定して、特定の項目から読み取りを開始できます。

DynamoDB テーブルを使用して検索ドメインを設定するには

  1. Amazon を開く CloudSearch コンソールhttps://console.aws.amazon.com/cloudsearch/home

  2. 左のナビゲーションペインのドメイン

  3. ドメインの名前を選択して、その詳細パネルを開きます。

  4. に移動しますインデックスオプション[] タブをクリックし、設定ウィザード

  5. SelectAmazon DynamoDB

  6. 分析する DynamoDB テーブルを選択します。

    • テーブルからの読み取り時に消費可能な読み取りキャパシティーユニットを制限するには、使用する読み取りキャパシティーユニットの最大パーセンテージを入力します。

    • 特定の項目から読み取りを開始するには、[Start hashkey。テーブルでハッシュおよび範囲タイプのプライマリキーが指定されている場合、項目のハッシュ属性と範囲属性の両方を指定します。

  7. [次へ] を選択します。

  8. 推奨される構成を確認します。これらのフィールドを編集して、フィールドを追加できます。

  9. 終了したら、確認

  10. まだデータをドメインにアップロードしていない場合は、今すぐインデックスを作成するチェックボックスを選択してインデックスを作成せずに終了します。設定の変更が終了し、新しい設定でデータのインデックスを作成する準備ができたら、今すぐインデックスを作成するが選択されています。変更を適用する準備ができたら、完了

Amazon へのデータのアップロード CloudSearch DynamoDB から

Amazon を介した検索ドメインへの DynamoDB データのアップロード CloudSearch コンソールまたはAmazonで CloudSearchコマンドラインツール。DynamoDB テーブルからデータをアップロードすると、Amazon CloudSearch は、インデックスを作成できるようにドキュメントバッチに変換します。ドメイン設定で各属性のインデックスフィールドを選択して定義します。詳細については、「Amazon を設定する CloudSearch DynamoDB データを検索するためのドメイン」を参照してください。

複数の DynamoDB テーブルから同じ Amazon にデータをアップロードできます。 CloudSearch ドメイン。ただし、すべてのテーブルから最大 200 の属性を組み合わせてアップロードできることに注意してください。同じキーを持つ項目が、アップロードされた複数のテーブルに存在する場合、最後に適用された項目により、それより前のすべてのバージョンが上書きされます。

テーブルデータをドキュメントバッチに変換する場合、Amazon CloudSearch により、テーブルから読み取られる項目ごとにドキュメントが生成され、各項目の属性がドキュメントフィールドとして表されます。各ドキュメントの一意の ID は、docid 項目属性 (存在する場合) から読み取られるか、プライマリキーに基づいて英数字値が割り当てられます。

アマゾンが CloudSearch テーブル項目のドキュメントを生成します。

  • 文字列セットと数値セットは、多値フィールドとして表されます。DynamoDB セットに 100 個を超える値が含まれている場合、最初の 100 個の値だけが多値フィールドに追加されます。

  • DynamoDB バイナリ属性は無視されます。

  • 属性名は Amazon に準拠するように変更されます CloudSearch フィールド名の命名規則:

    • 大文字はすべて小文字に変換されます。

    • DynamoDB 属性名の先頭が文字でない場合、フィールド名の先頭には f_ が付きます。

    • a~z、0~9、_ (下線) 以外のすべての文字は、下線で置き換えられます。この変換の結果フィールド名が重複する場合、フィールド名を一意にするために番号が付けられます。例えば、属性名 håth-thát はそれぞれ h_th_t1h_t2 にマッピングされます。

    • DynamoDB 属性名が 64 文字を超える場合、属性名の最初の 56 文字が属性名全体の 8 文字の MD5 ハッシュで連結され、フィールド名が形成されます。

    • 属性名が body の場合、フィールド名 f_body にマッピングされます。

    • 属性名が _score の場合、フィールド名 f_ _score にマッピングされます。

  • 番号属性は Amazon にマッピングされます CloudSearch int フィールドと値は 32 ビットの符号なし整数に変換されます。

    • 数値属性に 10 進値が含まれる場合、値の整数部だけが保存されます。小数点の右側の値はすべて削除されます。

    • 符号なし整数として保存可能な値より値が大きい場合、値は切り捨てられます。

    • 負の整数は、正の符号なし整数として扱われます。

Amazon を介したドメインへの DynamoDB データのアップロード CloudSearch コンソール

Amazon を使用できます CloudSearch コンソールを使用して、最大 5 MB のデータをDynamoDB テーブルから検索ドメインにアップロードできます。

コンソールを使用して DynamoDB データをアップロードするには

  1. Amazon を開く CloudSearch コンソールhttps://console.aws.amazon.com/cloudsearch/home

  2. 左のナビゲーションペインのドメイン

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

  4. 選択アクション,ドキュメントをアップロードする

  5. SelectAmazon DynamoDB

  6. ドロップダウンから、データが含まれている DynamoDB テーブルを選択します。

    • テーブルからの読み取り時に消費可能な読み取りキャパシティユニットを制限するには、読み取りキャパシティユニットの最大パーセンテージを入力します。

    • 特定の項目から読み取りを開始するには、[Start hashkey。テーブルでハッシュおよび範囲タイプのプライマリキーが指定されている場合、項目のハッシュ属性と範囲属性の両方を指定します。

  7. テーブルオプションの指定が完了したら、

  8. アップロードされる項目を確認します。[] を選択して、生成されたドキュメントバッチを保存することもできます生成された文書バッチをダウンロードする。次に [] を選択します。ドキュメントをアップロードする

検索ドメインと DynamoDB テーブルの同期

検索ドメインと DynamoDB テーブルの更新が同期された状態を保つには、更新をプログラムにより追跡してドメインに適用するか、新しいドメインを定期的に作成してテーブル全体を再度アップロードできます。大量のデータがある場合、プログラムにより更新を追跡して適用することをお勧めします。

プログラムによる更新の同期

DynamoDB テーブルへの変更と追加を同期させるには、別個の更新テーブルを作成して検索対象のテーブルの変更を追跡し、更新テーブルの内容を対応する検索ドメインに定期的にアップロードできます。

検索ドメインからドキュメントを削除するには、削除された各ドキュメントの削除オペレーションを含むドキュメントバッチを生成してアップロードする必要があります。1 つの方法として、別個の DynamoDB テーブルを使用して削除された項目を追跡し、テーブルを定期的に処理して削除オペレーションのバッチを生成し、バッチを検索ドメインにアップロードすることができます。

初期データアップロード時に加えた変更が失われないようにするために、追跡の変更の収集は初期データアップロードの前に開始する必要があります。アマゾンを更新するかもしれませんが CloudSearch 同じデータを持つドキュメントでは、変更が失われておらず、検索ドメインに up-to-date すべての文書のバージョン。

更新を同期させる頻度は、変更のボリュームと更新のレーテンシーの許容度によって決まります。1 つの方法として、一定期間の変更を蓄積し、その期間の終わりに変更をアップロードして、その期間の追跡テーブルを削除することができます。

例えば、変更と追加項目を 1 日 1 回同期させるには、1 日の始めに updates_YYYY_MM_DD というテーブルを作成して毎日の更新を収集できます。1 日の終わりに、updates_YYYY_MM_DD テーブルを検索ドメインにアップロードします アップロードが完了したら、更新テーブルを削除し、翌日の新しいテーブルを作成できます。

新しい検索ドメインへの切り替え

個々の更新を追跡してテーブルに適用しない場合、テーブル全体を新しい検索ドメインに定期的に読み込み、クエリトラフィックを新しいドメインに切り替えることができます。

新しい検索ドメインに切り替えるには

  1. 新しい検索ドメインを作成し、既存のドメインから設定をコピーします。

  2. DynamoDB テーブル全体を新しいドメインにアップロードします 詳細については、「Amazon へのデータのアップロード CloudSearch DynamoDB から」を参照してください。

  3. 新しいドメインがアクティブになったら、新しいドメインをポイントするようクエリトラフィックを古い検索ドメインに転送する DNS エントリを更新します。例えば、Amazon Route 53 を使用している場合、新しい検索サービスエンドポイントでレコードセットを更新するだけで済みます。

  4. 古いドメインを削除します。