Cassandra-はじめに

Apache Cassandraは、多くの商用サーバーにわたって大量のデータを処理するように設計された、拡張性が高く高性能な分散データベースであり、単一障害点のない高可用性を提供します。これはNoSQLデータベースの一種です。まず、NoSQLデータベースの機能を理解しましょう。

NoSQLDatabase

NoSQLデータベース(SQLだけでなく呼ばれることもあります)は、リレーショナルデータベースで使用される表形式の関係以外のデータを格納および取得するメカニズムを提供するデータベースです。これらのデータベースはスキーマフリーで、簡単なレプリケーションをサポートし、シンプルなAPIを備え、結果整合性があり、大量のデータを処理できます。

NoSQLデータベースの主な目的は

  • デザインのシンプルさ、
  • 水平スケーリング、および
  • 可用性のより細かい制御。

NoSqlデータベースは、リレーショナルデータベースとは異なるデータ構造を使用します。これにより、NoSQLでの一部の操作が高速になります。特定のNoSQLデータベースの適合性は、解決する必要のある問題によって異なります。

NoSQLとリレーショナルデータベース

次の表に、リレーショナルデータベースとNoSQLデータベースを区別するポイントを示します。

リレーショナルデータベース NoSqlデータベース
強力なクエリ言語をサポートします。 非常に単純なクエリ言語をサポートします。
スキーマは固定されています。 固定スキーマはありません。
ACID(原子性、一貫性、分離、および耐久性)に従います。 これは「結果整合性」のみです。
トランザクションをサポートします。 トランザクションをサポートしていません。

Cassandraの他に、非常に人気のある次のNoSQLデータベースがあります-

  • Apache HBase− HBaseは、GoogleのBigTableをモデルにしたオープンソースの非リレーショナル分散データベースであり、Javaで記述されています。これはApacheHadoopプロジェクトの一部として開発され、HDFS上で実行され、HadoopにBigTableのような機能を提供します。

  • MongoDB − MongoDBは、クロスプラットフォームのドキュメント指向データベースシステムであり、従来のテーブルベースのリレーショナルデータベース構造の使用を回避し、動的スキーマを備えたJSONのようなドキュメントを使用して、特定のタイプのアプリケーションでのデータの統合をより簡単かつ迅速にします。

Apache Cassandraとは何ですか?

Apache Cassandraは、世界中に分散している非常に大量の構造化データを管理するための、オープンソースの分散型および分散型/分散型ストレージシステム(データベース)です。単一障害点のない高可用性サービスを提供します。

以下にリストされているのは、ApacheCassandraの注目すべき点のいくつかです。

  • スケーラブルで、フォールトトレラントで、一貫性があります。

  • これは列指向のデータベースです。

  • その配布設計は、AmazonのDynamoとGoogleのBigtableのデータモデルに基づいています。

  • Facebookで作成されたもので、リレーショナルデータベース管理システムとは大きく異なります。

  • Cassandraは、単一障害点のないDynamoスタイルのレプリケーションモデルを実装しますが、より強力な「列ファミリー」データモデルを追加します。

  • Cassandraは、Facebook、Twitter、Cisco、Rackspace、ebay、Twitter、Netflixなどの大手企業で使用されています。

Cassandraの機能

Cassandraは、その卓越した技術的機能により非常に人気があります。以下に、Cassandraの機能の一部を示します。

  • Elastic scalability−Cassandraは非常にスケーラブルです。要件に応じて、より多くの顧客とより多くのデータに対応するために、より多くのハードウェアを追加できます。

  • Always on architecture − Cassandraには単一障害点がなく、障害を発生させることができないビジネスクリティカルなアプリケーションで継続的に利用できます。

  • Fast linear-scale performance− Cassandraは線形にスケーラブルです。つまり、クラスター内のノード数を増やすとスループットが向上します。したがって、迅速な応答時間を維持します。

  • Flexible data storage− Cassandraは、構造化、半構造化、非構造化を含むすべての可能なデータ形式に対応します。必要に応じて、データ構造の変更に動的に対応できます。

  • Easy data distribution − Cassandraは、複数のデータセンターにデータを複製することにより、必要な場所にデータを分散する柔軟性を提供します。

  • Transaction support − Cassandraは、原子性、一貫性、分離、および耐久性(ACID)などのプロパティをサポートします。

  • Fast writes− Cassandraは、安価なコモディティハードウェアで実行するように設計されています。非常に高速な書き込みを実行し、読み取り効率を犠牲にすることなく、数百テラバイトのデータを保存できます。

カサンドラの歴史

  • Cassandraは、受信トレイ検索用にFacebookで開発されました。
  • 2008年7月にFacebookによってオープンソース化されました。
  • Cassandraは2009年3月にApacheIncubatorに受け入れられました。
  • 2010年2月からApacheのトップレベルプロジェクトになりました。