問題タブ [cassandra-node-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.
node.js - Node.jsドライバーを使用したCassandraでのSELECT ... INのクエリパラメーター形式
Node ドライバー経由で実行したい IN パラメーターを持つ Cassandra SELECT クエリがありますが、構文がわかりません。
cqlsh コンソールで、この select を実行して正しい結果を得ることができます。
ただし、Cassandra Node ドライバーを使用して ID の配列を使用してこのクエリを実行しようとすると、形式に応じてさまざまなエラーが発生します。これが私が試したことです:
エラーは次のとおりです。
ResponseError: タイプ uuid の item_id のリスト リテラルが無効です
これとともに:
エラーは次のとおりです。
ResponseError: 行 1:72 入力 '[' で実行可能な代替手段がありません (...WHERE company_id = 4 AND [item_id] in...)
item_ids は文字列オブジェクトの配列であり、別の Cassandra テーブルの選択によって取得されました。
これは動作中のアプリであり、「SELECT .. IN」を使用しない他のクエリは正常に動作します。
「醜い」方法で動作させることもできますが、そうしないことをお勧めします。
cassandra - Nodejs ドライバーを使用してブール値を Cassandra に挿入しても機能しない
レプリケーション ファクター 2 で 3 ノードの Cassandra 2.2 クラスターをセットアップし、単純なテーブルを作成しました。
2.2 Datastax の Nodejs ドライバーを使用して、テーブルにデータを挿入しています。そして、次のようにデータを編集します。
新しいレコードを挿入すると、すべて正常に動作します。既存のレコードの有効な値を変更しようとすると、問題が発生します。奇妙なことは、有効な値がランダムに変更されることです。たとえば、3 つのリクエストを作成し、有効なプロパティを -> に変更したtrue, false, true
場合、3 番目のリクエストの後、データベースに残っているfalse
か、2 番目のリクエストの後に false に変更されない可能性があります。これの理由がわかりません。
cassandra - Cassandra Node.js: 大きなテーブルからすべての行をストリーミングする
実際にはそれほど大きくない Cassandra のテーブルがあります。わずか 50k 行。このテーブルからすべての行をストリーミングし、Elasticsearch でインデックスを作成する必要があります。
次の方法を使用して、Node.js で簡単なスクリプトを作成しました。
そして、data
イベントのリッスンを開始し、1000 行の一括リクエストを作成し、ストリームを一時停止し、行のインデックスを作成し、ストリームの一時停止を解除しました。
これは、1000〜2000行で正常に機能していました。しかし、テーブルのサイズが 50000 行に増えたので、query time out error
Cassandra からフェッチしているときに取得します。
したがって、プロセスは開始されません。この問題を解決するための推奨される方法は何ですか?
cassandra - cassandra lastupdated(auto_now)、lastaccessed および created(auto_now_add)
列の作成と最終更新/アクセスのタイムスタンプを自動更新する方法はありますか?
関数を使用toTimestamp(now())
して作成時間を保存できます。writetime(name)
しかし、最終更新時刻を取得するために使用される のような関数はありますか? 作成時間とアクセス時間を読み取る同様の機能はありますか?
3 つのタイムスタンプをすべて取得する方法はありますかlastupdated
/lastaccessed
およびcreated
タイムスタンプを自動生成して保存する方法はありますか?
node.js - Cassandra node.js ドライバーで中サイズの fetchSize を使用するとフレーム ストリーム エラーが発生する
Cassandra node.js ドライバーで奇妙な問題が発生しています。特定のパーティションからデータを選択しようとすると、このエラーが発生します。
ここには、いくつかの非常に奇妙な動作があります。
fetchSize
小さいsでは発生しません。たとえば、フェッチ サイズを 312 以上にすると一貫してエラーが発生しますが、フェッチ サイズを 311 にすると毎回うまくいきます。- 一部のパーティション キーでのみ発生します。これまでのところ、最近追加されたキーに影響しているようです。
- 1 つのテーブル内で、のブレーク ポイント
fetchSize
は一貫しています。SELECT * FROM TableX WHERE myKey = value1
たとえば、 orを実行すると、両方とも240 でSELECT * FROM TableX WHERE myKey = value2
エラーが発生し始めます。fetchSize
しかし のTableY
場合、制限は 284 かもしれません。
私はここで本当に途方に暮れています。単一のパーティションから返される行が多すぎることに関係があるのではないかと思いますが、他のパーティションから大量のデータを取得できます (たとえば、fetchSize
ほとんどのパーティションで 20000 で問題なく動作します)。
問題を再現するための簡単なコードは次のとおりです。
cassandra - dse-driver 接続が拒否されました
サーバーにインストールされている Datastax エンタープライズ Cassandra に接続しようとしています。接続しようとすると、次のエラーが表示されます。
cassandra.yaml の何かが localhost への接続を制限していると思いますか?
どんな助けでも大歓迎です!私の cassandra.yaml は投稿するには長すぎます。必要に応じてリンクを公開できます
node.js - タイムスタンプを Cassandra に挿入する
次のように作成されたテーブルがあります。
次の Node コードを使用して、テーブルに新しい行を簡単に追加できます。
ただし、次のエラーが表示されます。
'エラー: 日付には 8 または 0 バイトが必要です (24)
タイムスタンプをエポック時間に変更すると:
私は得る:d
OverflowError: 正規化された日数が大きすぎて C の int に収まりません
cqlsh を介して新しい行を挿入できるので、おそらく node.js ドライバーで何か不足しています。
何か案が?
ありがとう