データ分析のスナップショットとは ~ある時点の状態を保存する~|データ分析用語を解説

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

スナップショットは、データが変わる前に行う事が重要

データ分析業務を含めたIT業界では、「スナップショット」という言葉を頻繁に使いますが、世間一般では、あまり使われない言葉です。今回は、データ分析で使う「スナップショット」について説明したいと思います。

スナップショットとは

「スナップショット」について、IT用語辞典の内容を引用すると『スナップショットとは、開発中のプログラムのソースファイルや、稼動中のデータベースファイルなどを、特定のタイミングで抜き出したもの。』との事です。データ分析業務では、分析元となるデータやDBを抜き出し、別ファイル(データ)として保存します。用途は若干異なりますが、バックアップだと思っていただいて構いません。

データ分析でスナップショットを取るタイミング

大量データの取込前:バックアップとして

DBに大量データを取込(インポート)する前などには、取込失敗のリスクに備えてDBのスナップショットをバックアップとして保存します。これで、もし取込失敗した場合、DB全体、または一部のテーブル情報のデータをスナップショットのデータを使って復旧することができます。
また、不測の事態に備えて、定期的にDBのスナップショットを取り、そのスナップショットを世代管理(直近の何個かを常に保持すること)場合もあります。スナップショットを世代管理することで、直近のスナップショットだけでなく、過去のスナップショットからもデータ復旧できるため、より強固なバックアップ体制になります。

特定のイベントの前後:変化量の分析として

ソーシャルゲームのキャンペーンなどのイベント前後でDBのスナップショットを取り、この2つのスナップショットのデータの増分を比較することでデータの変化量の分析を行うことができます。イベントの前後でスナップショットを取る理由として、その時点のデータで分析する必要があるためです。
ソーシャルゲームの「モンスターを倒した」「アイテムを取得した」などのアクションログは、履歴として残っているため後からでも分析ができます。しかし、ユーザーのレベルなどのステータス情報は時間の経過とともに上書きされてしまうため、その時点のステータス情報をスナップショットを使用して、データ待避する必要があるのです。
また、これらの上書きされてしまうステータス情報は定期的にスナップショットを取り、再度、テーブルに最適な形で蓄積することでステータス履歴を作ることで、過去の行動分析などの多くの分析データとして活用することが可能になります。

データ分析でスナップショットを消すタイミング

スナップショットのデータ容量は、スナップショットの対象となったデータ容量に比例して大きくなります。そのため、定期的にスナップショットを消さないと記憶容量を圧迫することになります。
バックアップ用途で作成したスナップショットなら必要がなくなった瞬間、または一定期間の保存後に消すように心がける必要があります。
データ分析用語:索引

SERVICE