【ポリグロットえいぞくせい】

ポリグロット永続性 とは?

最終更新:
💡 データの用途に合わせて、保存技術を使い分ける

データの使い方や必要な性質に合わせ、複数のデータ保存技術を使い分ける考え方。一つのアプリケーション内でも、複数サービスからなるシステムでも使える。種類を増やすこと自体が目的ではなく、運用やデータの整合性が複雑になる負担も考えて選ぶ。

📌 このページのポイント
用途に合わせて、保存技術を選ぶ 関係データ キーと値 文書 検索用情報 アプリ 組み合わせは説明例。数を増やすのが目的ではない
異なる保存技術を使い分ける例。種類や用途名だけで最適な技術が決まるわけではなく、整合性や運用の負担も含めて選ぶ。
ひよこ ひよこ
何を使い分けるの?
ペンギン先生 ペンギン先生
データを保存する技術だよ。例えば関連付けて扱う注文を関係データベースへ、識別子で取得する情報をキーと値の形で保存する仕組みへ、といった選択ができる。これは説明の例で、データの名前だけで最適なDBが決まるわけではないんだ。
ひよこ ひよこ
なんで全部同じDBにしないの?
ペンギン先生 ペンギン先生
取得や更新の仕方、必要な整合性などが違うからだよ。ただし、一つのDBで必要を満たせるなら、それも選択肢。関係データベースは全文検索ができない、などと種類だけで決めつけず、必要な機能と実際の条件を調べよう。
ひよこ ひよこ
ペンギン先生 ペンギン先生
専用ではないよ。一つのアプリ内でも使える。サービスごとに保存技術を選べる設計にも合うけれど、各サービスが別のDBを持つだけで必ずポリグロットになるわけではない。同じ技術を使う設計もあるんだ。
ひよこ ひよこ
デメリットは?
ペンギン先生 ペンギン先生
異なる操作方法や運用を学ぶ必要があるよ。監視や復旧の手順も考える。複数の保存先を更新するなら、一方だけ成功した場合や、情報が食い違った場合をどう扱うかも設計するんだ。
ひよこ ひよこ
種類を増やすほど良いの?
ペンギン先生 ペンギン先生
数を増やすことが目的ではないよ。用途に合う利点と、扱う技術が増える負担を比べて選ぶ。既存のアプリへ導入することもできるけれど、名前の流行や「最新だから」だけを理由に替えないようにしよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ポリグロット永続性」って出てきたら「データの用途に合わせて、保存技術を使い分ける」と思えばだいたいOK!
📖 おまけ:英語の意味
「Polyglot Persistence」 = 複数の技術を使い分ける永続化
💬 複数の言語を使い分ける考え方になぞらえた名前だよ。ここではプログラミング言語の数ではなく、データの保存技術の選択を扱うんだ。

参考資料

← 用語集にもどる