2017-07-18 4 views
0

単一ノードPostgreSQLに代わるものとして、複数のノードを持つカサンドラは良い選択ですか?格納されるデータは時系列である。すでに数十ギガバイトで、成長が見込まれています。データベースはパイプラインに統合され、ソースとしてapache sparkが付いていて、場合によっては結果の宛先になるはずです。冗長
1):1つのノードの障害は、システムを停止するべきではありません(すべてのデータが利用可能であるべきである)
2)速度:必要なのは 複数のノード - 単一のインサートあたりの少ない時間/ 1クライアント
3を選択)並行処理:複数のノード - 同時挿入のためのより良いスピード/あなたのポイントのために異なるクライアントからPostgreSQLの代わりにCassandra

答えて

1

を選択:

1)これは、鍵空間複製因子RFとの整合性レベルCLを選択しながら、あなた次第です質問ですあなたの挿入物の選択と選択。利用可能で一貫性を持たせるには、1つのノードのハンドオフ損失のためにあなたのRF = 3とCL.QUORUMが必要です(クォーラムの場合、RF/2 + 1ノードはオンライン、3/2 + 1 = 2 - RF = 5の場合、5/2 + 1 = 3ノードをオンラインにする必要があるため、2)の損失を処理できます。

2)単一の要求は、クラスタ内のコーディネータとして単一のノードによって処理されます。ここでは、単一の同期要求と同期要求ではあまりパフォーマンスは得られません。リクエストを発行して非同期を使用すると、より多くのノードにリクエストが分割され、パフォーマンスが向上します。

3)多くのクライアントでは、同じ効果があります。コーディネーターはランダムに選択されます(適切なコーディネーターを選ぶTokenAwarePolicyがあります)。

1

あなたは時系列データを使用すると述べました。 1.もちろん、レプリケーションファクタと整合性レベルを変更することができます。だから、カサンドラは代わりとして良いだろう。
2. Cassandraが最初にメモリを書き込むので、挿入物が本当に速くなります。だから、カサンドラは代わりとして良いだろう。
3. Cassandraは、線形水平スケーラビリティを持ちます。だから、カサンドラは代わりとして良いだろう。
欠点は、Cassandraがキー値ストレージであることです。だから、クエリの周りのテーブル構造をモデル化する必要があります。 RDBMSとしてのPostgreSQLは、一連のSQL操作をサポートするように柔軟性があります。
時系列データherehereでカッサンドラを使用する際のいくつかの賛否両論についてもっと読むことができます。

関連する問題