1. ホーム
  2. amazon-dynamodb

[解決済み] DynamoDBのパーティションキーはどのように機能しますか?

2022-03-02 04:15:17

質問内容

DynamoDBテーブルのパーティションがどのように作成されるかを理解しようとしています。

これによると ブログ ということは、ユーザーIDが1から1000までのテーブルがあれば、1000のパーティションがあるということでしょうか?それとも、内部ハッシュ関数次第なのでしょうか?

その後、各パーティションに均等にデータを割り当てるために、1~10のランダムなサフィックスを使用することが提案されましたが、与えられた請求書番号に対して10回クエリを実行することをどうやって知るのでしょうか?パーティションが10個あるときだけなのでしょうか。しかし、この場合、何千もの請求書番号があるため、同じ量のパーティションが作成され、請求書番号を照会するためのクエリーが作成されることになります。

どのように解決するのですか?

Amazon DynamoDBのテーブルが作成されたとき、次のことができます。 希望するスループットをReads per secondとWrites per secondで指定する。 . テーブルは、要求されたスループットを提供するのに十分な複数のサーバ(パーティション)にわたってプロビジョニングされます。

あなた を表示することはできません。 パーティションの作成数は、DynamoDBが完全に管理します。データ量の増加やプロビジョニングされたスループットの増加に伴い、パーティションは追加で作成されます。

例えば、秒間1000Readsを要求し、データが内部で10台のサーバー(10パーティション)に分割されているとします。各パーティションは 100回/秒 . すべてのRead要求が同じパーティションキーである場合、スループットは100Reads/secに制限されます。もし、要求が異なる値の範囲に分散している場合、スループットは完全な 1000 リード/秒 .

同じパーティション・キーに対して多くのクエリーが行われた場合、結果的に ホットパーティション となり、利用可能なスループットの合計が制限されます。

のようなものだと考えてください。 窓口の前に行列ができる銀行 . 一人の窓口に全員が並べば、対応できる顧客は少なくなります。多くの窓口にお客さまを分散させた方が効率的です。A 良いパーティションキー 顧客ごとに異なるので、顧客番号で顧客を分散させることもできます。A 貧弱なパーティションキー というのも、彼らは皆、銀行の近くの同じ地域に住んでいるからです。

単純なルールとしては、さまざまな値の範囲を持つパーティション・キーを選択することです。

参照してください。 パーティションとデータ配布