Here’s the table of contents:
需求内容:
公司画像存储/人物画像存储等【实现任意时间切片下研究主体的标签关系属性穿透分析】。
设计背景
通过标签的任意组合归类实体进行关系分析,最高效的方式是通过图数据库的标签进行实现。这里的标签类似现有的拍平指标,现有的拍平指标存储在ES。如果要实现在某个时间点对某类拍平指标进行相关性分析是很难的。 关联时序的标签设计可以在空间上区分归类实体,将关系网络映射在一个三维空间中,可以方便的提取某个时间片上的关系网络。
三维图数据随时间序列变化的示例结构
// 数据只能新增和过期,但是不删除【事实数据一定要完整保留,过期数据通过时间查询过滤】【分析时拿指定时间最近的数据】
数据模型:(HORGShareHoldV002)-[持股]->(HORGShareHoldV002)
行业标签:[金融公司:金融公司_YYYY:金融公司_YYYYMM:金融公司_YYYYMMDD]
评级标签:[风险评级下调为B:风险评级下调为B_YYYY:风险评级下调为B_YYYYMM:风险评级下调为B_YYYYMMDD]
# 下列结构表示TIME1~TIME5标签随着时间的演变,随着标签的丰富可支持的查询也更加灵活
# 时 #
# 间 #
# ↓↓ #
TIME1【只包含图数据模型标签】:(HORGShareHoldV002)-[持股]->(HORGShareHoldV002)-[持股]->(HORGShareHoldV002)
TIME2【第一个节点增加行业标签】:(HORGShareHoldV002:金融公司)-[持股]->(HORGShareHoldV002)-[持股]->(HORGShareHoldV002)
TIME3【最后一个节点增加评级标签】:(HORGShareHoldV002:金融公司)-[持股]->(HORGShareHoldV002)-[持股]->(HORGShareHoldV002:风险评级下调为B:风险评级下调为B_2021:风险评级下调为B_202101:风险评级下调为B_20210127)
TIME4【第一个节点行业标签增加时间序列】:(HORGShareHoldV002:金融公司:金融公司_2021:金融公司_202101:金融公司_20210127)-[持股]->(HORGShareHoldV002)-[持股]->(HORGShareHoldV002:风险评级下调为B:风险评级下调为B_2021:风险评级下调为B_202101:风险评级下调为B_20210127)
TIME5【第一个节点增加时间序列的行业标签】:(HORGShareHoldV002:金融公司:金融公司_2021:金融公司_202101:金融公司_20210127:担保公司:担保公司_2021:担保公司_202101:担保公司_20210128)-[持股]->(HORGShareHoldV002)-[持股]->(HORGShareHoldV002:风险评级下调为B:风险评级下调为B_2021:风险评级下调为B_202101:风险评级下调为B_20210128)
时间粒度
标签—年月日 【200类标签30年的时间跨度,标签数量大约为224万】【1000类标签6年时间跨度,标签数量大约为224万】【2000类标签6年时间跨度,标签数量大约为224万】 2000 + 200010 + 20001012 + 2000101230 2000 + 20000 + 240000 + 240000*s 关系—年月日时分秒
存储原则
- ongdb主要存储标签、关系和必要的属性信息;
- 集成的mysql和es存储文本类属性数据和较大的时间序列JSON串,例如新闻文本、时间频率较高的数据等,通过编码关联;文本类检索通过es实现。
关系时间序列存储
- JSON串【[{},{},{}]】
- 拍平的存储普通属性
ONgDB支持的数据规模
- 节点数量【无限制】
- 关系数量【无限制】
- 关系类型【1600万】
- 节点标签【无限制】
- 节点与关系属性【无限制】
标签时间序列存储
【Label、Label_2021、Label_202101、Label_20210127】 例如今天给公司打上标签‘风险评级下调为B’,则这个主体在图库中拥有的标签就是: 【风险评级下调为B、风险评级下调为B_2021、风险评级下调为B_202101、风险评级下调为B_20210127】 标签只新增不修改,只要事实标签发生就必须保存下来。支持后续的更多数据分析需求。
// 不同行业公司的持股网络查询
// 查询担保公司和金融公司之间的持股网络
MATCH (n:HORGShareHoldV002:担保)-[r:持股]->(m:HORGShareHoldV002:金融公司) RETURN r.shareholding_detail LIMIT 25
// 不同行业并且2021年01月风险评级下调为B的公司持股网络查询
// 查询担保公司和金融公司2021年01月风险评级下调为B的公司之间的持股关系网络,在FILTER中过滤当时公司之间的持股关系
MATCH (n:HORGShareHoldV002:担保:风险评级下调为B_202101)-[r:持股]->(m:HORGShareHoldV002:金融公司:风险评级下调为B_202101) WHERE FILTER(r.shareholding_detail...) RETURN p LIMIT 25
// 在北京的不同行业并且2021年01月风险评级下调为B的公司持股网络查询
// 查询位于北京的担保公司和金融公司2021年01月风险评级下调为B的公司之间的持股关系网络,在FILTER中过滤当时公司之间的持股关系
MATCH (n:HORGShareHoldV002:担保:风险评级下调为B_202101:北京)-[r:持股]->(m:HORGShareHoldV002:金融公司:风险评级下调为B_202101:北京) WHERE FILTER(r.shareholding_detail...) RETURN p LIMIT 25
// 在北京的不同行业并且2021年01月风险评级下调为B的公司持股网络和担保网络查询
// 查询位于北京的担保公司和金融公司2021年01月风险评级下调为B的公司之间的持股关系网络和担保网络,在FILTER中过滤当时公司之间的持股担保关系
MATCH (n:担保:风险评级下调为B_202101:北京)-[r:持股|:担保]->(m:金融公司:风险评级下调为B_202101:北京) WHERE FILTER(r.shareholding_detail...) RETURN p LIMIT 25
PREVIOUS自动化生成CYPHER-TASK脚本