四个主要的数据模型操作是 Get,Put,Scan 和 Delete。通过实例应用操作。

28.1.Get

Get 操作返回指定行的属性。Get操作通过 Table.get 执行

28.2.Put

Put 操作添加到表中的新行(如果键是新的)或者可以更新现有行(如果键已存在)。 Puts 通过 Table.put (非 writeBuffer)或 Table.batch (非 writeBuffer)执行

28.3.Scan

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 类。

28.4.Delete

Delete 操作从表中删除一行。删除通过 Table.delete 执行。

HBase 不会修改现有数据,而是通过创建名为 tombstones 的新标记来处理删除操作。这些tombstones 标记以及删除的值在主要的压缩(major compactions)中得到了清理。

有关删除列版本的更多信息,请参阅 version.delete ,有关压缩的详细信息,请参阅compaction