Hbase入门(三)——数据模型 (2)

默认版本Get示例

public static final byte[] CF = "cf".getBytes(); public static final byte[] ATTR = "attr".getBytes(); ... Get get = new Get(Bytes.toBytes("row1")); Result r = table.get(get); byte[] b = r.getValue(CF, ATTR); // returns current version of value

给定版本的Get示例

public static final byte[] CF = "cf".getBytes(); public static final byte[] ATTR = "attr".getBytes(); ... Get get = new Get(Bytes.toBytes("row1")); get.setMaxVersions(3); // will return last 3 versions of row Result r = table.get(get); byte[] b = r.getValue(CF, ATTR); // returns current version of value List<KeyValue> kv = r.getColumn(CF, ATTR); // returns all versions of this column PUT

执行 put 总是在某个时间戳创建cell的新版本。默认情况下,系统使用服务器的currentTimeMillis,但您可以在针对每一列指定版本(=长整数)。这意味着您可以在过去或将来指定时间,或者将long值用于非时间目的。

隐式版本示例

HBase 将使用当前时间隐式地对以下 Put 进行版本控制。

public static final byte[] CF = "cf".getBytes(); public static final byte[] ATTR = "attr".getBytes(); ... Put put = new Put(Bytes.toBytes(row)); put.add(CF, ATTR, Bytes.toBytes( data)); table.put(put);

显式版本示例

public static final byte[] CF = "cf".getBytes(); public static final byte[] ATTR = "attr".getBytes(); ... Put put = new Put( Bytes.toBytes(row)); long explicitTimeInMs = 555; // just an example put.add(CF, ATTR, explicitTimeInMs, Bytes.toBytes(data)); table.put(put); DELETE

删除通过 Table.delete]执行。

有三种不同类型的内部删除标记。

删除:对于特定版本的列。

删除列:适用于列的所有版本。

删除系列:适用于特定 ColumnFamily 的所有列

SCAN

扫描表

下面是对表进行扫描的示例。假设一个表填充了具有键“row1”,“row2”,“row3”的行,然后另一组是具有键“abc1”,“abc2”和“abc3”的行。以下示例将展示如何设置 Scan 实例以返回以“row”开头的行。

public static final byte[] CF = "cf".getBytes(); public static final byte[] ATTR = "attr".getBytes(); ... Table table = ... // instantiate a Table instance Scan scan = new Scan(); scan.addColumn(CF, ATTR); scan.setRowPrefixFilter(Bytes.toBytes("row")); ResultScanner rs = table.getScanner(scan); try { for (Result r = rs.next(); r != null; r = rs.next()) { // process result... } } finally { rs.close(); // always close the ResultScanner! }

更多实时计算,Hbase,Flink,Kafka等相关技术博文,欢迎关注实时流式计算

file

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsyps.html