【问题标题】:Datastax graph traversal taking more time then expected?Datastax 图遍历需要比预期更多的时间?
【发布时间】:2017-02-01 02:07:23
【问题描述】:

您好,我正在使用 gremlin 遍历图表,我的查询如下

g.V().match(
  __.as("BaseVehicle").outE("year").as("year"),
  __.as("BaseVehicle").outE("make").as("make"),
  __.as("BaseVehicle").outE("model").as("model"),
  __.as("year").has("Year","1982"),
  __.as("make").has("MakeName","BMW"),
  __.as("model").has("ModelName","R65")
).select("BaseVehicle").by("BaseVehicleID")

大约需要。 20 秒执行。为什么要花这么多时间?

架构如下

   schema.propertyKey("BaseVehicle").Int().single().create()
    schema.propertyKey("ModelName").Text().single().create()
    schema.propertyKey("YearID").Int().single().create()
    schema.propertyKey("MakeID").Int().single().create()
    schema.propertyKey("BaseVehicleID").Int().single().create()
    schema.propertyKey("Year").Int().single().create()
    schema.propertyKey("MakeName").Text().single().create()
    schema.propertyKey("ModelID").Int().single().create()
    schema.edgeLabel("year").multiple().properties("BaseVehicle", "Year").create()
    schema.edgeLabel("model").multiple().properties("ModelName", "BaseVehicle").create()
    schema.edgeLabel("make").multiple().properties("MakeName", "BaseVehicle").create()
    schema.vertexLabel("BaseVehicle").properties("BaseVehicleID").create()
    schema.vertexLabel("BaseVehicle").index("byBaseVehicleID").materialized().by("BaseVehicleID").add()
    schema.vertexLabel("Year").properties("YearID").create()
    schema.vertexLabel("Year").index("byYearID").materialized().by("YearID").add()
    schema.vertexLabel("Year").index("YearByBaseVehicle").inE("year").by("Year").add()
    schema.vertexLabel("Model").properties("ModelName", "ModelID").create()
schema.vertexLabel("Model").index("byModelID").materialized().by("ModelID").add()
    schema.vertexLabel("Model").index("ModelByBaseVehicle").inE("model").by("ModelName").add()
    schema.vertexLabel("Make").properties("MakeName", "MakeID").create()
    schema.vertexLabel("Make").index("byMakeID").materialized().by("MakeID").add()
    schema.vertexLabel("Make").index("MakeByBaseVehicle").inE("make").by("MakeName").add()
    schema.edgeLabel("year").connection("BaseVehicle", "Year").add()
    schema.edgeLabel("model").connection("BaseVehicle", "Model").add()
    schema.edgeLabel("make").connection("BaseVehicle", "Make").add()

【问题讨论】:

    标签: datastax datastax-enterprise datastax-startup datastax-enterprise-graph


    【解决方案1】:

    请您使用 .profile() 项运行此查询以了解瓶颈吗?另外,你的硬件是什么样的?还有,你有多少个顶点和边?

    【讨论】:

    • 我有大约 3 个 lac 顶点和 22 个 lac 边。从 .profile() 我可以看到第一个查询优化器,第一个 MatchStartStep 占用了将近 95% 的查询时间。
    • Rajni,你解决了吗?否则,您能否联系初创公司客户经理 Diego,以便我们通过电子邮件继续处理?
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    相关资源
    最近更新 更多