一括編集と一括削除
一括編集は、1 組の変更を多数の DynamoDB アイテムにまとめて適用します。属性を設定する、削除する、数値に加算する、のいずれかです。一括削除は代わりにアイテムを削除します。どちらも、選択した行か、クエリに一致するすべてのアイテムに対して動作します。
既定では、どちらも保留中の変更に入り、テーブルに届く前にアイテムごとの差分を確認できます。確認するには大きすぎる実行のために、直接モードは DynamoDB に直接書き込みます。アイテム数の上限はなく、元に戻す手段もありません。
アイテムを選ぶ
一括編集と一括削除は、Visual モードまたは PartiQL モードのテーブルタブのグリッド選択に対して動作します。ベクトル検索の結果も対象です。Smart Tables と Workbench のタブは読み取り専用で、どちらも提供しません。
- 選択した行: 2 行以上を選択し、⌘E を押すか、ツールバーの編集 をクリックするか、右クリックして 選択した Item を一括編集 を選びます。 1 行だけ選択している場合、⌘E は代わりにアイテムエディタを開きます。一括編集で扱える選択行は最大 10,000 行です。
- 一致するすべてのアイテム: 結果に読み込まれていないページがあるときに ⌘A を押すか、ヘッダーのチェックボックスをオンにします。選択は、読み込まれているかどうかに関係なくクエリに一致するすべてのアイテムを対象にし、ツールバーの選択チップには すべて と表示されます。
一致するすべてのアイテムの選択には件数が表示されません。DynamoDB は一致するアイテムをすべて読み取らなければ数えられないため、DynoTable は数値ではなく「すべて」と表示します。
行のチェックを外すと、その行は対象外になります。選択には外した行の数が表示されます。通常のクリックや矢印キーで、選択は 1 行に戻ります。
一致するすべての選択は、表示どおりに実行済みのビジュアルなキークエリまたはスキャンで使えます。実行はその実行済みのクエリを読み取るので、フィルターを編集したら、開始する前に実行してください。
削除も同じ選択を使います: ツールバーの 削除、⌘⌫、または ⌘⇧⌫ です。選択した行に対しては、ステージングとコミットで説明したとおりに動作します。
一致するすべての選択に対しては、どれも代わりに 一致するすべての Item を削除しますか? ダイアログを開きます。モードは書き込み方法を選ぶで説明します。
編集内容を指定する
一括編集 ダイアログは、上部に対象範囲を表示して開きます。選択した行の数か、一致するすべての Item とその下のフィルターです。その下の各行が 1 つの変更で、左から右へ読みます:
- 設定 — 属性を String、Number、Boolean、Null のいずれかの型の値にします。
- 削除 — 属性を取り除きます。
- 追加 — 数値に加算します。負の値なら減算です。その属性を持たないアイテムは、加算する値がそのまま属性の値になります。これは DynamoDB 自身の
ADDと同じ動作です。
属性には address.city のような入れ子のパスも指定できます。名前と値はテーブルのローカルインデックスから補完され、自由入力も常に使えます。編集を追加 を使うと、1 回の実行で複数の属性を変更できます。
DynoTable はアイテムを 1 件も読み取る前に、編集全体をテーブルと照合します。次の場合は、その行に理由を表示して拒否します:
- 属性がテーブルのプライマリキーの一部である。DynamoDB はプライマリキーの更新を一切認めません。
- 2 つの行が重なっている。たとえば
addressとaddress.cityです。 - 値がセカンダリインデックスのキーに合わない。型が違う、空である、または数値ではないキーに対する追加です。
- 数値が DynamoDB に保存できる範囲の外にある。
それ以外の編集は、警告付きで許可されます。セカンダリインデックスのキーを変更するとアイテムがそのインデックスに出入りし、ベクトルインデックスの元になる属性を変更すると検索結果が変わります。ステージした変更をコミットしてもアイテムは再埋め込みされないため、埋め込みは古くなります。

書き込み方法を選ぶ
一括編集 ダイアログのボタンは分割されていて、矢印から書き込みモードを開きます。一致するすべての Item を削除しますか? ダイアログは、同じモードを番号付きの選択リスト — 削除を Commit、削除をステージ、直接削除 — として表示します。 1〜3 を押すか ↑ / ↓ で移動すると、フッターのボタンが選んだモードに合わせて変わり、⌘↩ でそのボタンを押せます。前回の実行をどう終えたかに関係なく、どちらのダイアログも常にステージ の状態で開くので、Enter を 1 回押しただけでテーブルに書き込まれることはありません。
| モード | 動作 | アイテム数 | 元に戻す |
|---|---|---|---|
| 編集をステージ / 削除をステージ | 保留中の変更に追加し、Commit 前に確認 | 最大 10,000 | コミット前は破棄、コミット後は元に戻す |
| 編集を Commit / 削除を Commit | 今すぐ DynamoDB に書き込む。履歴から元に戻せます | 最大 10,000 | 履歴から元に戻す |
| 編集を直接書き込む / 直接削除 | 上限なし、保留中の変更なし。元に戻せません | 一致したすべて | なし |
差分を先に読みたい場合や、一部だけをコミットしたい場合は ステージ を選びます。編集に確信があり、履歴を元に戻す手段にしたい場合は Commit を選びます。 Commit は実行をステージし、ステージしたものすべてを 1 ステップでコミットします。
一致するアイテムが 10,000 を超える場合や、確認に意味がない場合、たとえば数百万アイテムに属性をバックフィルする場合は、直接モードを選びます。直接モードは一致するすべての選択でのみ表示されます。選択した行は常にステージを経由します。

ステージした実行がスキップするもの
ステージ または Commit の実行は、ステージする前に各アイテムをもう一度読み取り、アイテムごとに通常の保留中の変更を 1 つステージします。次の場合はアイテムをスキップし、その理由を数えます:
- アイテムにすでに保留中の変更がある。実行がそれを上書きすることはありません。
- アイテムがもう存在しない。または、一致するすべてのアイテムの場合、クエリが一致した後にアイテムが変更された。
- 変更が適用できない。数値ではない値への追加、親が Map ではない入れ子のパス、または書き込むには大きすぎる結果です。
- アイテムがすでに設定する値を持っている。
ステージした変更は、ほかの保留中の変更と同じ楽観的ロックでコミットされます。コミット前にアイテムが変更されると、上書きせずに競合として扱われます。
一致するすべてのアイテムに対してステージした削除は、フィルターに固定されます。コミット時には、フィルターが判定した属性が、実行がアイテムを読み取ったときと同じ値をまだ保持している場合にのみ削除されます。それ以外のアイテムは競合として表示され、削除されません。古い値こそが削除を安全にしているので、これらにはリベースは提供されません。代わりに変更を破棄してください。
10,000 アイテムの上限
ステージする実行は最大 10,000 アイテムを読み取り、それより多く一致した場合はそのことを表示します。
- 削除: ステージしたものをコミットしてから、削除をもう一度実行します。削除したアイテムはもう存在しないので、次の実行は残りから始まります。
- 編集: もう一度実行すると同じ最初のアイテムを読み取り、それらはコミットするまで保留中としてスキップされます。追加 は実行が到達したすべてのアイテムに再び適用されるので、コミット済みの実行の後では 2 回加算されます。上限に達する可能性のある追加の実行の前には、ダイアログが警告します。
上限より大きな一致には、直接実行を使ってください。
直接実行
直接実行は、一致するアイテムをページ単位で読み取り、読み取りながら各変更を書き込みます。間にステージはありません。直接モードを選ぶと、ダイアログにそのオプションが 安全 · 上限なし のような 1 行の要約に折りたたまれて表示されます。開くと、削除では ガード の選択(安全と高速)が、両方では最大書き込み数/秒が表示されます。
直接実行が書き込むアイテムはそれぞれ書き込みキャパシティとして課金されるため、数百万アイテムに対する実行は数百万回の書き込みになります。開始する前に、料金計算ツールでおおよその額を見積もれます。
直接実行を確認する
編集を直接書き込む または 直接削除 を選ぶと、何かを読み取る前に確認ステップが開きます。テーブルとフィルターを示し、チェックを外した行の数を数え、この操作は元に戻せません。 と表示します。ステップが開いたとき、破壊的なボタンにフォーカスが当たることはありません。
直接削除 では、さらにテーブル名の入力を求められます。名前が完全に一致するまで、ボタンは無効のままです。
安全と高速
直接削除には 2 つのガードがあります:
- 安全(既定): 削除のたびにフィルターを再確認するため、一致しなくなったアイテムは保持されます。どの書き込みにも、アイテムを読み取ったクエリから作られた条件が付きます。
- 高速: フィルターを再確認せずにバッチで削除します。速い反面、実行中に一致しなくなったアイテムも削除されます。確認ステップはそのことを明示します。
直接編集は常に安全です。各更新はフィルターを再確認し、各追加は数値が実行の読み取った値をまだ保持しているかを確認します。そのため、同時に変更があったアイテムには古い結果を書き込まず、スキップします。
最大書き込み数/秒
最大書き込み数/秒 は、実行が書き込む速さを 1 秒あたりのアイテム数で制限します。高速のバッチに含まれるアイテムも 1 件ずつ数えます。空のまま(上限なし)にすると、DynoTable は控えめな速さで始め、DynamoDB が書き込みを受け付ける間は速度を上げ、DynamoDB がスロットリングすると速度を落とします。
ライブトラフィックを処理している本番テーブルでは設定してください。実行がアプリケーションと競合せず、アプリケーションのための書き込みキャパシティを残せます。
直接実行が拒否される場合
DynoTable は直接実行を開始前に確認し、再開するときにも再び確認します。次の場合は、ダイアログに理由を表示して拒否します:
- 編集に 高速 を選んだ。高速は削除専用です。
- クエリがアイテム全体を保持しないインデックスを読み取るため、編集で変更する属性が見えない。代わりにテーブルを Query してください。
- 編集が、実行の読み取るインデックスのキーを変更する。実行がまだ読み取っているアイテムが移動してしまいます。
- 編集とフィルターを合わせると、DynamoDB の 4 KB の式の上限を超える。
アクティビティで実行を追う
実行が始まるとダイアログが閉じ、実行は アクティビティ ポップアップに引き継がれます。同じ実行は、エクスポートやインポートと並んでサイドバー下部のアクティビティパネルに残るので、実行中も作業を続けられます。
どの実行も同じ形で表示されます。左に 10,000 件をステージ や 801 件を書き込み(削除では 削除)のような件数が 1 つ、実行中は右に時間が表示されます。スキャンでは、プログレスバーが DynamoDB の報告するテーブルのアイテム数に対して進み、時間は残り時間の見積もりになります。クエリには総数がないため、経過時間を表示します。
件数の下には、該当するものがある場合にだけ、スキップの理由ごとの件数(書き込み時に一致しなくなったアイテムや、すでに保留中の変更があるアイテムなど)と、アイテムが失敗した場合は最初のエラーが表示されます。ステージする実行が終わると、確認してコミット でステージした内容を保留中の変更で開きます。
スロットリングされた書き込みは再試行され、失敗として数えられることはありません。保留中の変更があるアイテムは、上書きされずにスキップされます。書き込みが 100 回連続で失敗すると、実行は中断として停止します。IAM 権限の不足や誤った編集のせいで、残りのアイテムがすべて失敗することはありません。
キャンセル は、処理中のページが終わった時点で実行を停止します。ステージする実行は、ステージしたものを保留中の変更に残します。直接実行は書き込みを取り消せません: 停止前に書き込まれたアイテムは新しい値を保持し、削除されたアイテムは削除されたままです。
アクティビティのポップアップで見ている間に終わった実行は、完了 をクリックするまで最後の件数のまま残ります。バックグラウンドで問題なく終わった実行は、数秒後にアクティビティから自動的に消えます。スキップや失敗したアイテム、キャンセル、エラーがある実行は、閉じるまで残ります。直接実行が何かを書き込むと、そのテーブルを開いているグリッドが更新されます。

中断された直接実行を再開する
直接実行は、どこまで進んだかを記録しています。何かで停止すると、実行は中断 としてアクティビティに残り、理由と 2 つのボタン、再開 と 破棄が表示されます。実行が中断されるのは次の場合です:
- アプリを終了した、またはクラッシュした。次に DynoTable を起動したとき、実行は中断として表示されます。
- AWS のセッションの有効期限が切れた。長い実行がサインインのために途中で止まることはないので、代わりに 再開 がサインインを求めます。
- DynamoDB に接続できなかった。
- 書き込みが 100 回連続で失敗した、または別のエラーで停止した。先に原因を修正してください。
再開 は実行が停止した箇所から続行し、ページの途中で停止した場合でも、追加を含めてどの変更も 2 回適用しません。続行する前に、テーブルをもう一度確認します。テーブルが削除されて再作成された、キースキーマが変わった、実行の読み取るインデックスがなくなった、または編集が拒否されるようになった場合、再開は拒否され、破棄 だけが残ります。
破棄 は実行を忘れ、それ以上は何も書き込みません。すでに書き込んだアイテムは新しい値を保持します。
直接実行は、実行中か中断中かを問わず、1 つのテーブルにつき同時に 1 つだけ存在できます。最初の実行を再開するか破棄するまで、2 つ目の開始は拒否されます。
再開した削除の対象を、その間にほかの誰かがすでに削除していた場合、そのアイテムは削除済みとして数えられます。どちらの場合もテーブルは同じ状態になります。
2 つのアイテムを比較
ちょうど 2 行を選択して ⌘⇧C を押すか、右クリックして選択した Item を比較 を選びます。DynoTable は両方のアイテムをもう一度読み取り、異なる属性を A と B として並べて一覧表示し、同一の属性の数も示します。
属性の A にコピー または B にコピー は、反対側の値を取り込みます。 A への変更を N 件ステージ(または B)は、それらを 1 つの保留中の変更としてステージし、ほかの変更と同じように確認してコミットします。
AI アシスタントはステージのみ
AI アシスタントは、自分で示したフィルター、現在の選択、またはキーの一覧に対して、一括編集や一括削除を実行できます。ただし行うのは常にステージだけで、上限は 10,000 アイテムです。その変更は、あなたがコミットするまで保留中の変更で待機します。MCP サーバー経由で接続したエージェントも同じルールに従います。どちらも一括編集をコミットしたり、直接実行を開始したりはできません。
一括編集をブロックするもの
一括編集や一括削除の開始と再開には、ほかのすべての書き込みと同じく、Trialing または Active のライセンスが必要です。読み取り専用の状態でも、実行中の一括編集のキャンセルと中断された実行の破棄はできるので、テーブルが実行に占有されたままになることはありません。








