問題タブ [secondary-indexes]

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.

0 投票する
1 に答える
326 参照

solr - Phoenix セカンダリ インデックスは WAL ログを特別に処理しますか?

hbase クラスターに phoenix と hbase-indexer を使用していますが、phoenix セカンダリ インデックスに関する興味深い現象が見つかりました。

phoenix からの 2 つのグローバル可変インデックス テーブル (C_PICRECORD_IDX1 および C_PICRECORD_IDX2) を持つ 1 つのテーブル (C_PICRECORD) にデータ (csv データをインポートするために psql を使用) を配置し、データを solr に複製するために hbase-indexer を作成します。データのインポートが完了した後、solr ドキュメントの numfound が hbase テーブルの行数と異なることがわかりました。インデックス テーブルを削除し、データをクリアして、データを再度配置すると、solr ドキュメントの numfound が hbase テーブルの行数と同じであることがわかりました。

最近、solr ドキュメント numfound が hbase テーブルの行数と異なる理由を発見しました。

2) solr と hbase の間で行数が一致しないという奇妙な現象は、データ テーブルにセカンダリ インデックスがある場合にのみ発生します。

長い間ご迷惑をおかけしておりますが、phoenix セカンダリ インデックスを使用すると何か違うようです。

だから、私の質問は次のとおりです: Phoenix セカンダリ インデックスは WAL ログを特別に処理しますか?

私たちの環境:

cdh5.4.2 hbase-1.0.0-cdh5.4.2 phonenix-4.6 hbase-solr-1.5-cdh5.4.2(hbase-indexer)

クラスター: 3 つの hbase regionserver および 3 つの hbase-indexer

[チップ]

hbase-indexer は、hbase レプリケーションに基づいてデータを solr に入れます。WAL ログをキャッチし、関心のあるデータを solr に入れます。hbase-indexer github : https://github.com/NGDATA/hbase-indexer

0 投票する
0 に答える
895 参照

cassandra - Cassandra の SASI インデックスにはいくつかのバグがあるようです

Cassandra 3.7.0 で SASI インデックスを使い始めたところ、バグだと思われる問題に遭遇しました。バグが発生した状況をほとんど追跡していませんでしたが、次のことがわかりました。

SASI インデックスを使用してクエリを実行すると、誤って 0 行が返される場合があり、少し条件を変更すると、次の CQL コードのように再び機能します。

テーブル ロール 2をテーブルロールの「CLUSTERING ORDER BY (b DESC)」から「CLUSTERING ORDER BY (b ASC) 」に変更しただけであることに注意してください。

statement でクエリを実行するselect * from roles2 where b<3;と、結果は 2 行になります。

ただし、 でクエリを実行するとselect * from roles where b<3;、行がまったく返されませんでした。

バグが発生するのはこれだけではありません。「end」列に「end_idx」のような特定の名前の SASI インデックスを作成したとき、インデックス名を指定しなかったときにバグが発生しました。 .

このバグを確認するのを手伝ってください。または、SASI インデックスを間違った方法で使用したかどうか教えてください。

0 投票する
2 に答える
45 参照

mysql - mysqlでクラスターキーを作成するには?

私はテーブルルームとユーザーを持っています。私がストアしたいテーブル user では、room_id がクラスターキーであり、id_user は重複する可能性があります。例 room1 にはユーザー (1,2,3..)、room2 にはユーザー (1,2,3..) がいます。また、ユーザーの名前は異なる場合があります。たとえば、room1 の場合、id ユーザーは 1 で名前は Joni ですが、room2 の ID ユーザーは 1 で、名前は Joini または Sam にすることができます。
ただし、room_id と user_id をサンプリングしている場合は複製できません。たとえば、room1 には user 1 があり、room1 と user 1 を 2 番目に格納する行を持つことはできません。

ここに画像の説明を入力

それはサンプルcassandra dbです

0 投票する
2 に答える
384 参照

java - パラメータ化された IN 句で N1QL セカンダリ インデックスが機能しない

com.couchbase.client, java-clientバージョンを使用2.2.7して、パラメーター化された IN 句を使用する n1ql セカンダリ インデックスを機能させることができませんでした。以下のインデックス、クエリ、および Java コードの例を参照してください。

索引

クエリ

クエリを送信するコード

パラメータ化を追加する前は、このセカンダリ インデックスはクエリで正しく使用されていました。また、プライマリ インデックスを使用すると、クエリが機能します。

私の質問は、クエリで使用されるセカンダリ インデックスを作成する方法です。

0 投票する
1 に答える
40 参照

cassandra - セカンダリ インデックスは Cassandra にデータの別のコピーを作成しますか?

私はこのドキュメントを読んできましたが、セカンダリ インデックスが原因でデータのコピーが作成されたのか、それとも他のデータへのリンクがあるだけなのかはわかりません。

0 投票する
1 に答える
269 参照

node.js - dynastyjs: セカンダリ グローバル インデックスを使用してアイテムを検索する方法

テーブルがあります: digital_asset、そのパーティション キーは: id です。これにはグローバル セカンダリ インデックスがあります: ean-index と partitioning-key: ean。dynastyjs を使用してセカンダリ インデックスを使用してテーブルをクエリできるようにしたいと考えています。aws-sdk を使用すると、次のようになります。

dynasty を使用する方がはるかに優れています。たとえば、プライマリ インデックスで検索したクエリは次のとおりです。

これは私が試したものですが、エラーが発生しました:

エラー:

0 投票する
2 に答える
1453 参照

cassandra - セカンダリ インデックスの Cassandra SELECT が行を返さない

Cassandra 2.2.3 で SELECT を実行するときの不可解な動作に対処しています。リングに 4 つのノードがあり、次のキースペース、テーブル、およびインデックスを作成します。

次に、テーブルにいくつかの行を挿入します。それらのいくつかは空のセットを持っています。デフォルトの CQL クライアントを介してこのクエリを実行し、期待どおりの行を取得します。

次に、制御できないいくつかのテストを実行します。彼らが何をしているのかはわかりませんが、いくつかの行を読み取り、おそらく挿入/更新/削除すると思います。インデックス、テーブル、またはキースペースの設定を削除または変更しないと確信しています。

テストの後、デフォルトの CQL クライアントを介して再度ログインし、次のクエリを実行します。

最初のものは何も返しません。2 番目の行は、code = 'test' の行を含むすべての行を返します。3 番目のクエリは、最初のクエリで取得できなかった予想される行を返します。

この行と他の行との唯一の違いは、前に説明したように、いくつかの空のセットを含む行の 1 つであるということです。いくつかの空のセットも含む別の行を照会すると、同じ動作が得られます。

問題はセカンダリインデックスに関連していると思います。どういうわけか、テスト中に実行された操作によって、インデックスが特定の行を表示できない状態のままになります。

私は明らかに何かが欠けています。この動作の原因について何か考えはありますか?

前もって感謝します。

アップデート:

問題を回避しましたが、別の場所で同じ問題を見つけました。問題が最初に発生したため、エラーの前に実行された操作について詳しく知りました。その列に TTL を設定する特定の列の更新です。いくつかの調査の結果、この問題に関連している可能性のある Jira の問題がいくつか見つかりました。

https://issues.apache.org/jira/browse/CASSANDRA-6782 https://issues.apache.org/jira/browse/CASSANDRA-8206

しかし、これらの問題は 2.0 と 2.1 では解決されているようで、私は 2.2 を使用しています。これらの変更は 2.2 に含まれていると思いますが、間違っている可能性があります。

0 投票する
1 に答える
538 参照

timeout - Phoenix 作成の SecondaryIndex タイムアウト

Phoenix は初めてで、問題が発生しました。まず、Phoenix の Java で 30000000 レコードのテーブルを作成しました。次に、フェニックス グローバル secondIndex をテーブルに作成します。しかし、プログラムが 10 分間実行されると、Java クライアントは SQLTimeoutException をスローします。理由がわかりません、助けてください。