簡體   English   中英

從Python使用Titan Graph數據庫

[英]Using Titan Graph database from Python

我正在嘗試使用Titan Graph DB為網絡拓撲建模。我想從python應用程序中指定拓撲。

我有一個使用tinkertop框架注釋的java接口文件。下面給出一個示例結構。

public interface IDeviceObject extends IBaseObject {

          @JsonProperty("mac")
          @Property("dl_addr")
          public String getMACAddress();
          @Property("dl_addr")
          public void setMACAddress(String macaddr);

          @JsonProperty("ipv4")
          @Property("nw_addr")
          public String getIPAddress();
          @Property("nw_addr")
          public void setIPAddress(String ipaddr);

          @JsonIgnore
          @Adjacency(label="host",direction = Direction.IN)
          public Iterable<IPortObject> getAttachedPorts();

          @JsonIgnore
          @Adjacency(label="host",direction=Direction.IN)
          public void setHostPort(final IPortObject port);

          @JsonIgnore
          @Adjacency(label="host",direction=Direction.IN)
          public void removeHostPort(final IPortObject port);

          @JsonIgnore
          @GremlinGroovy("it.in('host').in('on')")
          public Iterable<ISwitchObject> getSwitch();
    }


PYTHON OBJECTS  ----> BULBS ----> REXTER ---> Titan Graph DB ---> Cassandra DB

(1)BULBS將python對象轉換為圖形(2)Rexter將圖形轉換為JSON(3)Titan將JSON返回圖形。 (4)並且還寫信給cassandra存儲

看起來我正在以一種非常全面的方式做事,而我缺少什么? 如果有人可以指出以上內容有問題,那就太好了嗎?

您的圖表:

PYTHON OBJECTS  ----> BULBS ----> Rexster ---> Titan Graph DB ---> Cassandra DB

看起來或多或少是正確的,具體取決於您對所涉及的抽象的看法。 您也可以將其定義為:

PYTHON OBJECTS  ----> BULBS ----> Rexster/Titan ---> Cassandra DB

由於Rexster基本上嵌入了Titan實例,該實例通過REST公開以供燈泡使用。 這部分不太正確:

  1. BULBS將python對象轉換為圖
  2. Rexter將圖轉換為JSON
  3. Titan可以將JSON轉換回圖形?
  4. 並寫信給卡桑德拉商店

我會說:

  1. 泰坦是寫給卡桑德拉的藍圖實現
  2. Rexster托管Blueprints實現,並使用JSON通過REST公開該API(和Gremlin )的元素
  3. Bulbs是Rexster上的Python對象映射層。

歸根結底,Python與Titan沒有直接聯系。 Titan具有基於JVM的Blueprints接口,並使用Rexster作為非JVM語言與之交談的一種方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM