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