問題タブ [datastax-java-driver]
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 - Cassandraで書き込みパフォーマンスを向上させる方法は?
Emails という列ファミリーがあり、この CF にメールを保存しています。5000 件のメールを書き込むのに 100 秒以上かかります。
i3 プロセッサ、8GB RAM を使用しています。私のデータセンターには、レプリケーション係数 = 2 の 6 つのノードがあります。
Cassandra に保存するデータのサイズはパフォーマンスに影響しますか? 書き込みパフォーマンスに影響を与えるすべての要因と、パフォーマンスを向上させる方法を教えてください。
前もって感謝します..
cassandra - Datastax ドライバー制限オプション
datastax Java ドライバーを使用して選択クエリを作成します。limit オプションを使用して制限を設定しました。しかし、設定できる別のプロパティも表示されます
setFetchSize(整数サイズ)
ドキュメントによると、DEFAULT_FETCH_SIZE - 5000。
これは、行に約 10000 列がある場合、クエリを 3 の制限で実行すると、指定されたデフォルト値の 5000 行を常にフェッチし、そこから最後の 3 行を制限することを意味しますか?
このように使用すると、制限クエリはデフォルトで最後の 3 つの値だけをフェッチすると思いました。誰かがこれについて明確にできますか?
cassandra - 準備されたクエリの cql バイナリ プロトコルと名前付きバインド変数
単純な CQL テーブルがあるとします。
Cassandra のスキーマのないエッセンスを利用して、値の一部のみを設定し、たとえば、
Cassandra クラスター内のこのような CQL テーブルに書き込むアプリケーションを作成する場合、パフォーマンス上の理由から、準備済みステートメントを使用してこれを行う必要がすぐに生じます。
これは、さまざまなドライバーによってさまざまな方法で処理されます。たとえば、Java ドライバーでは (CQL バイナリ プロトコルの変更を利用して)、名前付きバインド変数を使用できるようになりました。非常に実用的: CASSANDRA-6033
私が疑問に思っているのは、バイナリプロトコルの観点から、準備されたクエリでバインドされた変数のサブセットのみに値を提供する正しい方法は何ですか?
実際、値は、で説明されているように値リストを作成することによって、準備されたクエリに提供されます。
[bytes] の定義に注意してください
この説明から、次のことがわかります。
- QUERY の「値」では、特定の列に値を提供する方法はありません。これは値の順序付けられたリストにすぎません。[short] は、準備されたクエリでバインドされた変数の正確な数に対応する必要があると思いますか?
- 型に関係なく、すべての値は [bytes] として表されます。その場合、[bytes] 値の解釈はサーバーに委ねられます (int、short、text などへの変換)?
これで問題ないと仮定すると、「null」[bytes] 値を使用して、バインドされた変数を単に「スキップ」し、それに値を割り当てないようにすることができるかどうか疑問に思います。
私はこれを試し、cpp ドライバーにパッチを当てました (これは私が興味を持っていることです)。クエリは実行されますが、clqsh から SELECT を実行すると、空のフィールドの「null」文字列表現が表示されないため、これは何らかの理由で単にクラッシュするだけではないハックなのか、それとも意図した方法なのか疑問に思います。 .
申し訳ありませんが、Java ドライバーをダウンロードして、名前付きバインド変数がどのように実装されているかを確認することはできないと思います。:(
---------- 編集 - 解決済み ----------
私の仮定は正しかったので、null [バイト値] を使用して、準備されたクエリでフィールドをスキップするサポートが cpp ドライバーに追加されました (こちらを参照)。
cassandra - Cassandra: timeuuid エラーの挿入
私は次の表を持っています
次のクエリを実行しています。
次のエラーが表示されます:
カサンドラ 1.2.2 を使用しています。
java - ネイティブ プロトコルを使用した Cassandra 用のカスタム map-reduce 入力フォーマッタ
私は Apache Cassandra (1.2) と Apache Map-Reduce を使用して一部のデータを処理しています。現時点では、 org.apache.cassandra.hadoop.cql3CqlPagingInputFormat
から使用しています。このプロバイダーは、Thrift を使用してデータをプルします。Thrift はかなり遅いようです (3 ノード クラスターで 3 億レコード、読み取りに 8 時間以上かかります)。また、ネイティブ バイナリ プロトコルが存在するため、誰かがそれを使用しているのではないかと思います。
他の最適化と構成の微調整には興味がありません-それは別の問題です。
私の質問は
Cassandra ネイティブ プロトコルを直接使用する map-reduce 入力フォーマッタの実装はありますか?
そうでない場合、たとえば DataStax ドライバーを使用して、自分で作成するための最初のステップは何ですか?
java - Cassandra-all 依存関係の失敗
gradle の依存関係リストに cassandra-all を含めました。はい、これ:
しかし、ビルドしようとすると、次の例外で失敗します:
依存関係が実際には Maven リポジトリに存在しないことがわかります。私はサイトに行き、手動でjarをダウンロードしてmavenのローカルリポジトリに入れると思っていました。しかし、com.github.stephenc:jamm:0.2.6 jar が見つかりませんでした。他の誰かが同じ問題に直面しましたか? 進め方を教えてください。