投稿者

インターシステムズジャパン
記事 Toshihiko Minamoto · 4月 16 16m read

InterSystems IRIS データプラットフォーム:アーキテクチャ

InterSystems IRISデータプラットフォームは、InterSystemsの全アプリケーションに加え、ヘルスケア、ファイナンシャルサービスおよびサプライチェーンをはじめとする様々なエコシステムにおいて、数千もの顧客およびパートナーアプリケーションの基盤となっております。これは収束プラットフォームであり、トランザクション・アナリティクスデータ管理、統合された相互運用性、データ統合に加え、統合された分析およびAIを提供します。多様な分散データを管理するInterSystemsスマートデータファブリックアプローチをサポートしております。

 

当社のアーキテクチャの中核には、コアデータエンジン(別名一般なデータプレーン)における高性能・マルチモデル・多言語データ処理機能がございます。これを基盤として、膨大なデータ量と毎秒10億を超えるデータベース操作に及ぶ高いトランザクションレートに対応する、卓越したスケーリング機能を備えております。

次に、二つの主要なサブシステムが挙げられます。一つは分析と人工知能(AI)に焦点を当てたもので、もう一つは相互運用性とデータ統合に焦点を当てたものです。これらのサブシステムは、データに近接して全てを実行し、最小のフットプリントで高いパフォーマンスを提供する、という当社の基本理念に沿った設計となっております。

そして最後に、サブシステム群の周りに、顧客が単一のスタックで複雑な問題を解決できるスマートデータファブリックを構築しました。以下では、これらのレイヤーと、それらが相互に作用する仕組みについて詳しく説明し、InterSystems IRISテクノロジーがなぜこれほど特別なのか、より深くご理解いただけるようにします。

その性能で知られるInterSystemsテクノロジーの中核は、データストア、索引付け、アクセスを実現する極めて効率的な仕組みです。他のデータベースプロバイダーとは異なり、ネイティブのリレーショナルデータベースやドキュメントデータベースを提供しておりません。当社ではグローバルと呼ばれる基盤となるストレージ形式を基盤としております。これらは高度に最適化された多次元アレイ形式でモデル化されており、B+ツリー構造として構築されています。あらゆる操作時に自動的にインデックスが付けられます。InterSystems.comリレーショナル型、オブジェクト型、ドキュメント型などのデータモデルの下位レイヤーに構築された単一のストレージ形式が、様々なデータ形式やモデルへ投影されます。これは統一データプレーンと呼ばれています。

基盤となるグローバル形式は非常に高効率であり、様々なデータモデルへ翻訳可能です:

グローバル(上付きキャレットの「^」プレフィックスで示される)は、複数のサブスクリプトを持つことが可能です。各サブスクリプトは数値、英数字、またはシンボリック変数で構成されます。グローバルは強力な機能を持ち、単一のデータコピーで同時に複数データパラダイムをサポートする一般的な方法においてデータを表現します。連想配列やスパース配列のようなケースは、このアプローチで処理しやすいです。また、ストレージ形式自体にエンコーディング(ドル記号「$」プレフィックスで示される)を用いてエンコードします。これにより、ディスクとI/Oの最適化により、小さなフットプリントと低いレイテンシを実現しています。これらのエンコーディングの形式は、メモリ上、ディスク上、あるいはワイヤ上でも同一です。これにより、データ取り込みに伴う変換を最小限に抑え、インメモリデータベースに期待される驚異的な速度を実現しつつ、ディスクベースのデータベースに典型的な永続性を維持します。

単一グローバルが複数データモデルをサポートする一例として、SQLやBIツールを使用し、行と列で構成されるテーブル形式のリレーショナルデータにアクセスしたい場合が挙げられます。ただし、オブジェクト指向開発をされている場合、それらオブジェクトを自動的にグローバルにプロジェクションし、その後そのデータをリレーショナル形式にプロジェクションします。同様に、JSONやその他のドキュメント形式もリレーショナル形式にプロジェクションすることができます。

この機能により、複数のデータストア(リレーショナル型、オブジェクト型、ドキュメント型など)を個別に保持し、それらを結合する必要がなく、重複や移動、マッピングなしに、単一のコピーをこれら様々な形式に投影することができるようになります。これにより、スキーマオンライト(schema-on-write)とスキーマオンリード(schema-on-read)の便利な組み合わせも実現されます。データレイクハウスと同様に、データを挿入し、そのデータが現在どのように利用されているかに基づいて最適なスキーマを決定した後、データリンクのような一定のレベルの構造に依存することができます。このグローバル構造は、構造化データだけでなく、ドキュメントや半構造化データ、あるいは非構造化データに対しても効果的に機能します。

いくつかのエンコーディングは、非常に厳密に設計されており、データとインデックスを効率的に保存するために使用されます。

リストはデフォルトのストレージエンコーディングですが、InterSystems IRISはデータの特性や/または開発者の仕様に基づき、データおよびインデックスをこれらのエンコーディングのいずれか一つ以上で表現する場合があります。ベクトルは、同一データ型の大量のデータを効率的にストアし、分析における列指向ストレージ、ベクトル検索、時系列データ、およびより特殊なケースに利用されます。パックされた値の配列($pvaとして知られておる)は、ドキュメント指向のストレージに最適です。ブールデータおよび高効率な ビットマップインデックスには、ビットマップが使用されております。

これらのデータ構造はすべて、各操作時に高度に最適化された更新処理により自動的にインデックス化されます。多くの成功したユーザーは、内蔵の索引機能を活用して、低遅延かつ完全なトランザクション処理を実現しております。例えば、以前ご紹介した「毎秒10億を超えるデータベース操作」といった処理もその一例です。このようなほぼ瞬時に行われる一貫した索引付けにより、あらゆるデータ形式に対して低遅延アクセスが可能となります。基盤となるグローバル形式によって実現された6つのマルチモデル機能は、変更すべきデータが1つのコピーのみであるため、データ複製に必要な時間やスペースが不要となり、事実上瞬時に動作します。これにより、取り込み速度、信頼性、およびスケールアウトにおいても大きな利点が得られます。

このシステムはエンコーディングを組み合わせることが可能です。 グローバルが提供する多言語対応機能により、必要なすべての形式に簡単にアクセスしながら、お好みのプログラミング言語で作業することが可能です。JDBCやODBCといった標準を介したリレーショナルアクセスにおいて明らかに当てはまるこの特性は、.NETやJavaにおけるオブジェクトと基盤となる形式との自動整合にしても同様です。開発の観点から申し上げますと、オブジェクトリレーショナルマッピングについてご心配する必要はありません。オブジェクトを操作するだけで、ストレージ形式については当方で対応しております。

コアデータエンジン の周囲には、分散キャッシュがレイヤリングされており、組み込みの一貫性保証が備わっております。このキャッシュは、Enterprise Cache Protocol(以下、ECP)を採用しており、分散データ環境および障害発生時における一貫性について、標準的な保証を満たしております。 ECPは、障害が発生した場合でも分散システム全体でデータ整合性を維持するため、これらの一貫性に関するルールを直接カプセル化して組み込んでおります。

言い換えれば、分散データのパフォーマンスは、大規模であっても高い水準を維持します。これらのECPノードを水平スケーリングのために拡張することで、より高いスループットを管理することができるようになります。また、これらのノードをデータ分散のために拡張することも可能です。これにより、どのノードのメモリに依存することなく、インメモリパフォーマンスを実現することができるようになります。 

ECPはスケールアウト特性により、クラウド環境において特に優れた効果を発揮します。 当社では、自動スケーリングを実現するため、この機能をInterSystems Kubernetes Operator (以下IKO)に組み込みました。これにより、アプリケーションに対してECPを使用したノードの追加・削除を透過的に行うことができます。このようなスケールアウトは基本的に線形であり、取り込み処理、データ処理、データストレージをそれぞれ独立してスケールアウトさせることが可能です。これにより、ワークロードに合わせて最適化が実現します。ECPはトポロジーの変化に対して回復性が強いので、ノードがダウンしてしまってもトランザクション処理に影響を与えることはありません。ノードはリアルタイムで追加することができ、そのノードがワークロードを引き受けます。これによりシームレスな弾力性が実現され、動的にスケール変更しながらコストを削減することができるようになります。ECPはアプリケーションに対して透過的であり、アプリケーションをスケールアウトするために何も変更する必要はありません。さらに、ユーザーは特定のワークロードをInterSystems IRISクラスタ内の特定のノーツセットに割り当てる柔軟性も持っています。例えば、レポートや分析のワークロードをあるポッドに割り当て、トランザクション負荷の高いワークロードを別のポッドに割り当てるなどです。

InterSystems IRISアーキテクチャの次の層は、組み込みの相互運用性サブシステムです。これは、メッセージ、デバイス、および異なるAPI間でデータを統合します。また、ETLまたはELT(抽出/変換/ロードまたは抽出/ロード/変換)のいずれかのパターンで、バルクデータを統合します。InterSystems IRIS Interoperabilityは、メッセージ処理およびデータ統合の全要素に対する組み込みリポジトリとして、共通データプレーンを利用します。これは、最初の2つの層の性能と信頼性、ならびにマルチモデル機能の恩恵を受けております。  例えば、バルク構造データはリレーショナル指向である傾向があり、多くのメッセージングプロトコルはドキュメント指向である傾向があります。

デフォルトでは、相互運用性は永続的です。つまり、データメッセージと変換は、監査、再生、および分析のためにシステム内に保存されます。他の多くの相互運用性ミドルウェア製品とは異なり、配信の保証、追跡、監査を包括的に行うことが可能です。メッセージが確実に配信されたことを確認したり、誰から何が送信されたかを確認したりできます。これは分析とフォレンジックの両方にとって重要な情報です。InterSystems IRIS Interoperability の一般パラダイムは、オブジェクト指向です。 これによりアダプターの作成と保守が容易になります:オブジェクト継承により、必要なカスタムアダプターの構築(テストを含む)にかかる労力を最小限に抑えることができます。  また、データ変換の作成と維持にも役立ちます。 図8に示すように、共通オブジェクトを使用することで、異なるデータ形式やプロトコル間で必要な変換の数を大幅に削減することが可能です。各ペアごとにデータ変換を構築し維持する代わり、各データ形式から共通オブジェクトへの単一の変換を提供することで、テストや維持が容易な、よりシンプルなアプローチを実現します。

InterSystems IRIS Interoperabilityサブシステム内では、メッセージ、デバイス、APIを横断した多様な統合シナリオが存在します。

このサブシステムの相互運用性には、組み込みのAPIライフサイクル管理、ストリーミング機能、IoTの統合、クラウドサービスとの互換性などが含まれます。また、複数言語に対応した動的ゲートウェイも提供しており、既存アプリケーションを、お好みの言語でこれらのデータフローに高性能に統合することが可能です。

InterSystems IRISの相互運用性は、組み込みの分析およびAI機能のセットと連携します。

これらの能力のそれぞれは「データに近い」場所で行われます。つまり、一般的に、処理をデータに近づけることで、多大なコストと遅延を伴うデータ処理の移行を回避しているのです。

InterSystems IRISには、多数の分析機能が組み込まれております。その一つがInterSystems IRIS BIです。これはビジネスインテリジェンス(BI)向けのMOLAP型キューブベースのアーキテクチャであり、遅延に最適化されています。このサブシステムセットはInterSystems IRISに組み込まれているので、データからダッシュボードまでわずか10~20ミリ秒で、SQLおよびキューブ内のイベントをトリガーすることが可能です。トランザクションと分析の間にデータを単一で保持することで、この遅延を低く抑えることができます。ECPでは、トランザクション処理ワークロードから分離された環境で分析処理を実行できることから、分析処理がトランザクションの応答性に影響を与えるリスクは生じません。また、データの複製は常に1コピーのみで十分です。

もう一つの機能はAdaptive Analytics(効果的な分析)であり、InterSystems IRIS BIとは異なり、あらかじめ組込まれたキューブを使用しません。動的にビジュアルキューブを最適化・構築し、BIおよびアダプティブアナリティクスの両方で利用可能にします。これはROLAP型のヘッドレス分析機能であり、Tableau、PowerBI、Qlik、Excelなど主要なBIツールとのシームレスな連携を実現します。

分析機能に加え、いくつかのMLおよびAI機能も存在します。

組み込みMLにより、SQLを使用して自動的に機械学習(ML)スタイルのモデルを作成することができるようになります。SQLコマンドを記述するだけで、モデルを作成、学習、検証、予測を行うことできます。結果はSQLで直接利用することができます。これにより、SQLに精通した開発者は、アプリケーション内でML予測を活用することできます。

Python はデータプラットフォームのカーネル内に組み込まれているので、データに対して最大限のパフォーマンスを発揮しながら直接実行されます。モデルを構築する開発環境やラボ環境から、そのモデルを実行する生産環境へ移植する必要はありません。同一クラスター内で構築と実行が可能であることから、構築した内容と実行内容が同一フォーマットの同一データを使用し、一貫性を保つことが保証されます。データサイエンスプロジェクトは簡潔 かつ迅速に進行します。

InterSystems IRISに組み込まれたベクトル検索機能を使用すると、非構造化データおよび半構造化データの検索が可能となります。データはベクトル(または組み込み表現)に変換され、InterSystems IRISに保存・インデックス化されます。これにより、セマンティック検索、検索強化生成(RAG)、テキスト分析、レコメンデーションエンジン、その他のユースケースが可能となります。

これらの層(中核となるデータエンジン、相互運用性をスケールアウトするためのECP層、そして分析機能)は、当社独自のSmart Data Fabricアーキテクチャを実現する基盤の一部です。データファブリックとは、多様なデータおよびデータソースに対して共通のガバナンスを提供するアーキテクチャパターンです。データファブリックの一般的なパターンとしては、複数のソースからデータを取り込み、データの正規化、デデュプリケーション、相互相関分析、および改善を行い、その後、様々な異なるアプリケーションで利用可能にすることが挙げられます:

ほとんどのデータファブリックには、データ取り込み、パイプライン処理、メタデータ管理など、複数の機能が備わっています。インターシステムズのアプローチが優れている点は、データファブリック内に分析機能とAIを統合していることです。

インターシステムズ技術の重要な信条の一つは「接続または収集」です。インターシステムズIRIS内の機能の一部、例えば外部テーブルやフェデレーテッドテーブルなどでは、データが存在する場所で直接操作したり「接続」したりすることが可能です。あるいは、そのデータを収集することを選択することもできます。 

インターシステムズIRISはクラウドプロバイダーに依存せず、オンプレミス環境、お客様が選択されたクラウド環境、異種混合環境やハイブリッド環境、あるいはマルチクラウド環境においても動作いたします。当社事業の中で最も急速に成長している分野は、複数のクラウド環境でご利用いただけるクラウドサービスでございます。どこにでも自由にデプロイできる柔軟性が重要です。これが、例えばクラウドベンダー自身が提供するサービスや、現行のデータウェアハウスソリューションの多くと、InterSystems IRISを区別する点です。InterSystems IRISおよびそれに基づいて構築されたアプリケーションは、ご希望の環境で実行いただけます。もちろん、InterSystems IRIS自体もクラウド管理サービスとしてご利用いただけます。

このトピックに関するその他の記事:

Source: InterSystems IRIS データプラットフォーム:アーキテクチャガイド