ポリグロット パーシスタンスとは、さまざまなデータ ストレージのニーズを満たすために、単一のシステム内で複数のデータ ストレージ テクノロジを使用することを意味する用語です。このようなシステムは、複数のアプリケーションで構成される場合もあれば、小さなコンポーネントを持つ単一のアプリケーションである場合もあります。
説明
ポリグロット パーシスタンスは、ポリグロット プログラミングという用語の定義に由来しています。ポリグロット プログラミングは、2006 年に Neal Ford が作った造語で、問題によって言語が異なるという利点を生かすために、コンピュータ アプリケーションはさまざまなプログラミング言語を組み合わせて記述する必要があるという考えを表しています。複雑なアプリケーションではさまざまな種類の問題が組み合わされるため、1 つの言語を使用して問題のすべての側面を解決しようとするよりも、それぞれの作業に適した言語を選択する方が生産的です。この同じ概念はデータベースにも適用でき、アプリケーションはさまざまなデータベースと通信し、それぞれのデータベースを最も得意とする用途に使用して最終目標を達成できるため、ポリグロット パーシスタンスという用語が生まれました。
さまざまな問題を解決するために利用できるデータベースは数多くあるため、単一のデータベースを使用してプログラムの要件をすべて満たすと、パフォーマンスの低い「何でも屋だが、何ひとつ専門的にできない」ソリューションになる可能性があります。たとえば、リレーショナル データベースは、さまざまなデータ テーブル間に存在する関係を強制するのに適しています。関係を検出したり、同じオブジェクトに属する異なるテーブルからデータを検索したりするには、 SQL 結合操作を使用できます。これは、データのサイズが小さい場合は機能する可能性がありますが、関連するデータが大きくなると問題になります。グラフ データベースは、ビッグ データの場合の関係の問題を解決できる可能性がありますが、データベース トランザクションの問題は解決できない可能性があります。データベース トランザクションの問題は、リレーショナル データベース管理システムの方が適切に提供される場合があります。代わりに、NoSQL ドキュメント データベースを使用して、問題の特定の部分に関する非構造化データを格納することができます。このように、同じアプリケーション内で、さまざまな問題が異なるデータベース システムによって解決されます。
このようなデータストレージ技術には、次のようなものがあるが、これらに限定されない。
Martin Fowler氏は、ある記事で次のように書いています。「このことの興味深い結果の 1 つは、ある程度の規模の企業であれば、さまざまな種類のデータに対してさまざまなデータ ストレージ テクノロジを持つようになる、ポリグロット パーシステンスへの移行に向けて準備を進めていることです。リレーショナル ストアで管理される大量のデータは依然として存在しますが、まずデータをどのように操作したいかを尋ね、その後でどのテクノロジが最適かを判断することがますます増えるでしょう。」[1]
参考文献
- ^ 「bliki: PolyglotPersistence」martinfowler.com . 2020年7月9日閲覧。
外部リンク
- ビッグデータと多言語の永続性
- ポリグロット永続性入門: さまざまなデータ ストレージ ニーズに合わせてさまざまなデータ ストレージ テクノロジを使用する
- 多言語の持続性
