2017-02-22 9 views

答えて

3

あなたが多額の月額料金を支払う気にならない場合、Azure Searchを使用してテーブルをインデックス化する際のコメントは優れています。

質問に答えるには、Azure Storage APIを使用して検索することができますが、最初にAzure Storage Tablesを構造化するときに検索するフィールドについては非常に意図的でなければなりません。

作業する必要のある「インデックス」は、パーティションキーと行キーのみです。同じパーティションキーを持つエンティティは一緒に格納され、パーティションが大きくなければ効率的に検索できます。 Azureテーブルはスキーマを強制しないので、実際には異なるパーティションに同じデータを格納して検索を容易にすることができます。

あなたはパーティション・キーと同じテーブルにこのデータを複製することができますが、アドレスジョニー・アップルシード839シャーマンオークスドライブノックスビル、TN 37497.を持っていたと仮定します

  • シティステイト・knoxville_tn_37497
  • 名-appleseed_johnny
  • ストリートsherman_oaks

ユーザーは、検索ユーザーが入力した条件に基づいてパーティションを選択し、アズールはperfoますしようとするとrm完全なパーティションスキャンを実行して一致するすべてのレコードを検索します。継続トークンも処理する必要があります。

パーティション内の行キーを検索条件の一部として指定すると、部分パーティションスキャンに制限することもできます。 Azureは、行キーに一致する可能性のある行のみをスキャンします。

+1

これは、さまざまなクエリのニーズに基づいて、データモデルとデータモデルの非正規化についての良い答えです。残念ながら、あなたが対処する必要があるのは一貫性です(あなたが気にしている場合のみ)。Azureは、異なるパーティションキー上のアトミックバッチ操作のためのシェルフサポートを提供しません。ここをクリックしてください:https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/#eventually-consistent-transactions-pattern –

+0

犬、あなたは絶対に正しいです。それを加えていただきありがとうございます –

1

Azureストレージテーブルには、2つのインデックス付きプロパティのみがあります。PartitionKey & RowKey。索引付けされていないプロパティを問い合せると、テーブル全体がスキャンされます。数千ものレコードを保存するだけで済む場合、Azure Storage Tableは低価格なので良い選択です。ただし、さらに多くのレコードを格納する場合は、高度なインデックス付きクエリをサポートするため、SQL Azureを選択することをお勧めします。

関連する問題