hbaseの行キー内の列数を見つける方法(行には多くの列を含めることができるため)
2841 次
3 に答える
1
各行は異なる数の列を持つことができ、それらは複数のファイルに分散している可能性があるため、これを行う直接的な方法はないと思います。
行全体をクライアントに渡してカウントを実行したくない場合は、エンドポイントコプロセッサー(必要に応じてストアドプロシージャのHBaseバージョン)を記述して、リージョンサーバー側で計算を実行し、結果のみを返すことができます。 。ここでコプロセッサーについて少し読むことができます
于 2012-07-01T13:48:43.503 に答える
1
簡単な方法があります:
hbaseシェルを使用してテーブルをスキャンし、出力を中間テキストファイルに書き込みます。hbaseシェルの出力は行の各列を新しい行に分割するため、テキストファイル内の行を数えることができます(hbaseシェルの標準出力である最初の6行と最後の2行を差し引いたもの)。
echo "scan 'mytable', {STARTROW=>'mystartrow', ENDROW=>'myendrow'}" | hbase shell > row.txt
wc -l row.txt
境界線は包括的ではないため、必ず適切な行キーを選択してください。
特定の列(ファミリ)のみに関心がある場合は、上記のhbaseシェルコマンドでフィルタを適用します(FamilyFilter、ColumnRangeFilterなど)。
于 2017-08-18T13:41:44.057 に答える
0
@ user3375803に感謝します。実際には、外部のtxtファイルを使用する必要はありません。私はあなたの答えにコメントすることができないので、私は私の答えを以下に残します:
echo "scan 'mytable', {STARTROW=>'mystartrow', ENDROW=>'myendrow'}" | hbase shell | wc -l | awk '{print $1-8}'
于 2019-02-20T03:43:22.140 に答える