在 HBase 中有四个主要的数据模型操作,分别是:Get、Put、Scan 和 Delete。
Get(读取)
Get 指定行的返回属性。读取通过 Table.get 执行。
Get 操作的语法如下所示:
在以下的 get 命令示例中,我们扫描了 emp 表的第一行:
读取指定列
下面给出的是使用 get 操作读取指定列语法:
在下面给出的示例表示用于读取 HBase 表中的特定列:
Put(写)
Put 可以将新行添加到表中(如果该项是新的)或者可以更新现有行(如果该项已经存在)。Put 操作通过 Table.put(non-writeBuffer)或 Table.batch(non-writeBuffer)执行。
Put 操作的命令如下所示,在该语法中,你需要注明新值:
新给定的值将替换现有的值,并更新该行。
Put操作示例
假设 HBase 中有一个表 EMP 拥有下列数据:
以下命令将员工名为“raju”的城市值更新为“Delhi”:
更新后的表如下所示:
Scan(扫描)
Scan 允许在多个行上对指定属性进行迭代。
Scan 操作的语法如下:
以下是扫描表格实例的示例。假定表中有带有键 “row1 “、 “row2 “、 “row3 ” 的行,然后是具有键“abc1”,“abc2”和“abc3”的另一组行。以下示例显示如何设置Scan实例以返回以“row”开头的行。
请注意,通常,指定扫描的特定停止点的最简单方法是使用 InclusiveStopFilter 类。
Delete(删除)
Delete 操作用于从表中删除一行。Delete 通过 Table.delete 执行。
HBase 不会修改数据,因此通过创建名为 tombstones 的新标记来处理 Delete 操作。这些 tombstones,以及没用的价值,都在重大的压实中清理干净。
使用 Delete 命令的语法如下:
下面是一个删除特定单元格的例子:
删除表的所有单元格
使用 “deleteall” 命令,可以删除一行中所有单元格。下面给出是 deleteall 命令的语法:
这里是使用“deleteall”命令删除 emp 表 row1 的所有单元的一个例子。
使用 Scan 命令验证表。表被删除后的快照如下: