カテゴリー内の他の記事

kintone APIやCSVファイルで大量にレコードを更新する時の注意点

(著者:サイボウズ 性能検証担当)

Index

はじめに

kintoneは画面上からレコードを1つ1つ手動で更新するだけでなく、APIやCSVファイルを利用してレコードの更新ができます。

kintoneの使い方の幅が広がって、とても便利な機能ですよね。

例えば、kintone内の他のアプリや外部サービスからデータを取得して、定期的にレコードを一括更新する、

ということもできるので、是非APIやCSVファイルを活用したい!という方も多いのではないでしょうか。

そんな方たちにぜひ知っておいていただきたいのが、レコードの変更履歴とディスク使用量の関係性です。

どういうことか見ていきましょう。

レコードの変更履歴について

kintoneには、フィールドの変更履歴を確認したり、誤ってレコードを更新してしまった時に、過去の状態に戻したりすることができる

「レコードの変更履歴」というとても便利な機能があります。

デフォルトではレコードの変更履歴は有効になっており、レコードを更新するたびにレコードの変更履歴が保存されます。

cybozu.com共通管理の「契約状況」に表示されるディスク使用量には、添付ファイル領域、監査ログ保存領域、データベース領域がありますが、

レコードの変更履歴は「データベース領域」のデータに含まれます。

そう。つまり、kintoneデータベース内にはレコードの変更履歴も保存され、ディスク使用量にカウントされる、ということです

kintoneデータベース内には、単純に現在のレコード情報だけが保存されるだけだ、と思っている方は要注意です!

▼cybozu.comヘルプ:契約状況の見かた
https://jp.cybozu.help/general/ja/admin/list_service/usage.html

レコード更新時のkintoneデータベース内部の動き

では、レコードを変更した時、kintoneデータベース内部ではどういう動きになるか見てみましょう。

レコード更新時のkintoneデータベース内部の動き

________DB_____.PNG

現在のレコード情報だけでなく、前回のレコード情報もkintoneデータベース内に保存されているんですね。

レコードを更新する度に、kintoneデータベース内には以前の情報は残ったまま、どんどん新しい情報が追加されていきます。

API実行やCSV読込でレコードを大量更新すると・・

つまり、APIを実行したりCSVファイルを読み込んで、複数レコードを一括更新すると、

kintoneデータベース内部では以下のような動きになります。

レコード大量更新時のDB内部の動き

__________DB_____.PNG

いかがでしょうか!?

大量レコードを一括更新すれば、その分レコードの変更履歴も大量に保存されることは容易に想像できますよね。

特にAPIやCSVファイルを用いて、レコード一括更新するバッチ処理等をしている場合には

想定外にディスク容量が消費され、契約しているディスク容量を超えてしまう可能性があるため注意が必要です。

(もちろんコマンドラインツールであるcli-kintoneを利用している場合も同様です!!)

▼kintone コマンドラインツールの使い方
https://developer.cybozu.io/hc/ja/articles/202957070

レコード大量更新時はレコードの変更履歴を無効化しよう!

もし普段の運用でレコードの変更履歴をあまり使用していないアプリがあれば、該当アプリのレコードの変更履歴を無効にすることで

ディスク容量の節約につながります。

kintone内部でレコード情報を保存するために必要な処理も減り、結果としてレコード操作が速くなる可能性もあります。

サイボウズでは、APIを用いてレコードを定期的に更新する場合、レコードの変更履歴を無効にすることを推奨しています

レコードの変更履歴を無効にする方法は、以下のヘルプをご参照ください。

▼kintoneヘルプ:レコードの変更履歴の記録機能を無効にする
https://jp.cybozu.help/k/ja/user/app_collectdata/history/disable_changehistory.html

まとめ

普段の運用でレコードの変更履歴をあまり使用していないのであれば、無効にしましょう!

レコードの変更履歴有効時にレコードを大量更新するとディスク容量圧迫して、契約しているディスク容量を超える場合があります。

参考までに、レコードの変更履歴を無効にする以外にもディスク使用量を減らす方法を知りたい方は、以下のヘルプも参考にしてください。

▼kintoneヘルプ:ディスク使用量を減らすにはどうすればいいですか?
https://jp.cybozu.help/k/ja/admin/admin_faq/disk_size.html

このTipsは、2019年10月版 kintoneで確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

サインインしてコメントを残してください。