hbase好友表设计

1年前 (2020-02-26) 397次浏览 已收录 5个评论

需求:

  • 添加关注
  • 查看关注
  • 添加粉丝
  • 查看粉丝
rowkey cf1(关注列表) cf2(粉丝列表)
001 002 003
002   001
003 001

创建表

@Test
public void createTable() throws Exception {
 if(admin.tableExists(TN1)) {
  //先禁用这个表
  admin.disableTable(TN1);
  //删除
  admin.deleteTable(TN1);
 }
 //表描述
 HTableDescriptor desc=new HTableDescriptor(TableName.valueOf(TN1));
 //列族
 HColumnDescriptor cf = new HColumnDescriptor("cf1".getBytes());
 HColumnDescriptor cf2 = new HColumnDescriptor("cf2".getBytes());
 //列族加到表描述里
 desc.addFamily(cf);
 desc.addFamily(cf2);
 admin.createTable(desc);
}

添加数据

首先添加001用户的好友

@Test
public void scan2() throws Exception {
 FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ALL);
 PrefixFilter filter1 = new PrefixFilter("001".getBytes());
 //添加过滤器
 list.addFilter(filter1);
 Scan scan = new Scan();
 scan.setFilter(list);
 ResultScanner rss = htable.getScanner(scan);
 for (Result rs:rss) {
  System.out.print(new String(CellUtil.cloneValue(rs.getColumnLatestCell("cf1".getBytes(), "fensi".getBytes()))));
 }
}

 

查看粉丝

@Test
public void scan2() throws Exception {
 FilterList list = new FilterList(FilterList.Operator.MUST_PASS_ALL);
 PrefixFilter filter1 = new PrefixFilter("001".getBytes());
 //添加过滤器
 list.addFilter(filter1);
 Scan scan = new Scan();
 scan.setFilter(list);
 ResultScanner rss = htable.getScanner(scan);
 for (Result rs:rss) {
  System.out.print(new String(CellUtil.cloneValue(rs.getColumnLatestCell("cf1".getBytes(), "fensi".getBytes()))));
 }
}

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:hbase好友表设计
喜欢 (0)

您必须 登录 才能发表评论!

(5)个小伙伴在吐槽
  1. 可以
    我也是渣渣2020-03-27 13:13
  2. 给你点赞
    沥青2020-03-28 16:54
  3. 我也是小白以后多多交流
    白云2020-03-28 17:20
  4. 挺明白的
    小白2020-03-28 17:46
  5. 挺明白的
    白云2020-05-26 09:26