NoSQLは、表形式のリレーショナルデータベースに必ずしも従わず、用途に合わせたデータ構造で保存できるデータベースの総称です。ドキュメント型、KVS、カラム指向、グラフ型などの方式があり、スキーマ変更が起きやすいデータや高トラフィックの読み書きに対応しやすくなります。一方で、RDBのようなJOINや厳密なトランザクションを前提にすると設計が難しくなることもあるでしょう。
実務では、まずクエリパターンを固定し、「どのキーや条件で取り出すか」から逆算してデータモデルとインデックスを設計するのが基本です。分散構成ではパーティション分割とレプリケーションを行うため、整合性(強整合・最終的整合)とレイテンシ、可用性のトレードオフを理解して使い分けます。更新の履歴をどこまで残すか、スキーマ変更をどう検知するか、再処理時に同じ結果を再現できるかまで決めておくと、運用が崩れにくいです。

