wiki:table_example2

有关系实体在HBASE里面存放的方式


字段可以定义为前缀
"s" + show_id
"a" + album_id
"m" + name

在一个ROW里面根据字段名查询可以使用Column的各种Filter

HTable t = ...;
Scan s = ...;
s.setStartRow("pets");
s.setStopRow("pets");
// get all columns for my pet "fluffy". 
Filter f = new ColumnRangeFilter(Bytes.toBytes("fluffy"), true,
                                 Bytes.toBytes("fluffz"), false);
s.setFilter(f);
s.setBatch(20); // avoid getting all columns for the HBase row 
ResultScanner rs = t.getScanner(s);
for (Result r = rs.next(); r != null; r = rs.next()) {
  // r will now have all HBase columns that start with "fluffy",
  // which would represent a single row
  for (KeyValue kv : r.raw()) {
    // each kv represent - the latest version of - a column
  }
}

另外一个例子是存放用户的信息,每个用户为一条row
为了支持不同的排序方式,分了几个CF,id排序一个CF,日期排序一个CF




为了减少冗余,只保存一份message body,只要就需要在程序里面做join


Attachments