2

hbaseの行キー内の列数を見つける方法(行には多くの列を含めることができるため)

4

3 に答える 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 に答える