改善の繰り返しはデータモデルに多様な変化をもたらします。サービスの成長にあわせてユーザーアクセスやデータ量が増えていくと、当初は比較的行いやすかたったデータモデルの変更作業の難易度は徐々に上がっていきます。そして気付いた時には気軽に向き合えないほど大きな問題を抱える状況に陥ることもあります。
私たちが運営するTimeTreeというカレンダーアプリの開発でも、ニーズに合わせてデータモデルへの変更を頻繁に行っています。その一環として実施した数十億レコードを保有するテーブルに対するデータマイグレーションのアプローチを紹介します。