2017-07-19 9 views
1

JavaクライアントからのPUTパフォーマンスでベンチをいくつか行いましたが、その結果はわかりません。パフォーマンスを置く - Hbase Javaクライアント

ここに問題があります: HBaseに入れるのが最善の方法は? 1000列(4ファミリ)の単一プット、または単一列の1000プット?たぶん4列に250列を置くのでしょうか?

理論的には、何が最善の戦略でしょうか?

PS:私はSolsのためのWalsが必要なので、バッチを使用することはできません。

ありがとうございました。

答えて

1

書き込み操作のパフォーマンスを向上させるには、[1行に置く]を使用する必要があります。 HBaseが行キーのロックを作成し、この場合、同期に多くの時間が浪費されるため、パフォーマンスが大幅に低下することがあります。行ごとにシングル・プットの場合、書き込み性能はバルク・ロードに匹敵します。

+1

最小限のテスト環境で17sから巨大な行まで1.5sになりました。どうもありがとう。 – SBA

1

まず、できるだけ少数の列ファミリを使用します(これはanswerの詳細を記載しています)。次に、書き込みパターンだけでなく読み取りパターンも指定する必要があります。 HBaseは、 "一度書き込むと多くを読み込む"シナリオに最適です。したがって、あなたはテーブルを設計したいので、データへの最速アクセスを提供します。そして、この基準はあなたが "背の高い"か "広い"テーブルを必要とするかどうかを決定します。 「HBase in Action」のHBase table designの章をご覧ください。

+0

あなたの答えは@gorrosありがとうございます。質問は、HBaseのスキーマ設計に関するものではありません。私はすでにこの地域に多くの時間を費やしてきました。私が最終的な解決策に残すことができる家族の最小数は4です。彼らは同じ "幅"を持っていませんが、彼らはHBaseデザインの多くのベストプラクティスを尊重しています。 – SBA

+0

確かに、私は理解しています。質問の文脈を適切に把握できなかったのかもしれません。 – gorros

関連する問題