web-dev-qa-db-ja.com

hbaseでテーブルをクリアする方法は?

Hbaseのテーブルを空にしたい...例:user。テーブルを削除せずに空にするコマンドや関数はありますか...

私のテーブル構造は:

$mutations = array(
                new Mutation( array(
                    'column' => 'username:1',
                    'value' =>$name
                ) ),
                new Mutation( array(
                    'column' => 'email:1',
                    'value' =>$email
                ) )
        );          
$hbase->mutateRow("user",$key,$mutations);

誰かが私を助けることができますか?

12
Micku

これをHBaseシェルで実行する場合:

 > truncate 'yourTableName'

次に、HBaseは 'yourTableName'に対して次の操作を実行します。

 > disable 'yourTableName'
 > drop 'yourTableName'
 > create 'yourTableName', 'f1', 'f2', 'f3'
56
Alexis Gamarra

もう1つの効率的なオプションは、実際にテーブルを削除してから、前と同じ設定で別のテーブルを再構築することです。

PHPでこれを行う方法はわかりませんが、Javaで行う方法は知っています。 phpの対応するアクションは似ているはずです。APIがどのように見えるかを確認する必要があります。

Java HBase 0.90.4を使用:

// Remember the "schema" of your table
HBaseAdmin admin = new HBaseAdmin(yourConfiguration);
HTableDescriptor td = admin.getTableDescriptor(Bytes.toBytes("yourTableName");

// Delete your table
admin.disableTable("yourTableName");
admin.deleteTable("yourTableName");

// Recreate your talbe
admin.createTable(td);
5
André Staltz

hbase Shellを使用すると、truncate <table_name>がタスクを実行します。

truncate 'customer_details'コマンドのスナップショットを以下に示します。 enter image description here

ここで、customer_detailsはテーブル名です。

4
Farooque

hbase Shellのtruncateコマンドはあなたのために仕事をします:

切り捨てる前: enter image description here

切り捨て後: enter image description here

2
Heapify

この目的のために、 HAdmin を使用できます。これは、ApacheHBase管理用のUIツールです。表の変更ページには、「表の切り捨て」ボタンと「表の削除」ボタンがあります。 enter image description here

1
grbulat

HBase thrift API(phpが使用しているもの)は、deleteTableおよびcreateTable機能のみの切り捨てコマンドを提供しません(あなたの観点からの違いは何ですか?)

それ以外の場合は、スキャンしてすべてのキーを取得し、各キーのdeleteAllRowを取得する必要があります-これは非常に効率的なオプションではありません

1