2017-04-15 9 views
2

は、ここで私はselect count(1) from star_eventを実行しようとしていカウントクエリは

CREATE TABLE star.star_event (
eventnumber int, 
primarytracks int, 
prodtime double, 
antinucleus int, 
eventfile int, 
eventtime double, 
histfile bigint, 
multiplicity int, 
nabovelb int, 
nbelowlb int, 
nlb int, 
pt double, 
runnumber int, 
vertexx double, 
vertexy double, 
vertexz double, 
PRIMARY KEY (eventnumber, primarytracks, prodtime) 
) WITH CLUSTERING ORDER BY (primarytracks ASC, prodtime ASC) 

私のテーブルで設定します。少なくとも少量のデータに対しては、それがcassandraでサポートされている有効なクエリであることはわかっています。しかし、巨大なデータセットではうまくいかないようです。

は常に

ReadTimeout: Error from server: code=1200 [Coordinator node timed out 
waiting for replica nodes' responses] message="Operation timed out - 
received only 0 responses." info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'} 

はまだcassandra.yaml運にデフォルトReadTimeout値を増加エラーを取得します。利用可能な回避策は何ですか。

答えて

1

私はあなたがカッサンドラであなたのやり方を十分に知っているのを見ています;)そしてあなたはすでにyamlファイルを変更しようとしました。今のようにこれを回避することはできません。また、cassandraのみを使用することもできます(タイムアウトをさらに増やして何が起こるかを確認する以外)

基本的にデータが大きくなることがあります。だからあなたはこの問題を回避する必要があります。これを行うにはいくつかの方法があります。

外のプロセスによって、カウントを行う
  1. - スパークはいつも私のために本当に素晴らしい働いたが、私も非常に多くの場合、データを処理するために、いくつかの独自のツールをコード化されました。しかし、この1つは私が推測するあなたのためによくない複数の小さな一つにテーブルを破壊するので、最適な

  2. を思えません - あなたは、データを改造してみてください、あなた自身のカウントツールhttps://stackoverflow.com/a/23750872/7413631

  3. ためにこの回答を使用する場合がありますあなたがテーブルの統計情報nodetool cfstatsを使用して、ボールパークにだけ関心がある場合(128以内)ファジーカサンドラ近似を使用します。http://www.wentnet.com/blog/?p=24

  4. カウンター列を採用しようとすると、基本的にはあなたはそれが実際に増加するであろう作るすべての挿入のための1つの以上の更新プログラムを持っていますカウンタ値。しかし、カウントを開始すると、初期値に設定する必要があります。

この数はあなたが頻繁にしていないものであり、自分のスクリプトやスパークを待つことができるかどうかによって異なります。あなたがすぐにそれを持っていなければならないなら、私はカウンターコラムと一緒に行くでしょう。

+0

ニースポイントは非常に役に立ちます。そうすれば、スパークがこのprobsの代用品になることができます。私はこのことについてはっきりしていません。もし、cassandra自身がそのような質問を処理できないなら、それは火花でしょうか? – curiousguy

+0

Sparkは実際には小さな行で行を引き出し、数えます:)これはちょっと変わったかもしれませんが、私は同意しますが、データの量が大きければこれは単なる要求ではうまく機能しません側の何か。分散数は常に問題になります。 –

+0

興味深い私はこれを確かに試み、あなたに戻ってきます。私に方向性を示してくれてありがとう:) – curiousguy

関連する問題