四个主要的数据模型操作是 Get,Put,Scan 和 Delete。通过表实例应用操作。
Get 操作返回指定行的属性。Get操作通过 Table.get 执行
Put 操作添加到表中的新行(如果键是新的)或者可以更新现有行(如果键已存在)。 Puts 通过 Table.put (非 writeBuffer)或 Table.batch (非 writeBuffer)执行
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!
}
请注意,通常,为扫描指定特定停止点的最简单方法是使用 InclusiveStopFilter 类。
Delete 操作从表中删除一行。删除通过 Table.delete 执行。
HBase 不会修改现有数据,而是通过创建名为 tombstones 的新标记来处理删除操作。这些tombstones 标记以及删除的值在主要的压缩(major compactions)中得到了清理。
有关删除列版本的更多信息,请参阅 version.delete ,有关压缩的详细信息,请参阅compaction。