問題タブ [cql]
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.
cassandra - Memtable とキーキャッシュの混乱
デフォルトの Cassandra キャッシュ設定で Hector を使用して CF から行を読み取っています。これは、キー キャッシュがオンになっていることを意味します。jconsole を使用してキー キャッシュ ヒットを監視しています。
しかし、単一の行を (主キーで) 100 回読み取った後でも、キャッシュ ヒットは増加しません。行は最近更新されました。
キー キャッシュが有効になっている場合、Cassandra の読み取りフローはどうなりますか。こんな感じですか?
- メモリ内の MemTable で行がチェックされます (最近の挿入/更新後に存在する可能性があります)。
- MemTable に見つからない場合は、キー キャッシュでキーがチェックされます。
- キーが見つかった場合 (キャッシュ ヒット)、1 シーク、それ以外の場合は 2 シークで行を取得します。
しかしcassandra-cli
、cassandra-jdbc
(CQL) を使用すると、異なる結果が得られます。つまり、最近行を更新した場合でも、行から読み取るたびにキー キャッシュ ヒットが発生します。たとえば、100 回読んだら、100 回ヒットします。
この不一致はなぜですか?
自分でもなんとなくわかったのですが、誰かに確認してもらいたいです。
更新すると、更新する列が MemTable にフェッチされるだけのようです。したがって、ヘクターを使用して行を更新したとき、すべての列を更新していませんでした。列だけで、読み取り操作でx
同じ列x
を読み取っていました。そのため、MemTable に既にあるため、キャッシュ ヒットはありません。
select * from cf
CQL の実行中に、他の列もフェッチする結果となったa を実行していましたy
。列y
は更新されていないため、メモリ (MemTable) に存在しなかったため、キャッシュヒットが発生したと想定しています。
cassandra - Cassandra CQL3 スライス クエリの問題 - スライスする方法
withを使用して作成されたテーブルがありますCQL3
:
いくつかのランダム データを挿入しました:
クエリを実行すると
次の3行を取得したい場合
スライス範囲の CQL を書こうとしていた (それができるかどうかわからない)
私のCQLShは、ソケットが閉じていることを示し、エラーが表示されます
サーバー側では、次のエラーが表示されます。
次の 3 行を取得するにはどうすればよいですか。サーバー側の例外に関して、バグを報告します。CQLSh が終了し、終了して再接続する必要があります
cassandra - セカンダリ インデックス列の CQL と範囲
以下の CQL クエリを実行すると、次のエラーが発生しました。
等号演算子を含む by-columns 句にインデックス付きの列が存在しません
列age
にはすでに副次索引が作成されていることに注意してください。
ただし、別のセカンダリ インデックス列がありtype
ました。それでそれを使ったら…
ちゃんとした結果が得られたようです。
これはどのように起こりますか?
cassandra - Cassandra 1.1: 複数の行キーをクエリしますが、範囲はクエリしません
Cassandra で逆方向インデックスを作成する方法については多くのドキュメントを読みましたが、これらの結果を使用して該当する行をフェッチする方法については何も知りませんでした。
行スライスについては知っていますが、ここでは当てはまりません。私の質問は、行キーに従って多数の特定の行をどのようにフェッチするのですか?
疑似 SQL の場合:
java - HectorまたはCQL、どちらを使用すればよいですか
私はカサンドラが初めてです。Cassandra を使用するアプリケーションを作成する必要があります。今後あまり問題に直面しないように、どちらが自分に適しているかを知りたかったのです。アプリケーションにどの API を使用する必要がありますか。
sorting - 最も重なっている bbox を持つ形状 (多角形) を見つける
空間データベースで特定の形状を見つけるために、CQL クエリを作成しようとしています。
クエリが最大の交点を持つ形状を返すようにします。私の考えは、LIMIT=1 と sortBy の交差点を設定することでした。
スクリーンショットが添付されている場合は、クエリが次のように返されることを希望します。
左から右への三角形
- Filter1 --> 黄色の形
- Filter2 --> 黄色の形
- Filter3 --> 緑の形
私の問題を解決する方法はありますか?
これまでのところ、次のコードを使用しています。
cassandra - Cassandra - 新しい ColumnFamily 作成時の NullPointerException
ここhttps://issues.apache.org/jira/browse/CASSANDRA-4363で説明されている正確な問題に遭遇していますが、Cassandra 1.1.2、cqlsh --cql3を使用しています。
列ファミリーを作成しようとすると、次のエラーが表示されます
また、TSocket が 0 バイトを読み取ってしまうこともあります。
サーバー側のログも、JIRA チケットに記載されているものと同じです。
/var/lib/cassandra ディレクトリを削除してサーバーを再起動してみました。それでもエラーが発生します。JIRA のこのバグは、再現不可、修正済みバージョンなしとしてマークされています。では、カサンドラを再び機能させるにはどうすればよいでしょうか。
cassandra - FIRST Nを使用してCQL(1.1)で列範囲を指定する
CQLドキュメント1.0では、SELECTステートメントで「FIRSTN」属性を使用して列の範囲を指定できました。
CQLドキュメント1.1では、省略されているようですが、この機能はCQLから削除されていますか、それともまだサポートされていますか?
cassandra - cqlsh で色を無効にする
Apache Cassandra の CQL コマンド プロンプトである cqlsh は、クエリ結果に色を表示するようにプログラムされています。cqlsh で色を無効にする簡単な方法はありますか?
c# - CQL 3 を使用した複合 COLUMNS (キーではない) の作成
この記事では、Cassandra 1.1 で複合列を作成するために CQL 3 を使用できる方法について説明します。それらは単なるアイデアです。公式なものはなく、Datastax のドキュメントではこれについて説明していません (複合キーのみ)。
私が理解しているように、複合列は、一緒になって1つの値しか持たない多数の列です。
それらを CQL でどのように作成しますか?
編集
Cassandra へのインターフェースとして C# を使用します。CQL は簡単に使用できるように見えるので、使用したいと思います。