問題タブ [pycassa]
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.
python - pycassa を使用して列ファミリーを読み取ることができません
pycassa を使い始めたばかりなので、これがばかげた質問である場合は、前もってお詫び申し上げます。
次のスキーマを持つ列ファミリーがあります。
有効なキーで get() を実行しようとすると (cassandra-cli で正常に動作します)、次のようになります。
ここに私が発見したいくつかの情報があります:
cassandra-cli を使用すると、データは次のように表示されます。
% cassandra-cli -h 10.249.238.131
例外の原因が不明だったので、columnfamily.py の「return self._name_unpacker(b)」行の前に印刷を追加することにしました。
余分な文字が列名のどこから来ているのかわかりません。しかし、それが気になったので、columnfamily.py の _cosc_to_dict に別の出力を追加したところ、次のように表示されました。
列名の周りの余分な文字が 'ValueError: bytes is not a 16-char string' 例外の原因であると仮定して正しいですか?
また、列名を使用して選択しようとすると、次のようになります。
さらに考えはありますか?
ありがとう、
ロブ
python - cassandra-cli で見た場合の pycassa create column family 例外
私はCassandraが初めてなので。pycassa API を使用して列ファミリーを作成したいと考えています。次のコードを使用して列ファミリーを作成しました。
Python スクリプトは例外なく正常に実行されています。しかし、cassandra-cli を使用してこの列ファミリーをチェックすると、. 次の例外があります。
なぜこのエラーが発生するのかわかりません。誰もが同じための作業コードを持っていますか? 前もって感謝します。
indexing - Cassandra インデックス履歴データにセカンダリ インデックスを追加しますか?
特定の列ファミリーで後で列にインデックスを追加すると、履歴データもインデックスに追加されるか、インデックスを追加した後に現在のデータにインデックスが作成されます。
ここでは、列をセカンダリ インデックスとして更新した後、Cassandra DB のインデックス データはいつ実行 されますか?
列にインデックスを付けてCFを作成しようとしました(私はCassandra 1.0.7を使用しています)
comparison=UTF8Type および column_metadata=[{column_name: full_name, validation_class: UTF8Type}, {column_name: birthday_date, validation_class: LongType, index_type: KEYS}, {column_name: state, validation_class: UTF8Type, index_type: KEYS}] で列ファミリー ユーザーを作成します。 ;
いくつかのデータを追加してから実行しました
インデックス users.birth_date を削除してインデックスを削除し、CF を更新して元に戻しました
列ファミリーのユーザーを comparison=UTF8Type および column_metadata=[{column_name: full_name, validation_class: UTF8Type}, {column_name: birthday_date, validation_class: LongType, index_type: KEYS}, {column_name: state, validation_class: UTF8Type, index_type: KEYS}] で更新します。 ;
その後、いくつかのデータを再度追加しました
しかし、birth_data に対してクエリを実行すると、履歴データも取得されますか?
誰かがこれについて私の混乱を解消できますか? インデックスを作成するには、履歴データを使用する方法と使用しない方法の 2 つの方法がありますか?
cassandra - ストリーミング データの挿入と読み取りに最適な Cassandra パラメーター/設定
最初のキースペースの 2 つの列ファミリー (標準) と 2 番目のキースペースの 3 つの列ファミリー (2 つの標準と 1 つのカウンター) にデータを挿入して、ストリーミング データを 2 つの個別のキースペースに挿入しています。
これらの列ファミリーへのデータ挿入率は適切に制御されており、純粋な書き込みでは [60% の CPU 使用率と約 8 ~ 10 の CPU 負荷率] で問題なく動作します。次に、書き込みが並行して行われている間に、Pycassa API を介してこれらの列ファミリーからデータを継続的に読み取ろうとしましたが、書き込みパフォーマンスが大幅に低下していることに気付きました。
並列書き込み + 2 つのキースペースからの読み取りには、どのようなシステム設定が推奨されますか? 現在、データ ディレクトリは、各ノードで RAID10 を備えた単一の物理ドライブ上にあります。
メモリ: 8GB
ヒープサイズ: 4GB
クアッドコア Intel Xeon プロセッサー @3.00 GHz
同時書き込み = 同時読み取り = 16 (cassandra.yaml ファイル内)
データ・モデル
Keyspace1 : 1 行に 24 時間分のデータを格納する幅の広い列に、列名としてタイム スタンプ (T) を使用した時系列データを挿入しています。
CF1:
行キー 1
行キー 2
:
:
CF2 (ワイドカラムファミリー):
RowKey1 (T1, V1) (T2, V3) (T4, V4) ……
RowKey2 (T1、V1) (T3、V3) .....
:
:
キースペース 2 :
CF1:
行キー 1
行キー 2
:
:
CF2 (ワイドカラムファミリー):
RowKey1 (T1, V1) (T2, V3) (T4, V4) ……
RowKey2 (T1、V1) (T3、V3) .....
:
:
CF3 (カウンターコラムファミリー):
CF2 に格納されたすべてのイベントの発生をカウントします。
データは、キースペース 1 および 2、CF2 のみ (幅の広い列ファミリー) から継続的に読み取られます。繰り返しますが、読み取りと書き込みは並行して行われています。クエリされるデータの量は、multiget を使用して 1 行キーから 8 行キーまで段階的に増加し、このプロセスが繰り返されます。
python - ランダムおよび順序付きパーティショナーの get_range
次のステートメントは、たとえば 5 億行という多数の行を処理しながら、プログラムの効率を向上させるのにどのように役立ちますか。
ランダムパーティショナー:
注文されたパーティショナー:
get_range
また、100 万行を超える列ファミリーを持つ順序付きパーティショナーを使用しているときに、一度に処理できる行数。
ありがとう
copy - Cassandra データをあるクラスターから別のクラスターにコピーする方法
異なるデータセンターに 2 つの cassandra クラスターがあり (これらは 2 つの異なるクラスターであり、multidc を備えた単一のクラスターではないことに注意してください)、両方のクラスターに同じキースペースと列ファミリ モデルがあります。最も効率的な方法で、列ファミリー C のデータをクラスター A からクラスター B にコピーしたいと考えています。他のいくつかの ColumnFamily は、時系列でキーが連続していたので、get および put 操作でコピーできました。しかし、この別の列ファミリー C はコピーできます。thrift と pycassa を使用しています。CQL COPY コマンドを実行しましたが、残念ながら CF が大きすぎて rpc_timeout が発生します。どうすればこれを達成できますか?