同じクラスター内の HBase にテーブル構造とデータのコピーを作成する効率的な方法はありますか? 明らかに、宛先テーブルの名前は異なります。私がこれまでに見つけたもの:
異なるHBase クラスター間でデータをコピーするためのツールとして説明されている CopyTable ジョブ。クラスター内の操作をサポートすると思いますが、そのシナリオを効率的に処理するように設計されているかどうかはわかりません。
export+import ジョブを使用します。それはハックのように聞こえますが、私は HBase を初めて使用するので、それが本当の解決策になるのでしょうか?
なぜ私がこれをやろうとしているのかと尋ねる人もいるかもしれません。私のシナリオは、必要に応じて「スナップショット」状態で、アクセスする必要がある何百万ものオブジェクトがあるということです。これらのオブジェクトの多くを更新する、毎日実行されるバッチ プロセスがあります。そのバッチ プロセスのいずれかのステップが失敗した場合、元の状態に「ロールバック」できる必要があります。それだけでなく、バッチ処理中にリクエストを元の状態に戻す必要があります。
したがって、現在の流れは、元のテーブルを作業コピーに複製し、作業コピーを更新している間、元のテーブルを使用してリクエストを処理し続けることです。バッチ プロセスが正常に完了した場合は、すべてのサービスに新しいテーブルを使用するように通知します。それ以外の場合は、新しいテーブルを破棄します。
これは BDB を使用して正常に機能しましたが、現在、非常に大きなデータのまったく新しい世界にいるため、間違ったアプローチを取っている可能性があります。代わりに使用すべきパターンの提案があれば、大歓迎です。:-)