MySQL ドキュメントストア

MySQLドキュメントストアを使用すると、開発者はSQLリレーショナルテーブルとスキーマレスなJSONドキュメントをMySQLデータベースだけで扱えます。これを実現するためにMySQLは、自然な方法でJSONドキュメントを扱えるAPIを提供することにより、CRUDに重点を置くX Dev APIを作成しました。Xプロトコルは拡張性が高く、SQL操作だけでなくCRUDにも最適化されています。

柔軟性

MySQLドキュメントストアは、従来のSQLリレーショナルアプリケーションとスキーマフリーなNoSQLドキュメントデータベースによるアプリケーションを開発する最大の柔軟性を提供します。これにより、別々のNoSQLドキュメントデータベースが不要になります。開発者はリレーショナルデータとJSONドキュメントを、同じデータベース、同じアプリケーションで混在させることができます。例えば、両方のデータモデルを同じアプリケーションで参照し、結果を表形式もしくはJSON形式で取得できます。

MySQL ドキュメントストア

MySQLドキュメントストアのアーキテクチャー

高信頼性、完全な一貫性

MySQLドキュメントストアは、スキーマレスなJSONドキュメントに対して完全にACID準拠したトランザクション処理を提供します。ドキュメントストアの背後にストレージエンジンとしてInnoDBを使用することで、リレーショナルデータの場合と同じデータ保証とパフォーマンス上の利点が得られます。これにより、ユーザーはデータの一貫性を保ちながらデータの信頼性を保証できます。これにより、MySQLドキュメントストアも簡単に管理できます。

高可用性

MySQLドキュメントストアは、MySQLグループ・レプリケーションとInnoDB Clusterのすべての利点を利用して、アプリケーションを拡張し、高可用性を実現できます。ドキュメントは高可用性グループのすべてのメンバーにレプリケートされ、トランザクションはマスター間で同期してコミットされます。障害発生時には、いずれかのマスターがダウンタイムなしに別のマスターから引き継ぐことができます。

オンライン・ホット・バックアップ

ドキュメントストアはグループ・レプリケーションとInnoDB Clusterを活用できるのと同様に、MySQL Enterprise Backupとも透過的に動作します。ユーザーは、ドキュメントの完全バックアップ、増分バックアップ、および部分バックアップを取得できます。すべてのドキュメントデータは、バックアップが完了した時点と一致しています。ユーザーはMySQLのバイナリログを使用してポイント・イン・タイムリカバリを実行し、特定のトランザクションを復旧できる柔軟性も備えています。

セキュリティ

MySQLとドキュメントストアはセキュアです。更に、透過的データ暗号化(TDE)、監査、高度な認証、ファイアウォールなどのMySQL Enterprise Editionの高度なセキュリティ機能が、セキュリティを最大限に高めます。

レポートと分析

MySQLドキュメントストアは、CRUD操作を簡単に実行できるだけでなく、SQLの機能を利用してJSONドキュメントストアからデータを抽出することもできます。SQLの機能と一般的なレポート作成ツールや分析ツールが利用可能です。

使いやすさ

MySQLドキュメントストアは、多くの開発言語でサポートされているシンプルで使いやすいCRUD APIを提供しているため、好みの開発言語を使用してドキュメントベースのアプリケーションを開発できます。

アーキテクチャー

MySQLドキュメントストアは次のコンポーネントで構成されています。

  • ネイティブJSONドキュメントストレージ: MySQLはネイティブなJSONデータ型提供し、JSONドキュメントを効率的にバイナリ形式で格納し、そのドキュメントに対して仮想列を使用してインデックスも作成できます。また、JSONドキュメントは格納時に自動的に検証されます。
  • Xプラグイン: Xプラグインは、MySQLでXプロトコルを使用可能にし、コネクタとMySQLシェルを使用してMySQLサーバーのクライアントとして動作します。
  • Xプロトコル: Xプロトコルは、Protobufライブラリをベースにした新しいクライアントプロトコルで、CRUDとSQLの両方の操作に対応しています。
  • X DevAPI: X DevAPIは、Xプロトコルの上に構成された、新しく先進的で非同期処理も可能な、CRUDおよびSQL操作のための開発者APIです。新しいスキーマオブジェクトとしてコレクションを導入しています。ドキュメントはコレクションに格納され、専用のCRUD操作が使用できます。
  • MySQL Shell: MySQLシェルは、MySQLサーバーの開発と管理をサポートするインタラクティブなJavascript、Python、またはSQLインターフェイスです。MySQLシェルを使用して、データの参照と更新、およびさまざまな管理操作を実行できます。
  • MySQLコネクタ: 次のMySQLコネクタはXプロトコルをサポートしており、好みの開発言語でX DevAPIを使用できます。
    • MySQL Connector/Node.js
    • MySQL Connector/PHP
    • MySQL Connector/Python
    • MySQL Connector/J
    • MySQL Connector/NET
    • MySQL Connector/C++

その他のリソース