🛠️
Cloud Datastore → Spanner 移行
課題
現状は、Datastore にバックエンド API が利用するデータを格納しています。インフラの稼働状況を気にする必要がなくオートスケールしてくれる点は魅力ですが、下記の問題があります。
- クエリが非常に限定的
- 複数のカラムを組み合わせた複合インデックスを生成することができるが、アプリケーションが SNS 的なこともありクエリが複雑になりがちで、N+1問題が発生するような箇所も存在する
- Read が多いプロジェクトだと費用が高くなりすぎる
- クエリの複雑さに関係なく Ops 単位 (e.g. 1 つのエンティティに対する Read や Write 単位) で請求されるので、プロジェクトが大規模になるにつれ費用が単調増加していく
- リアルタイムなデータ分析が難しい
- BigQuery 等 SQL で分析するためには、全件を BigQuery にエクスポートする必要がある。エクスポートするために数時間かかる上に、エクスポートするたびにその分の Read 費用がかかる
展望
任意のタイミングでスケールすることができる Cloud Spanner への移行を進めています。