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);
誰かが私を助けることができますか?
これをHBaseシェルで実行する場合:
> truncate 'yourTableName'
次に、HBaseは 'yourTableName'に対して次の操作を実行します。
> disable 'yourTableName'
> drop 'yourTableName'
> create 'yourTableName', 'f1', 'f2', 'f3'
もう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);
この目的のために、 HAdmin を使用できます。これは、ApacheHBase管理用のUIツールです。表の変更ページには、「表の切り捨て」ボタンと「表の削除」ボタンがあります。
HBase thrift API(phpが使用しているもの)は、deleteTableおよびcreateTable機能のみの切り捨てコマンドを提供しません(あなたの観点からの違いは何ですか?)
それ以外の場合は、スキャンしてすべてのキーを取得し、各キーのdeleteAllRowを取得する必要があります-これは非常に効率的なオプションではありません