1

私は、異なるブックメーカーのウェブサイトからデータを取得する競馬オッズ集計アプリケーションを作成しています。まず、10 秒ごとに 3 つの Web サイト (後で 10 以上になる可能性があります) からデータを取得します。したがって、3 つの Web サイトの場合、毎日約 10,000 のレコード (ランナー) があり、各レコードは 10 秒ごとに 3 回読み取られ、オッズに変化があれば更新されます。

  1. DynamoDB はそのようなアプリケーションに適していますか、それとも RDBMS に固執する必要がありますか?
  2. 同じランナー (記録) のオッズ (異なる Web サイトから) を同時に更新する場合、DyanmoDB に一貫性の問題はありますか?
  3. アプリケーションは他のスポーツやレースに発展し、より多くの Web サイトからデータを取得する可能性があります。DyamoDB はより多くの読み取りと書き込みを行うため、莫大なコストが発生しますか?

更新 - 2020 年 7 月 21 日 9:30AM レコード構造は次のようになります。いくつかのスケジュールされたサービスが実行され、各サービスがブックメーカーを処理します。レコードがサービスによって読み取られ、同時に更新される可能性があります。計算された列の値は、Bookies 列の値に基づきます。したがって、Bookies 列の最新の値を一貫して読み取れるようにしたいと考えています。

  RUNNER       EVENTID  BOOKIE1     BOOKIE2     BOOKIE3     BOOKIE...    CALCULATED
  Runner 1     12345    Odds1       Odds2       Odds3       Odds...      Value
  Runner 2     67890    Odds1       Odds2       Odds3       Odds...      Value

更新 - 21/07/2020 12:20PM

投稿を更新した後、いくつかの数字が頭に浮かび、DynamoDB は非常に高価なようです。これが私の番号です。何か間違っている場合はお知らせください。

仮定:

  1. 10,000ランナー
  2. 1 か月 10 秒ごとに約 270,000 コールに切り上げ
  3. 3 ブックメーカー
  4. 各レコード/アイテムが 4KB 未満であると仮定します。
  5. 1 つの RCU で 1 か月あたり 520 万回の読み取りが可能 (どこかにあります)
  6. 1 つの WCU で 1 か月あたり 250 万回の読み取りが可能

1 か月あたりに必要な RCU: (3 * 1,0000 * 270,000)/5.2 ミル = 1558 RCU

1 か月あたりに必要な WCU: (3 * 1,0000 * 270,000)/2.5 ミル = 3240 WCU

4

3 に答える 3