背景
cosmos DB を利用していて、テストで使ってできたデータを一括削除しようとした。
てっきり、SQL で DELETE 使えば簡単だと思ってたら、DELETE は使えない・・
勿論、SDK を利用すれば削除は出来るが、Azure Portal からサクッとやりたい場合もある。
ということで、MS-Learn にて言及されている以下の方法で対処したお話
日本語版 URLもあるけど・・一切翻訳されていない
現在は、Portal上でも簡単に全削除できるようになってます。
- 全選択✅
- [Delete]
だったかな?
結論
- Stored Procedure を 実行したいコンテナに追加する
- あとは下の画像のようにする
- 追加した Procedure を選択
- [Execute] で実行する
- で、Partition key の値を入力
- 消したい項目を選択する Query を入力
- ex.) SELECT * FROM c WHERE c.id == 'guid'
- [Execute] で実行
- 結果確認
- タブ選択時、[Execute] が出ないことがあります。そんなときは、タブ切り替えや、編集して [Update] すると出てきます。
Stored Procedure は GitHub に
time to live
チャットボットの履歴なら、一定時間過ぎたら勝手に消すのも手、かな
あとがき
NoSQL を SQL で操作出来るってなんか不思議ですね。