🛠️
Cloud Datastore → Spanner の移行
Created
2022/6/20 5:11
職種
バックエンドエンジニア
As Is
現状は、Datastore にすべてのアプリケーションデータを格納しています。
スケール面含めて非常に満足しているのですが、下記の問題から、今後の成長局面に対応するため Cloud Spanner への移行を進めています。
- クエリが非常に限定的
- 基本的にはインデックスされているカラム 1 つを対象にしたクエリしか発行できません。
- 複数のカラムを複合したインデックスを生成することができ、この複合インデックスを生成すれば複合的なクエリも打てますが、アプリケーションが SNS 的なこともありクエリが複雑になりがちで、無理をしている現状があります
- Read が多いプロジェクトだと費用が高くなりすぎる
- クエリの効率性に関係なく Ops 単位 (e.g. 1 つのレコードに対する Read や Write 単位) で請求されるので、プロジェクトが大規模になるにつれ費用が単調増加していく問題があります
- リアルタイムなデータ分析が難しい
- クエリが限定的なことに関連しますが、BigQuery 等 SQL で分析するためには、全件を Read した上で BigQuery にエクスポートする必要があります。エクスポートするために数時間かかる上に、エクスポートするたびにその分の Read 費用がかかります
To Be
Cloud Spanner への移行を進めています。