隆顕TweetはじめにEDW2019にて、某大手投資銀行がサービス(機能)ごとにアプリケーションを作り、それを組み合わせてシステムを作成するマイクロサービスアーキテクチャ実現のための取り組みについて事例を発表していました。その際、日本ではあまり聞いたことがないワードが使われていました。Database)です。これら2つのワードは優れたマイクロサービス型システムを構築する上で重要なコンセプトです。マイクロサービスが今後のスタンダードになることを想定し、これら2つのワードが日本でもっと認知され、皆様がシステム構造を検討する際の参考となるようにご紹介します。ポリグロット・パーシステンスとはポリグロット・パーシステンスについて説明する前に、まずマイクロサービスと従来型のシステムの構造の特徴について理解する必要があります。従来型のシステムは、1つのソフトウェアの中にユーザインターフェースとビジネスロジックを組み込み、全てのロジックで共有するデータベースを持つ形で実現されています。そのため、各機能をバラすことが難しく、1システム=1種類のデータベースが当たり前でした。マイクロサービス型のシステムは、小さな機能(サービス)を複数組み合わせることで1つのシステムを構築します。各機能が完全に独立しているため、機能ごとに異なる技術(プログラミング言語やデータベースの種類等)を使うことが出来ます。これはマイクロサービスアーキテクチャを採用する際のメリットの1つです。<従来のシステムとマイクロサービスの違い>マイクロサービスにおいては、もちろん従来のシステムと同様に1種類のデータベースだけを使うこともできますが、その特性を最大化するため「データの特性ごとに適材適所のデータベースの種類を使おう」というコンセプトが生まれました。それが「ポリグロット・パーシステンス」です。実際、マイクロサービスアーキテクチャを採用している欧米の先進企業はすでに、機能ごとにデータベースをうまく使い分けているようです。<ポリグロット・パーシステンスの例(ECプラットフォーム)>ポリグロット・パーシステンスの考え方は様々なデータに対応することができる一方で、各データがそれぞれの特性に応じたデータベースで個別に管理されるため、以下のような懸念事項があります。データがサイロ化し横断的に活用しづらいデータの一貫性がとりづらいデータの操作が複雑になるこの問題を解決するために考えられたのがマルチモデルデータベースです。マルチモデルデータベースとはリレーショナル、キー・バリュー、ドキュメント、グラフなどの異なるデータ構造で管理されているデータを、それぞれのデータ構造のまま取り扱うことができるDBMSです。マルチモデルデータベースを用いることで、物理的にはサイロ化しているデータベースを1つのデータベースのように扱うことができるため、データの横断的な活用や一貫性の維持が容易になります。データベースごとにDBMSを用意する必要がなく、一度の命令で複数のデータベースを操作することができます。<従来とマルチモデルデータベースの比較>おわりに今回はポリグロット・パーシステンスとマルチモデルデータベースについてご紹介しました。データの特性や管理/処理要件に応じて、データ構造やデータベースも選ぶ時代になってきました。それぞれの強み、弱みを知り、適材適所に使用することが、より良いシステムを作るコツになっていきそうです。データ総研1985年創立。データ設計と標準化を専門とするITコンサルティングファーム。データ中心アプローチ(DOA)における先駆的企業であり、独自開発の設計技法と開発方法論をベースとしたコンサルティング事業を展開。業務要件定義、データ視点による業務プロセスの改善、データカタログに代表されるビジネス資源の整備に関するコンサルティングサービス、および、企業のデータマネジメント実践を目的とした教育サービスを提供。