マルチモデルデータベース「ArangoDB」に要注目:ArangoSearchとGeoJSONサポート
数あるNoSQLデータベースの中で特異な位置を占めるのが、複数のデータモデルをサポートする「ArangoDB」だ。
ArangoDBはネイティブマルチモデルデータベースだ。「ArangoDB Community Edition」はC++でコーディングされており、オープンソースライセンス(Apache License 2.0)で利用できる。本稿では、開発者向けトランザクションデータベースとしてのコアバージョン3.4に注目する。このリリースは開発者にとってどのようなものなのか。
このソフトウェアエンジニアリングの役割は、1つのテクノロジーと1つのクエリ言語を使って「複数のデータモデル」を操作する手段を提供することだ。
「ArangoDB 3.4」で強化されたのが「ArangoSearch」だ。ArangoDB独自のクエリ言語「AQL」を使って、この機能をトラバーサルや結合(join)と組み合わせると、ArangoDBが「データ」の取得ツールから「情報」の取得ツールへと変わる。
では、マルチモデルデータベースとは一体何だろう。
TechTargetは以下のように説明している。
「マルチモデルデータベースはスコープを広げたデータ処理プラットフォームで、データベース内の情報を編成して並べ替える方法についてのパラメーターを定義できる。複数のモデルを1つのデータベースに組み込めるため、複数のデータベースシステムを導入する必要なく、アプリケーションのさまざまな要件を満たせる」(訳注)
訳注:ArangoDBに限定すると、3つのデータモデル(ドキュメント、キーバリュー、グラフ)をサポートするNoSQLデータベースであるという意味。「MongoDB」ならドキュメント、「Neo4j」ならグラフのように、NoSQLデータベースは一般的に単一のデータモデルに特化している。
関連記事
- 単なるRAMディスクではない、インメモリデータベース基礎の基礎
- OracleのCEOが予言「数十万人のOracleデータベース管理者は失業する」
- それでもS/4HANAに移行しないSAPユーザーの本音
- ITプロジェクト失敗の原因は「リレーショナルデータベース」
- データベースの自動化はデータベース管理者を滅ぼすのか
ArangoSearchは、ブール型の検索モデルと汎用(はんよう)ランキング検索モデル(ベクトル空間モデルなど)を組み合わせる。ArangoSearchは、検索エンジンと統合レイヤーの2つのコンポーネントで構成されている。検索エンジンはインデックスの管理、クエリ、スコアリングを担当する。統合レイヤーはエンドユーザーに使いやすい検索機能を提供する。
開発元によると、ArangoSearchはArangoDBの3つのデータモデル全てと組み合わせることができるという。グラフデータベース機能と連携して使用すると、検索結果を利用して、例えば詐欺防止の強化、個人に合わせたレコメンデーション、精密医療の簡素化などが可能になる。
このソフトウェアのリリースノートには次のように記載されている。「特殊な実体化ビューを使用して、複数のコレクションに対する全文検索を一度に実行できる。ビュー定義内では、コレクション全体または個別のフィールドを指定できる。こうした指定は、一般的なテキストアナライザーを一つまたは複数使って転置インデックスで対応する必要がある。AQLで表現する検索クエリは、複数のスコアラー(TFIDFやBM25)を組み合わせて結果をランク付けできる」
ユーザーは、関連性に基づくマッチング、フレーズとプレフィックスによるマッチング、複雑なブール式による検索、クエリ時間関連のチューニングを実行し、複雑なトラバーサル、ジオクエリなどのアクセスパターンを情報検索技法と組み合わせることができる。
ArangoDB 3.4は、「GeoJSON」と非空間属性をフルサポートする。GeoJSONとは、シンプルな地理機能を表すために設計されたオープンスタンダードフォーマットだ。このサポートには、マルチポリゴンやマルチラインストリングなど、全てのジオプリミティブが含まれている。
Copyright © ITmedia, Inc. All Rights Reserved.