有关系实体在HBASE里面存放的方式 [[Image(tu1.JPG)]] [[Image(tu2.JPG)]][[BR]] 字段可以定义为前缀[[BR]] "s" + show_id[[BR]] "a" + album_id[[BR]] "m" + name[[BR]] 在一个ROW里面根据字段名查询可以使用Column的各种Filter[[BR]] {{{ 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 [[BR]] 为了支持不同的排序方式,分了几个CF,id排序一个CF,日期排序一个CF[[BR]] [[Image(tu3.JPG)]][[BR]] [[Image(tu4.JPG)]][[BR]] [[Image(tu5.JPG)]][[BR]] 为了减少冗余,只保存一份message body,只要就需要在程序里面做join[[BR]] [[Image(tu6.JPG)]][[BR]]