hbaseapi 一个用户关注了别人后,怎么同时在关注列和粉丝列添加数据、
时间: 2024-02-28 11:54:11 浏览: 77
在 HBase 中,可以使用 HBase API 在关注列族和粉丝列族中同时添加数据。具体步骤如下:
1. 获取关注者的用户 ID 和被关注者的用户 ID。
2. 创建一个 Put 对象,将被关注者的用户 ID 作为行键。
3. 在 Put 对象中添加两个 KeyValue 对象,分别代表关注者的用户 ID 和被关注者的用户 ID。这两个 KeyValue 对象需要分别指定关注列族和粉丝列族,并且列限定符可以是任何字符串,如下所示:
```
Put put = new Put(Bytes.toBytes("被关注者的用户 ID"));
put.add(Bytes.toBytes("关注列族"), Bytes.toBytes("关注者的用户 ID"), Bytes.toBytes("关注者的用户 ID"));
put.add(Bytes.toBytes("粉丝列族"), Bytes.toBytes("关注者的用户 ID"), Bytes.toBytes("关注者的用户 ID"));
```
4. 将 Put 对象添加到关注表中,如下所示:
```
Table table = connection.getTable(TableName.valueOf("关注表名"));
table.put(put);
```
这样,就可以在关注列族和粉丝列族中同时添加数据,实现用户关注后的数据更新。需要注意的是,在实际应用中,需要根据具体的业务需求来设计表结构和列族,以便更好地支持数据查询和更新。
相关问题
hive用hbase语句编写案例 假设你是用户部门员工,现需一张表用于存放用户粉丝数据表:userfollower,存:follower 粉丝有谁, followed 关注谁 1.建表 usertollower 2. 用户 Mary 有一个粉丝 Alice 3.用户 Jack 有两个粉丝 Bob 和 Ben 4. Jack 还关注了 Mary 5.查看Jack 被那些人关注,关注了谁 6. Bob 取关了 Jack 7. 扫描全表数据
可以使用 Hive 中的 HBase 存储插件,将 HBase 作为 Hive 的外部表,从而实现 Hive 对 HBase 的读写操作。下面是在 Hive 中使用 HBase 存储插件实现上述需求的示例:
1. 建表 usertollower
首先在 HBase 中创建表 usertfollower,包含列族 follower 和 followed。然后在 Hive 中使用以下语句创建外部表:
```
CREATE EXTERNAL TABLE usertollower (
rowkey STRING,
follower STRING,
followed STRING
) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,follower: ,followed:")
TBLPROPERTIES ("hbase.table.name" = "usertollower");
```
2. 用户 Mary 有一个粉丝 Alice
使用以下语句向表中插入数据:
```
INSERT INTO TABLE usertollower VALUES ('Mary', 'Alice', null);
```
3. 用户 Jack 有两个粉丝 Bob 和 Ben
使用以下语句向表中插入数据:
```
INSERT INTO TABLE usertollower VALUES ('Jack', 'Bob', null);
INSERT INTO TABLE usertollower VALUES ('Jack', 'Ben', null);
```
4. Jack 还关注了 Mary
使用以下语句向表中插入数据:
```
INSERT INTO TABLE usertollower VALUES ('Jack', null, 'Mary');
```
5. 查看 Jack 被那些人关注,关注了谁
使用以下语句查询数据:
```
SELECT follower, followed FROM usertollower WHERE rowkey = 'Jack';
```
6. Bob 取关了 Jack
使用以下语句删除数据:
```
DELETE FROM usertollower WHERE rowkey = 'Jack' AND follower = 'Bob';
```
7. 扫描全表数据
使用以下语句扫描全表数据:
```
SELECT * FROM usertollower;
```
注意:在使用 HBase 存储插件时,需要在 Hive 的配置文件 hive-site.xml 中添加相关配置。具体可以参考 Hive 和 HBase 的官方文档。
阅读全文