1. ホーム
  2. hadoop

[解決済み] HbaseのcheckAndPutとcheckAndMutateの違いは何ですか?

2022-02-12 08:39:06

質問

Hbase 1.2.4では checkAndPut と checkAndMutate の違いは何ですか?

どのように解決するのですか?

checkAndPut - 渡された CompareOp に従って、hbase から値と現在の値を比較します。 CompareOp=EQUALS 期待される値が等しい場合、その値を put オブジェクトに追加します。

checkAndMutate - 渡された CompareOp.CompareOp=EQUALS に従って、hbase から値と現在の値を比較し、期待される値が等しい場合に、値を rowmutation オブジェクトに追加します。

hbase で実行させたい変異の順番で、複数の put および delete オブジェクトを rowmutation オブジェクトに追加することができます。

rowmutationでは、putとdeleteの順序が重要です。

RowMutations mutations = new RowMutations(row);
//add new columns
Put put = new Put(row);
put.add(cf, col1, v1);
put.add(cf, col2, v2);

Delete delete = new Delete(row);
delete.deleteFamily(cf1, now);

//delete column family and add new columns to same family
mutations.add(delete);
mutations.add(put);

table.mutateRow(mutations);

チェックアンドミューテート https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#checkAndMutate-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.filter.CompareFilter.CompareOp-byte:A-org.apache.hadoop.hbase.client.RowMutations-

チェックアンドパット

https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Table.html#checkAndPut-byte:A-byte:A-byte:A-org.apache.hadoop.hbase.filter.CompareFilter.CompareOp-byte:A-org.apache.hadoop.hbase.client.Put-