一、数据计算步骤汇总
下面我们通过文字梳理一下具体的数据计算步骤。
第一步:历史粉丝关注数据初始化
第二步:实时维护粉丝关注数据
第三步:每天定时更新主播等级
第四步:每天定时更新用户活跃时间
第五步:每周一计算最近一月主播视频评级
第六步:每周一计算最近一周内主播主播的三度关系列表。
第七步:三度关系列表数据导出到Redis
二、历史粉丝关注数据初始化
第一步:历史粉丝关注数据初始化
这块流程是没有变化的,使用load csv将我们之前导出的历史粉丝关注数据进行初始化即可。
1、清空原有数据
把neo4j中之前的数据清空一下,直接删除neo4j下面的data目录即可,然后启动neo4j
[root@bigdata04 neo4j-community-3.5.21]# rm -rf data/
[root@bigdata04 neo4j-community-3.5.21]# bin/neo4j start
通过浏览器访问neo4j,重新设置密码
http://bigdata04:7474/
然后我们使用neo4j的shell命令行执行下面命令。
[root@bigdata04 neo4j-community-3.5.21]# bin/cypher-shell -a bolt://bigdata04:7687 -u neo4j -p admin
Connected to Neo4j 3.5.21 at bolt://bigdata04:7687 as user neo4j.
Type :help for a list of available commands or :exit to exit the shell.
Note that Cypher queries must end with a semicolon.
neo4j>
2、建立索引
首先针对关键字段建立索引
neo4j> CREATE CONSTRAINT ON (user:User) ASSERT user.uid IS UNIQUE;
0 rows available after 281 ms, consumed after another 0 ms
Added 1 constraints
3、批量导入数据
然后批量导入数据
neo4j> USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:///follower_00.log' AS line FIELDTERMINATOR '\t'
MERGE (viewer:User { uid: toString(line.fuid)})
MERGE (anchor:User { uid: toString(line.uid)})
MERGE (viewer)-[:follow]->(anchor);
0 rows available after 791 ms, consumed after another 0 ms
Added 11 nodes, Created 17 relationships, Set 11 properties, Added 11 labels
4、检查数据
然后我们到页面上看一下导入的数据。