ダイナモには約2,800万レコードのライブテーブルがあります。
テーブルにはLSIになるために変更したいGSIがありますが、LSIを作成できるのはテーブル作成時のみです。GSIの代わりにLSIを使用するために大きなダイナモブロックテーブルを変更してください
新しいテーブルを作成し、ダウンタイムを最小限にしてデータを移行する必要があります。私は次のことをやろうと思っていた: 正しいインデックスで新しいテーブルを作成する。 レコードを古いテーブルと新しいテーブルに書き込むようにコードを更新します。これが始まると、最初のレコードのタイムスタンプを書き留めます。 私の最初の日付より前の作成日のものについて、既存のデータを同期する簡単なプロセスを作成します。
既存のレコードが更新されたときの競合状態を防ぐために、新しいテーブルにロックフィールドを追加する必要があります。 すべてが同期されると、新しいテーブルを使用するように切り替わります。
私はうまくいくと思いますが、それはかなり複雑でエラーが発生しやすいと感じています。誰かがこれを行う良い方法を見つけましたか?ここで
トリガーについてはわかりませんでしたが、実験して更新します。 – mark