【问题标题】:DSE graph: update the graph in analytics modeDSE 图表:在分析模式下更新图表
【发布时间】:2018-09-18 18:31:01
【问题描述】:

我在生产中有一个 DSE 图。我想根据分析查询的结果更新图表。

例如,对于“用户”类型的每个顶点,我想计算带有“订阅”标签的事件边,以计算图的特定用户的订阅者数量。

可以通过分析模式下的分析查询轻松完成计数(在事务模式下,如果边太多,查询可能会超时)。

问题是在分析模式下我无法使用计算值来更新我的模型。

当我尝试更新我的计数器时,我收到以下消息:“不支持属性添加”。

一种解决方法可能是在分析模式下计算边数,然后从分析模式切换到事务模式,然后我可以更新计数器:这可以更新单个特定用户的计数器,但这并不实用如果我想更新我的图表的所有用户。

是否有根据分析查询结果更新图表的标准方法?

谢谢!

【问题讨论】:

    标签: datastax-enterprise-graph


    【解决方案1】:

    您是否为此解决方案尝试过 DSE Graph Frames?这可能有助于实现您的目标。

    https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/graph/graphAnalytics/dseGraphFrameOverview.html

    【讨论】:

    • 您好,感谢您的帮助。我试过了,但是当我尝试使用 val g = spark.dseGraph("graph_name"): Failed to execute method DseGraphRpc.getSchemaBlob 启动图形时出现错误
    • 在 /var/lib/cassandra/system.log 中应该有更多关于执行问题的描述性消息。你能从那里发布一个堆栈跟踪吗?在较旧的 DSE 版本中这可能只是意味着:找不到名称为“graph_name”的图形。
    • 我在 com.datastax.bdp.graph.spark.SerializableSchema$Property.lambda$new$375(SerializableSchema.java:283) 处使用 java.lang.StackOverflowError: null 得到一个大堆栈跟踪 ~[ dse-graph-5.1.1.jar:5.1.1]
    【解决方案2】:

    可以回答我自己的问题:正如 jlacefie 所回答的,DseGraphFrames 似乎是同时运行分析查询和更新图表的方法。

    纯解析模式不用于更新。但是通过编写一个简单的 javascript 客户端,使用 dse graph nodejs 驱动程序,我能够打开两个连接,一个 OLAP 和一个 OLTP,运行分析查询,获取结果并使用它来运行 OLTP 查询以执行更新。

    考虑到我的数据库的大小,这没问题,但是如果您要处理的数据太多,这种方法就行不通了。

    所以这个问题的正确答案是使用 DSEGraphFrames,不幸的是我无法在我的系统中使用它,因为它不能正常工作。

    我将为这个特定问题打开一个新问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-02
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      相关资源
      最近更新 更多