問題タブ [cql3]
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.
performance - timeuuid を列名としてログ データを Cassandra に書き込むとパフォーマンスが低下する
ebay の技術ブログとdatastax 開発者のブログの指針に従って、Cassandra 1.2 でいくつかのイベント ログ データをモデル化します。パーティション キーとして、「ddmmyyhh|bucket」を使用します。ここで、bucket は 0 からクラスター内のノード数までの任意の数です。
データモデル
cqlsh:Log> CREATE TABLE transactions (yymmddhh varchar, bucket int, rId int, created timeuuid, data map, PRIMARY KEY((yymmddhh, bucket), created) );
(rId は、イベントを発生させたリソースを識別します。) (マップは、JSON から派生したキーと値のペアです。キーは変更されますが、それほど多くはありません)
これは、1 時間あたり X バケットの複合プライマリ/行キーに変換されると思います。私の列名は timeuuids よりも優れています。このデータ モデルのクエリは期待どおりに機能します (時間範囲をクエリできます)。
問題はパフォーマンスです。新しい行を挿入する時間が継続的に増加します。だから私はs.thをやっています。間違っていますが、問題を特定できません。
行キーの一部として timeuuid を使用すると、パフォーマンスは高いレベルで安定したままになりますが、クエリを実行できなくなります (もちろん、行キーを使用しないクエリでは、「フィルタリング」に関するエラー メッセージがスローされます)。
何か助けはありますか?ありがとう!
アップデート
マップ データ型から定義済みの列名に切り替えると、問題が軽減されます。挿入時間は、挿入ごとに約 <0.005 秒にとどまっているようです。
「マップ」データ型の効率的な使用方法は? そして、キーのわずかな違いだけで何千もの挿入を効率的に行うにはどうすればよいでしょうか。
マップにデータを使用するキーは、ほとんど同じままです。各キーが追加の列を作成するか、「マップ」ごとに1つの新しい列を作成するか? それは... 私には信じがたいことです。
cassandra - CREATE TABLE の失敗 (間違った CQL バージョン)
inet、複数の主キー、およびコレクションで失敗するテーブルの作成。構文は正しかった。
エラー メッセージは、主キー (かっこの不一致) では意味がありません。それを削除すると、場合によっては inet が機能しないことがわかりました。
私が間違っていること、または CQL3 (インターフェースまたは構文) の使用について理解していないことはありますか?
以下も失敗
これは機能します
手がかり
DSE 3.0.x
[編集] - DSE に Cassandra 1.1.x がインストールされていることがわかりました。
cassandra - Cassandra Insert パフォーマンスの問題をマップ タイプのテーブルに挿入する
こんにちは、cql3を使用してマップタイプのテーブルにデータを挿入する際に発生しているこの問題を理解しようとしています。通常、cql3スレッドごとに平均約1000 iopsのデータを問題なく挿入できます。マップ タイプを追加すると、〜 100,000 エントリの後に次のエラーで挿入がタイムアウトしました: 要求を完了できません: 1 つ以上のノードが利用できませんでした。複数のノード (データセンター間でも) で、挿入中に CPU 負荷が異常に高くなっていることに気付きました。
各ノードの仕様は次のとおりです。 CPU: 16 コア メモリ: 64GB
これは、私が設定したテスト テーブル スキーマです。
カサンドラ バージョン 1.2.4
更新: 現時点では、他の rdbm からデータをインポートしているだけです。ほぼ 100% の確率で、マップ列に新しい行または新しい要素を追加しています。マップ列に含めることができる要素数の制限については承知しています。
nosql - Cassandra の MAX()、DISTINCT、およびグループ化
SQL データベースの Cassandra を改造して、SQL クエリに相当する Cassandra を見つけようとしています。CQL 3 と Cassandra v1.2 を使用しています。cassandra でデータベース設計をモデル化して、order by 句と非正規化テーブルをサポートし、結合操作をサポートできるようにしました。ただし、DISTINCT、SUM()、および GROUPBY に相当するものに関しては、私は海にいます
これは、過去数日間の私の仕事のショーストッパーのようなものです。Cassandra で、これらの種類のクエリをサポートするために db スキーマをモデル化できる方法はありますか? Cassandra での方法は考えられません。このようなクエリは、Cassandra を使用してどのように実装されますか?
Cassandra 上のハイブ レイヤーがこれらのクエリを機能させる可能性があることを読みました。そのようなクエリを Cassandra でサポートできる唯一の方法であるかどうか疑問に思っています..? Plsは他の可能な方法についてアドバイスします..
cassandra - トレースエラー「オブジェクトは反復可能ではありません」
テーブルへの Cassandra の書き込みは遅いです (書き込みレイテンシは挿入ごとに 38 ミリ秒でした)。トレースをオンにして、その理由を見つけようとしていました。ただし、このエラーが表示されますが、理解できません。挿入自体は成功することに注意してください。カサンドラ1.2.5を使用しています
エラー: 'NoneType' オブジェクトは反復可能ではありません
ここに挿入があります:
ここにテーブルの説明があります:
cassandra - cassandra-cli の columnfamily に追加された新しい列が cqlsh (cql3) から見えない
cql3 でテーブルを定義しました。それを記述すると、以下が返されます。
CREATE TABLE の結果 (
id uuid PRIMARY KEY、
casename テキスト、
結果テキスト、
run int、
ユーザー テキスト
) WITH ...
これは列ファミリーを制限するべきではないという事実を利用して、新しい列と値のペアを追加しようとしています。
しかし、これはうまくいきません。cassandra-cli を使用すると、標準設定構文を使用して水浸しの値を追加でき、行は正常に永続化されます。ただし、cql3 に戻っても、select * クエリはこの新しい列を返さず、describe も新しい列の水浸しを示しません。
これは、cql3 の行に任意のデータを追加できず、定義されたスキーマに拘束されることを意味しますか? そうでない場合は、どうすればよいですか?
cassandra - CQL3 を使用して Cassandra に任意の列を挿入する
CQL3 より前は、日付で名前が付けられた列などの任意の列を挿入できました。
この投稿によると、CQL3 では状況が異なるようです。任意の列を挿入することはまだ何とか可能ですか? これが私の失敗した試みです:
ここで私は得るBad Request: line 1:29 no viable alternative at input 'foo'
おそらくこれは複合キーの制限であるため、少し異なるテーブルを試します。
再びBad Request: line 1:29 no viable alternative at input 'foo'
ここで何が欠けていますか?