NoSql は Not Only SQL の略で、非リレーショナル データベースを指します。次世代データベースは主に、非リレーショナル、分散、オープンソース、水平スケーラブルといういくつかの重要な点に対処します。非リレーショナル データベースは、その独自の特性により非常に急速に発展しました。 NoSQL データベースは、大規模なデータ収集の複数のデータ タイプによってもたらされる課題、特にビッグ データ アプリケーションの問題を解決するために作成されました。また、簡単なレプリケーション、シンプルな API、最終整合性 (非 ACID)、および大規模なデータもサポートします。これは、ほとんどの Key-Value とともに、もちろん他のドキュメント タイプ、列ストア、グラフ データベース、XML データベースなどとともに保存されます。。ここでは、オープン ソースまたは無料カテゴリで利用可能な上位の NoSQL データベース プログラムをいくつか紹介します。
注記: この記事はオンラインで入手可能な NoSQL データベース プログラムのみをリストしたものであり、レビューしていないため、どれがどれであるかは言えません。NoSQL データベースはどのようなシナリオに最適ですか。
Oracle NoSQLデータベース
Oracle NoSQL Databaseは、オープンソースの非SQL分散型キー/値データベースです。オラクル社によって開発されました。つまり、Oracle Berkeley DB Java Edition の高可用性ストレージ エンジンを使用する OND として知られています。この Oracle の NoSQL Database プログラムは、シングルマスター、マルチレプリカのデータベース レプリケーションを提供する、クライアント サーバー型のシャード ノート システムです。これを使用すると、大容量に適した遅延の影響を受けやすいアプリケーションやサービスを提供できます。水平方向のスケーラビリティ、シャーディング、レプリケーションが特徴です。高可用性と耐障害性。透過的なロード バランシング、エラスティック構成、マルチゾーン展開、JSON データ形式、オンライン ローリング アップグレード、ACID 準拠のトランザクションなど。 2 つのエディションがあり、1 つは Apache ライセンス バージョン 2.0 に基づく Oracle NoSQL Database Server Community Edition、もう 1 つは Oracle 商用ライセンスに基づく Enterprise Edition です。
Oracle NoSQL Database (ODM) をダウンロードして詳細を確認するには、次の Web サイトにアクセスしてください。公式ウェブサイト。
モンゴDB
MongoDB は、分散ファイル ストレージに基づいたデータベースです。 C++ 記述言語による。 Web アプリケーションにスケーラブルで高性能なデータ ストレージ ソリューションを提供するように設計されています。
MongoDB は、リレーショナル データベースと非リレーショナル データベースの中間の製品です。これは、非リレーショナル データベースの中で最も多用途で、最もリレーショナルなデータベースです。非常に柔軟な方法でデータの入力をサポートしており、スキームは JSON 形式に非常に似ているため、より複雑なデータ型を格納できます。 Mongo の最大の特徴は、非常に強力なクエリ言語をサポートしていることです。その構文はオブジェクト指向のクエリ言語に似ています。リレーショナル データベースの単一テーブル クエリのほぼすべての機能を実行でき、データのインデックス作成もサポートします。 MongoDB には、コミュニティ (無料)、エンタープライズ (サブスクリプション ベース)、およびオンデマンドの完全マネージド サービスとして利用できる Atlas の 3 つのバージョンがあります。そのコア機能は、アドホック クエリ、インデックス作成、レプリケーション、負荷分散、ファイル ストレージ、集約、サーバーサイド JavaScript 実行、上限付きコレクションおよびトランザクションです。
ここにリンクがありますコミュニティバージョンをダウンロードWindows、Linux、または MacOS 用。
アパッチ カサンドラ
Cassandra は、Google の BigTable に似たハイブリッドの NoSQL データベース プログラムです。 Cassandra の主な特徴は、これがデータベースではなく、多数のデータベース ノードで構成される分散ネットワーク サービスであることです。 Cassandra への書き込み操作は他のノードにコピーされ、Cassandra の読み取り操作も読み取り対象のノードにルートされます。 Cassandra クラスターの場合、パフォーマンスのスケーリングは比較的簡単で、クラスターにノードを追加するだけです。
Cassandra の主な機能は Dynamo (分散型 Key-Value ストレージ システム) よりも豊富ですが、サポートはドキュメント ストレージ MongoDB (リレーショナル データベースと非リレーショナル データベースの間のオープン ソース製品であり、非リレーショナル データベースの中で最も汎用性が高い) ほど優れていません。
Cassandra は元々 Facebook によって開発され、後にオープンソース プロジェクトになりました。ソーシャル ネットワーキング クラウド コンピューティングに最適なデータベースです。特徴は、データがクラスター全体に分散されるため、単一障害点が存在しないことです。レプリケーションとマルチデータセンターレプリケーションをサポートします。水平スケーラビリティ、フォールトトレラント、調整可能な一貫性、MapReduce サポート、Cassandra Query Language (CQL)。 Java Management Extensions (JMX) などによる管理と監視…
ダウンロード Apache Cassandraはこちらから
レディス
Redis は、最も人気のある NoSQL データベース プログラムの 1 つである Remote Dictionary Server を表す頭字語です。これは、Posix システム用に ANSI-C で書かれたネット インターフェイスが組み込まれたメモリ内のキーと値のデータベースです。 Redis の高性能はメモリ操作に基づいているため、メモリ データベースであるという意見もあります。 Redis は List、Set、HyperLogLogs、ビットマップ、ストリーム、空間インデックスなどの複雑なデータ機能をサポートしているため、Redis をデータ構造サーバーだと考える人もいます。ただし、Redis の役割はその使用方法によって決まります。 Redis はオープンソースの NoSQL データベースであり、無料で使用できます。
Apache CouchDB
CouchDB は、RESTful JavaScript Object Notation (JSON) API を通じてアクセスできるオープンソースのドキュメント指向 NoSQL データベース プログラムです。 「Couch」という用語は、「Cluster Of Unreliable Commodity Hardware」の頭字語で、障害が発生しやすいハードウェアであっても、拡張性が高く、高可用性と信頼性を提供するという CouchDB の目標を反映しています。 CouchDB はもともと C++ で書かれていましたが、2008 年 4 月にプロジェクトは Erlang OTP (プログラミング言語 - wiki) 同時実行性、分散性、フォールト トレランスを実現します。
そのデータ保存方法は Lucene のインデックス ファイル形式に似ています。 CouchDB の最大の意義は、Web アプリケーション用の新世代ストレージ システムであることです。 CouchDB は、マルチバージョン同時実行制御 (MVCC) の形式を実装しているため、書き込み中にデータベース ファイルをロックしません。競合の解決はアプリケーションに委ねられます。 CouchDB は、強力な B ツリー ストレージ エンジン上に構築されています。 CouchDB 内のデータを並べ替える役割を果たし、ログ共有時間内に検索、挿入、削除の操作を実行するメカニズムを提供します。 CouchDB は、すべての内部データ、ドキュメント、ビューにこのエンジンを使用します。
CouchDB の Map/Reduce 機能はキーと値のペアを生成し、CouchDB はそれらを B ツリー エンジンに挿入し、キーに従って並べ替えます。これにより、キーによる効率的な検索が可能になり、B ツリーでの操作のパフォーマンスが向上します。さらに、これは、各ノードを個別にクエリすることなく、データを複数のノードに分割できることを意味します。
Couchbase NoSQL データベース プログラム
Couchbase Server (旧名 Membase) は、CouchDB のシンプルさと信頼性、Memcached の高いパフォーマンスと Membase のスケーラビリティを組み合わせたドキュメント指向の NoSQL データベース管理システムです。これは、シェアードナッシングまたは分散アーキテクチャを使用するオープンソースの NoSQL データベース プログラムでもあります。インタラクティブなアプリケーション向けに高度に最適化されており、データの作成、保存、取得、集約、操作、表示を同時に行うことができます。
管理者は、これを単一のマシンから複数のマシンにクラスタに展開できます。さらに、低レイテンシーと高い持続スループットによる、拡張が容易な Key-Value または JSON ドキュメント アクセスです。
Couchbase サーバー、Couchbase Mobile、および統合として複数の形式で利用できます。さらに、Windows および Linux サーバーのコミュニティ ソリューションとエンタープライズ ソリューションの両方で利用できます。
Riak (リーアック) NoSQL データベース
Riak も NoSQL データベース プログラムで、エンタープライズ バージョンとクラウド ストレージ バージョンに加えて、オープン ソース バージョンもあります。高可用性とスケーラビリティを目標とするこの分散データ ストア システムは、CouchDB などの Erlang 言語で書かれています。 Riak の実装は Amazon の Dynamo 論文に基づいています。 Riak は複数のノードで構築されたシステムをサポートしており、各読み取りおよび書き込みリクエストにはクラスター内のすべてのノードが参加する必要はありません。柔軟なマップ/リデュース エンジン、使いやすい HTTP/JSON クエリ インターフェイスを提供します。
Riak は、導入と拡張が非常に簡単です。追加のノードをクラスターにシームレスに追加できます。リンク ウォーキングや Map/Reduce のサポートなどの機能により、より複雑なクエリが可能になります。 HTTP API に加えて、Riak はネイティブ Erlang API とプロトコル バッファーのサポートも提供します。
現在、Riak にアクセスするには、HTTP API (RESTful インターフェイス)、プロトコル バッファ、およびネイティブ Erlang インターフェイスの 3 つの方法があります。 API は、一般的な HTTP メソッド GET、PUT、POST、DELETE をサポートしており、それぞれオブジェクトの取得、更新、作成、削除に使用されます。
提供するコア機能は、フォールトトレラントな可用性、クエリのサポート、予測可能なレイテンシー、キー/値をメモリ、ディスク、またはその両方に保存できることです。マルチデータセンターのレプリケーションと調整可能な一貫性。 Amason S3 との互換性、Apache Spark、Apache Solar、Apache Mesos、Redis キャッシュとの統合。
OrientDB: グラフデータベース
OrientDB は、マルチモデルであり、ネイティブ グラフィックス、ドキュメントのフルテキスト、応答性、ドキュメント、キー/値、およびオブジェクト指向をサポートするオープン ソースの NoSQL データベースです。これは Java で書かれており、非常に高速です。通常のハードウェアでは、1 秒あたり 220,000 レコードを保存できます。ドキュメント データベースの場合、ACID トランザクション処理もサポートします。
高価なランタイム JOIN を使用しないで、接続をレコード間の永続的なポインターとして管理できます。数ミリ秒以内に数千のレコードを反復処理できます。
OrientDB は、ユーザーとロールに基づく強力なセキュリティ分析システムを備えたスキーマレス、スキーマフル、およびスキーマ混合モードをサポートし、クエリ言語間の SQL をサポートします。
60 秒未満の迅速なインストール (開発者によると主張)、グラフ構造化データ モデルが特徴です。オープンソースのグラフコンピューティングフレームワーク。拡張機能付きの SQL クエリをサポートします。 HTTP、RESTful プロトコル、および JSON の追加ライブラリまたはコンポーネントのネイティブ サポート。地理的に分散されたクラスターを含むマルチマスター レプリケーション。 Linux、OS X、Windows、または準拠した JVM を備えた任意のシステム上で実行できます。フルサーバーのフットプリントはわずか 512 MB です。クラウド読み取りなど…コミュニティとエンタープライズの両方が利用可能です。
Apache HBase
HBase – Hadoop データベースは、HBase テクノロジーを使用して、安価な PC サーバー上に大規模な構造化ストレージ クラスターを構築する、オープン ソースの非リレーショナル高信頼性、高性能、カラム指向のスケーラブルな分散ストレージ システムです。
HBase は、Google Bigtable のオープンソース実装です。ファイル ストレージ システムとして GFS を使用する Google Bigtable と同様に、HBase はファイル ストレージ システムとして Hadoop HDFS を使用します。 Google は MapReduce を実行して Bigtable 内の大量のデータを処理します。 HBase は、Hadoop MapReduce を使用して HBase を処理することもできます。大量のデータ。 Google Bigtable は共同サービスとして Chubby を使用し、HBase は対応するサービスとして Zookeeper を使用します。
アランゴDB
ArangoDB は、キー/値キー/値ペア、グラフ、ドキュメント データ モデルを組み合わせたネイティブ マルチモデル データベースです。 3 つのデータ モデルをカバーする統一されたデータベース クエリ言語を提供し、1 つのクエリで 3 つのデータ モデルを混在させることができます。モデル。ネイティブの統合マルチモデル機能に基づいて、高パフォーマンスのプログラムを構築でき、3 つのデータ モデルすべてが水平スケーリングをサポートします。コミュニティ バージョンとエンタープライズ バージョンの両方を提供します。
その他の役立つリソース:
- 6 セルフホスト環境向けのトップオープンソースチームチャットソフトウェア
- すべてのプログラマーが知っておくべき 6 つの重要な SQL コマンド
- データベースをグラフィカルに管理するためのトップ Mongodb GUI ツール 10 選
- MySQL Workbench を Ubuntu にインストールする方法
注記: 記事はゲスト著者による寄稿 –カニカ・マーリアン