2018年11月7日水曜日

「NoSQLにACIDトランザクションは無理」という“常識”をMongoDBが変える

 ドキュメント指向データベース管理システム(DBMS)を手掛けるMongoDBは、注目すべき複数の機能をリリースしている。これらの機能は、同社の同名DBMSを、企業向けアプリケーションとして実用的な選択肢にするよう設計されている。その中心となるのが、「MongoDB 4.0」での「ACIDトランザクション」関連の強化だ。ACIDトランザクションは、後述するACID特性を満たすトランザクション(DBMSの一連の処理)のことであり、リレーショナルDBMS(RDBMS)の大きな特徴として知られる。

 米国ニューヨークで開催したユーザーカンファレンス「MongoDB World」でMongoDBは、MongoDB 4.0に加えて、サーバレスのイベント駆動型コード実行サービス「MongoDB Stitch」も発表した。MongoDB Stitchは、アプリケーション開発の効率向上に役立つ。もともとMongoDB Stitchは、MongoDBのマネージドサービス「MongoDB Atlas」で利用するために提供された。

 MongoDBは、モバイルデバイス向けの「MongoDB Mobile」のβ版を利用できるようにした。加えてMongoDB Atlasのユーザー企業が、世界のさまざまな地域にデータを分散できるようにもした。パフォーマンス向上と法規制順守が目的だ。

 世界で最も広く使用されているNoSQL(RDBMSではないDBMS)として、MongoDBは認識されている。「Oracle Database」「SQL Server」のようなRDBMSの巨頭と比べると、存在感はまだかなり低い。MongoDBは2017年10月に株式を公開した。2018年1月に終えた事業年度の収益は1億5450万ドルだという。DBMS市場全体からすると小さな割合だ。

「マルチドキュメントACIDトランザクション」でNoSQLがRDBMS代替の有力候補に
 MongoDB 4.0は、データ交換フォーマット「JSON」で記載された複数のドキュメント(ドキュメント指向DBMSでのデータベースの構成単位)間でのACIDトランザクションを実現できる。これにより、RDBMSの有力な代替手段になる可能性が生まれたと、ステファン・オグラディ氏は述べる。同氏は技術調査/コンサルティング会社のRedMonkで、アナリストを務める。

 ACID特性、つまり原子性(Atomicity)、一貫性(Consistency)、独立性(Isolation)、耐久性(Durability)は、DBMSのトランザクションが正確かつ確実に処理されることを保証する。これまでのMongoDBでは、個別のドキュメントレベルでしかこのような保証を実現していなかった。

 MongoDBは、2018年2月にβ版の提供が始まったMongoDB 4.0から、複数のドキュメントに対するACIDトランザクション(マルチドキュメントACIDトランザクション)を可能にした。オグラディ氏によると、実行すべきトランザクションを多く抱える企業にとって、これは欠くことのできない要件だという。

 ERP(統合業務)システムに利用しているバックエンドのRDBMSを、MongoDBに置き換えようとする企業は多くないと、オグラディ氏は説明する。ただし一部の企業にとっては、MongoDBはより実用的な選択肢になっていると補足する。例えばNoSQLが提供するデータの柔軟性向上とコスト削減を、他の種類のトランザクション処理システムで生かそうとしている企業だ。

Oracle DatabaseからMongoDBへ移行
 以下はデータ管理・分析事業を手掛けるAcxiomのケースだ。同社はオンラインマーケティングの取り組みを支援するために、顧客データを収集して分析している。

 既にAcxiomは、Oracle製品ベースだった2つのシステムをMongoDBに変えた。具体的にはデータに関する属性情報(メタデータ)を保持する「メタデータリポジトリ」を2015年に、業務システムのデータを保持する「オペレーショナルデータストア」(ODS)を2018年1月に切り替えた。

 Acxiomは、今後さらに多くのデータ処理業務をMongoDBに移す考えだと、クリス・ラノークス氏は説明する。ラノークス氏はAcxiomで、製品/エンジニアリンググループの統括責任者を務める。同氏によるとOracleなどのRDBMSは、運用コストがMongoDBと比べて大幅に高く、MongoDBほどクラウドとの親和性が高くないという。

 ラノークス氏のチームでエンジニアリングのシニアディレクターを務めるジョン・リワート氏によると、Amazon Web Services(AWS)などのクラウドベンダーは、それぞれの特色を加えたRDBMSサービスを提供している。MongoDBを使用する場合、「利用するクラウドサービスの決定は、ただスイッチを切り替えるようなものだ」と同氏は言う。

 ACIDトランザクションの強化は、MongoDBにとって大きな前進だとリワート氏は述べる。現在Acxiomは、メタデータリポジトリとODSの両方に含まれる複数のドキュメントに、トランザクションを書き込んでいる。本稿執筆時点では、全てのデータが適切に更新されるよう次善策を取っている。ただし、これは最適なプロセスではないと同氏は言う。

 AcxiomはMongoDB Stitchを早くから導入していた。MongoDB Stitchのβ版がリリースされたのは、2017年のことだった。MongoDB Stitchは、バックエンドでMongoDBに接続するAPI(アプリケーションプログラミングインタフェース)を開発者に提供する。さらにJavaScript機能の作成や、他のクラウドサービスと連携するための組み込み機能もある。この組み込み機能を通じて、データが更新されたときに自動的にリアルタイム操作を呼び出すためのトリガーを設定することも可能だ。

 「製品/エンジニアリンググループの2人の開発者がMongoDB Stitchを使用して、MongoDB AtlasにODSを導入できた。しかも当社のIT部門によるシステムのセットアップを待つ必要もなかった」。Acxiomでプリンシパルアーキテクトを務めるスコット・ジョーンズ氏は、こう語る。実際、構築しようとしているビジネスロジック以外については「ほとんど何もしていない」とジョーンズ氏は説明する。

MongoDBにはまだ多くのことが必要
 ラノークス氏によると、Acxiomが他のアプリケーションをMongoDBへ移行するには、MongoDBに幾つかの機能追加が必要だという。例えばMongoDBとSQLベースのビジネスインテリジェンス(BI)/分析ツールを接続するコネクターが改善されれば、一部のデータ分析ジョブを移行させる道が開ける。

 調査会社Ovumでアナリストを務めるトニー・ベーア氏によると、MongoDBは主なドキュメント指向DBMSのライバルとの競争にも、気を抜くべきではないという。ここでの競合は、例えばDataStaxの「DataStax Enterprise」(オープンソースのNoSQL「Apache Cassandra」の商用版)やAWSの「Amazon DynamoDB」、Microsoftの「Azure Cosmos DB」などだ。

 「特にクラウドでは、Amazon DynamoDBとAzure Cosmos DBがライバルになる」とベーア氏は述べる。AWSとMicrosoftは、各サービスを自社のクラウドサービス群のデフォルトNoSQLサービスとして宣伝していると、同氏は指摘する。MongoDB Stitchは、それらの有力な対抗馬になる可能性がある。開発者にとって使いやすいDBMSとしてのMongoDBの根幹が、MongoDB Stitchによって守られるためだ。

 MongoDB StitchとACIDトランザクション機能を完全にするために、MongoDBがやるべき開発作業はまだある。「次期バージョンの『MongoDB 4.2』をリリースするまで、シャードクラスタ(データを分割して保存するデータベースサーバ群)では、マルチドキュメントACIDトランザクションを利用できるようにはならない」。そう話すのは、同社で戦略および製品マーケティング部門の統括責任者を務める、ソン・パク氏だ。

 パク氏によると、MongoDBはMongoDB Atlas以外にまでMongoDB Stitchを拡張することを計画している。そのためにMongoDBのオンプレミス版とクラウド版の両方で「Bring Your Own Database」(独自データベースの利用)を可能にして、ユーザー企業が各自のシステムでMongoDB Stitchを実行できるようにする。これらが実現しそうな時期について同氏は明かさず、「かなり近いうちに」と言うに留めている。

 MongoDBはMongoDB Mobileを、まずはプライベートβ版としてリリースした。パク氏によると、一般提供時期はまだ決まっていない。

0 件のコメント:

コメントを投稿