問題タブ [cassandra-2.2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4204 参照

cassandra - Windows 7 64 ビットでローカル マルチノード Cassandra クラスターを作成するにはどうすればよいですか?

Windows 7 64 ビット PCでローカル マルチノードCassandra 2.x クラスターを作成するための一連の手順を探しています。

できればCCM「Cassandra Cluster Manager」</a>を使用し、 DataStax OpsCenterを使用して管理できるようにする必要があります

「<a href="http://www.datastax.com/2012/01/getting-started-with-apache-cassandra-on-windows-the-easy-way" rel="nofollow"」の指示に従いました。 >「Windows で Apache Cassandra を簡単に始める方法」ですが、これらは単一ノード クラスター用です。

編集: CCM を使用して各ノードに OpsCenter エージェントを展開することに行き詰まりました。何かアイデアはありますか?

0 投票する
1 に答える
982 参照

cassandra - RHEL での Cassandra の 2.2 から 3.0 へのアップグレード

Cassandra 2.2.3 を実行している RHEL 7.0 サーバーがあり、これを 3.0 にアップグレードしようとしました。実行するyum updateと、更新用の Cassandra の新しいバージョンがあり、サーバーが 2.2.4-1 にアップグレードされましたが、3.0 にはアップグレードされませんでした。

yum で dsc30 を検索すると、それを見つけることができ、おそらくそれもインストールできますが、2.2 から 3.0 への自動アップグレードが行われないのはなぜですか?

サーバーに大量のデータがあり、実験したくありません。Ubuntu 14.04 を実行している別のテスト サーバーがあり、2.2 から 3.0 に正常にアップグレードされましたが、RHEL ではサーバーが 3.0 へのアップグレードを見つけることができません。

ありがとう

0 投票する
2 に答える
1917 参照

php - Cassandra:最新の行のみを選択

私は次のテーブルで作業します:

テーブルは更新されず、新しい行が追加されるだけです。クローラーがドメインをチェックするたびに、新しい行が追加されます。

私はこの選択を実行しています:

しかし、結果に必要なのは、一意の「name3rd.name2nd.name1st」ごとに最新の「更新された」値を持つ行のみです。

もし私が標準的な SQL データベースを使っていたら、MAX または GROUP BY でネストされた選択を使用します。ただし、これは Cassandra ではサポートされていません ( Cassandraの MAX()、DISTINCT および group by )。しかし、私はCQLで何をすべきですか?

0 投票する
3 に答える
34392 参照

cassandra - Cassandra のバッチ制限とは何ですか?

Cassandra クラスターにバッチで (INSERT) レコードをプッシュする Java クライアントがあります。バッチ内の要素はすべて同じ行キーを持つため、すべて同じノードに配置されます。また、トランザクションをアトミックにする必要がないため、ログに記録されていないバッチを使用しています。

各バッチの INSERT コマンドの数は、さまざまな要因によって異なりますが、5 から 50000 の間の任意の数になる可能性があります。最初に、1 つのバッチに持っていたのと同じ数のコマンドを入れて、それを送信しました。これはcom.datastax.driver.core.exceptions.InvalidQueryException: Batch too large. 次に、バッチごとに 1000 の INSERT の上限を使用し、その後 300 まで下げました。この制限がどこから来るのかを正確に知らずにランダムに推測しているだけで、後で問題を引き起こす可能性があることに気付きました。

私の質問は、この制限は何ですか? 変更できますか?バッチに配置できる要素の数を知るにはどうすればよいですか? バッチが「いっぱい」になったときは?

0 投票する
1 に答える
463 参照

cassandra - Cassandra batch isolation guarantee

I have a question regarding Cassandra batch isolation:

Our cluster consist of a single datacenter, replication factor of 3, reading and writing in LOCAL_QUORUM. We must provide a news feed resembling an 'after' trigger, to notify clients about CRUD events of data in the DB. We thought of performing the actual operation, and inserting an event on another table (also in another partition), within a batch. Asynchronously, some process would read events from event table and send them through an MQ.

Because we're writing to different partitions, and operation order is not necessarily maintained in a batch operation; is there a chance our event is written, and our process read it before our actual data is persisted?

Could the same happen in case our batch at last fails?

Regards, Alejandro

0 投票する
1 に答える
1023 参照

database-design - Cassandra 非正規化と正規化

非正規化された現実

私のデータベースには、ユースケースに完全に適合する非正規化テーブルがあり、非常に高速にデータを受信して​​います...

ただし、このテーブルには数十億の行があり、これはハードウェアの問題です。このように、リンク テーブルの設計で節約されたすべてのバイトは、大きなメリットをもたらします。

正規化されたソリューション?

アプリケーションのリンク テーブルからの平均的な選択には、数十分の行または数百の行が含まれます。最悪の場合、select には数千行が含まれます。したがって、この表を使用して問題を正規化することは(imho)賢明かもしれません...

質問

正規化されたリンク テーブルとページ テーブルを使用した場合、それらをアプリケーションで結合する必要があります。それは問題にはなりませんが、ページ テーブルから対応する行を効果的に選択するにはどうすればよいでしょうか。リンクテーブルから得られたすべての行を繰り返し処理し、対応するページ行を1つずつ選択することは効果的ではないと感じています。

0 投票する
0 に答える
251 参照

cassandra - Cassandra の分散ページネーション

私はcassandraでページネーションを探していましたが、ここでこの完璧なトピックを見つけました: Results pagination in Cassandra (CQL)この回答は大多数の人々に受け入れられています。しかし、複数のコンピューターで同じことをしたいです。例を挙げます...

問題

同じ cassandra DB に接続されている 3 台のコンピューターがあるとします。各コンピューターは、次のテーブルからいくつかの行を取得する必要があります。

すべてのコンピューターは、数行を取り、時間のかかる計算を実行します。固定パーティション キー (domain_name1st、domain_name2nd、domain_name3rd) と異なるクラスタリング キー (場所) の場合でも、数千の結果が得られる可能性があります。

そして今、問題が発生します...そのコンピューター1が他のコンピューターで機能している状態で、いくつかの行をすばやくロックするにはどうすればよいですか?

使えない解決策

標準 SQL では、次のようなものを使用します。

これにより、次のことが可能になります。

  • コンピューター 1 の最初の 10 ページを選択してロックします (page_from=1、page_count=10)。
  • 他の 2 台のマシンのロックをすばやく確認し、未使用のページを計算用に取得します
  • より高速なコンピューターでより多くのページを取得してロックする
  • すべてのページが処理された後、指定されたパーティション キーのすべてのロックを削除します

質問

ただし、Cassandra で LIMIT 20,10 を実行することはできません。また、別のコンピューターでページネーションを行いたいため、これを実行することもできません。これらのページをすばやくページ分割する方法はありますか?