请问支持单节点多类型和单边多类型吗?

如题,另外,加载数据的时候,单个csv里能有多个类型的节点吗?还是每个类型要整理出单独的csv?加载数据时,自动识别类型,不用先设计图模型,这个未来有计划吗?想了解下先设计图模型的优势。之前用的neo4j,他们对多标签、自动识别标签支持的比较好。有时候节点类型和边类型特别多,要一个个手动设置的话会效率很低。

您好!单个csv里可以有多类型的节点。

举个例子,有个csv文件有老师、教学和学生三列。
而schema设计了teacher和student两类顶点,teacher和student之间有个teach边。
这样,我们将csv向TigerGraph中导的时候,就可以把老师一列导入teacher点中,把学生一列导入到student点中,把teach导入到teach边中。

当然,我们知道上面这个csv中老师和学生两列的数据是有冗余的,如果不用一个csv,而是把它们拆分为三个csv:老师一个csv,学生一个csv,教学一个csv,其中老师和学生这两个csv是做过去重的,这样分三个csv向TigerGraph中导的速度,要比一个csv导的速度快,因为一个csv导时,TigerGraph还要先将老师和学生做去重工作。

TigerGraph不支持自动识别类型,我想在企业级应用中设计图模型是一门艺术,要依据业务目标做适当的调整,并不存在普适于所有场景的模型,因此把这项工作交给人,而不是机器,应该是更明智的选择。

好的,明白。那关于单节点多类型和单边多类型呢?谢谢

这是不支持的哦。

不过如果遇到类似单节点多类型的情况,不妨多加几个边以表达这种从属关系。
举个例子,一个人既可以是老师,也可是父亲,那么就可以采用如下任一种设计方案:

  1. 有人、老师、父亲这几个节点,然后建立人与老师的边,人与父亲的边。这样,张三如果既连上了老师节点,又连上了父亲节点,那么就知道他既是老师,又是父亲了。
  2. 有人、人物类型这两个节点,然后建立人与人物类型的边,而人物类型中有数据老师、父亲。这样,张三如果与人物类型老师有一条边,又与人物类型父亲有一条边,那么就知道他既是老师,又是父亲了。

您可以根据实际情况,设计最适用您的场景的模式。

如果遇到类似单边多类型的情况,也是类似,加几类的边即可解决问题。
比如举个社交网络的例子,人与人之间既可以有点赞关系,也可以有朋友关系,这样就可以设计出多类的边以区分各种关系了。

试用了一下,主要有以下想法:

  1. 以后会有Windows安装版吗?

  2. 还是关于图模型的问题,编辑设计图模型对于确定的、简单的模型比较适用,而复杂的、调试中的、动态变化的图模型不太适用,微调一下图模型,都要重新安装,而且还删掉所有加载的数据,这对调试不太友好,tiger加载很快,但也不能这么决断删全部数据啊。最好能识别调整的是哪些数据模型,只针对特定数据进行更新。
    人工智能、大数据、千变万化的世界,大部分数据都是在快速动态变化中的,我觉得图数据库也要适应这种状态。
    其实更建议自动识别类型并加载数据,直接跳过设计图模型和映射数据,在加载后自动形成图模型,这时候再来优化调整就最好了。能便利开发,提高性能,让开发者真正将精力花在算法等方面上,毕竟tiger的优势就在深度关联和实时分析。
    说实话现在愁着怎么将neo4j里复杂的数据转过来。当然我也理解设计图模型的想法。

  3. 关于多类型的问题,类型多可以更精准遍历,对性能是有提升的。而按你们说的将多于一个的类型转为一个特殊顶点,相比多类型性能也许会低一点,因为多类型能在遍历节点的阶段就筛选掉不合适的,而到遍历关联顶点才能筛选掉的话,相对已经慢了一步。当然类型多了数据也复杂了,跟属性太多一样,需要权衡一下,可以控制类型在特定值以下,比如五个。当然我对详细的、专业的底层逻辑也许有认知偏差,有的话希望帮忙纠正一下。

以上只是个人想法,对tiger有较大期待,感谢你们的贡献,希望tiger更好!谢谢

感谢您的关注和建议!
目前TigerGraph企业版没有开发Windows版的计划,一般企业都是用linux服务器的。不过开发者版本,可以通过docker安装,所以可以先在windows上安装docker,再在docker中安装TigerGraph开发者版本。