問題タブ [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.
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
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 インデックスを間違った方法で使用したかどうか教えてください。
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です
java - パラメータ化された IN 句で N1QL セカンダリ インデックスが機能しない
com.couchbase.client, java-client
バージョンを使用2.2.7
して、パラメーター化された IN 句を使用する n1ql セカンダリ インデックスを機能させることができませんでした。以下のインデックス、クエリ、および Java コードの例を参照してください。
索引
クエリ
クエリを送信するコード
パラメータ化を追加する前は、このセカンダリ インデックスはクエリで正しく使用されていました。また、プライマリ インデックスを使用すると、クエリが機能します。
私の質問は、クエリで使用されるセカンダリ インデックスを作成する方法です。
cassandra - セカンダリ インデックスは Cassandra にデータの別のコピーを作成しますか?
私はこのドキュメントを読んできましたが、セカンダリ インデックスが原因でデータのコピーが作成されたのか、それとも他のデータへのリンクがあるだけなのかはわかりません。
node.js - dynastyjs: セカンダリ グローバル インデックスを使用してアイテムを検索する方法
テーブルがあります: digital_asset、そのパーティション キーは: id です。これにはグローバル セカンダリ インデックスがあります: ean-index と partitioning-key: ean。dynastyjs を使用してセカンダリ インデックスを使用してテーブルをクエリできるようにしたいと考えています。aws-sdk を使用すると、次のようになります。
dynasty を使用する方がはるかに優れています。たとえば、プライマリ インデックスで検索したクエリは次のとおりです。
これは私が試したものですが、エラーが発生しました:
エラー:
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 に含まれていると思いますが、間違っている可能性があります。
timeout - Phoenix 作成の SecondaryIndex タイムアウト
Phoenix は初めてで、問題が発生しました。まず、Phoenix の Java で 30000000 レコードのテーブルを作成しました。次に、フェニックス グローバル secondIndex をテーブルに作成します。しかし、プログラムが 10 分間実行されると、Java クライアントは SQLTimeoutException をスローします。理由がわかりません、助けてください。