我正在使用Titan和Blueprint API创建图表数据表。我使用HBase作为后端。 我知道如何为关键索引定义数据类型。
TitanKey name = graph.makeType().name("name").dataType(String.class).functional().makePropertyKey();
现在我真的想在Titan DB Graph中表示一个RDBMS表。我是否可以在Titan图模型中实现“列数据类型”(如在RDBMS表中)?
答案 0 :(得分:4)
与关系数据库不同,Titan的架构非常灵活。这意味着,您可以在数据库运行时添加新的属性键和边缘标签,而无需昂贵的“ALTER TABLE”命令。此外,Titan没有“table”的概念,因为每个实体都由一个顶点表示,每个顶点都可以通过边连接到任何其他顶点。
如果您的USER表包含NAME,AGE,UID列(其中UID是该表的唯一主键),您将在Titan中定义以下属性键:
graph.makeType().name("name").dataType(String.class).functional().makePropertyKey()
graph.makeType().name("age").dataType(Integer.class).functional().makePropertyKey()
graph.makeType().name("uid").dataType(Long.class).functional().indexed().unique().makePropertyKey()
然后,对于该表中的每个用户,您将创建一个顶点并设置这些属性:
v = g.addVertex(null);
v.setProperty("name","john");
v.setProperty("age",29);
v.setProperty("uid",23482234);