0
私は米国とカナダで不動産のdocumentdbコレクションを構築しています(結局、他の国を追加する必要があるかもしれません)と私は私のコレクションに数百万もの文書があると思います。また、最も人気のあるクエリは、指定された場所から特定の半径内のトップXプロパティを取得することであるとします。不動産データ用のDocumentDbパーティション戦略
これらの要件を前提とすると、良いパーティション分割戦略は何でしょうか? ZIPコード/郵便番号を使用するのが良い分割キーですか?地理的位置を含む戦略が改善されるだろうか?他の提案はありますか?
私は、Azureがデータが配置されているパーティションを見つけるのを助けるために、パーティション戦略が「論理的」または「予測可能」でなければならないという印象を受けました。 1つの例は、パーティションを決定するために特定のプロパティの最初の文字を使用することです。私はこれについて間違っていますか? – desautelsj
いいえ、あなたは正しいです。そのようなフィールドがある場合は、それを使用します。私は私のパーティションキーにTenantIDを使用します。あなたがそのようなフィールドを持っていれば、それはより効率的です。ただし、あなたの場合、ユーザーは住所または郵便番号を指定します。ターゲットのプロパティが同じ郵便番号にある場合は、郵便番号をパーティションキーとして使用するのが最適です。ただし、隣接する郵便番号を取得する場合は、データが配置されるパーティションを制御できないため、すべてのパーティションを検索する必要があります。その場合、ランダム(私の "idを使う"提案)は得られるほど良いものです。 –
道路がダウンしても、それがうまくいかない場合は、郵便番号の最初の2桁または3桁を使用するほうが効率的です。私が恐れているのは、近くにいるときにも、それらを検索する必要があるということです。 2つの郵便番号の間の双方向最小距離のルックアップテーブルを保持するさらに洗練されたスキームは、より良いがより複雑になります。指定された距離内の郵便番号のリストを見つけ、それを使用してクエリをファンアウトするために、まずそのテーブルをクエリする必要があります。 –