Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OrientDB:使用“子选择”创建边_Orientdb - Fatal编程技术网

OrientDB:使用“子选择”创建边

OrientDB:使用“子选择”创建边,orientdb,Orientdb,我在一个MySQL表(id,parentId)中有一个简单的树结构,有大约300万个顶点,我想将其导入OrientDB图形数据库。ETL导入器平滑导入顶点,但无法创建边(NullPointerException)。ETL甚至不适用于文档中给定示例的普通数据库(抛出相同的异常),因此我只导入了顶点,并希望手动创建边 我有一个顶点类(地址)和两个属性(id,parentId),我想在这些顶点之间创建边(parentId->id)。有没有一种简单的方法来代替在循环中插入边?类似于SQL中的 INSER

我在一个MySQL表(id,parentId)中有一个简单的树结构,有大约300万个顶点,我想将其导入OrientDB图形数据库。ETL导入器平滑导入顶点,但无法创建边(NullPointerException)。ETL甚至不适用于文档中给定示例的普通数据库(抛出相同的异常),因此我只导入了顶点,并希望手动创建边

我有一个顶点类(地址)和两个属性(id,parentId),我想在这些顶点之间创建边(parentId->id)。有没有一种简单的方法来代替在循环中插入边?类似于SQL中的

INSERT INTO E (out, in) VALUES (SELECT parentId, id FROM Address)
由于只应使用CREATE EDGE创建边,我想OrientDB默认情况下不支持这样的操作。但也许有一个解决办法来创建这300万条边

我发现在两个记录之间创建链接很容易:

CREATE LINK parentLink TYPE LINK FROM Address.parentId TO Address.Id
但是,我无法以这种方式创建边。我试着处理变量

CREATE EDGE isParentOf FROM (SELECT FROM Address) TO (SELECT FROM Address WHERE id = $current.parentId)

但这不起作用。

您是否尝试过此ETL Json:

{
  "config": {"log": "debug", "parallel": true },    
  "extractor" : {
    "jdbc": { "driver": "oracle.jdbc.driver.OracleDriver",
              "url": "jdbc:oracle:thin:hostname/db",    
              "userName": "username",    
              "userPassword": "password",    
              "query": "select id, A.parentId from Address a where rownum<2"     }    
  },    
  "transformers": [`enter code here`

    { "vertex": { "class": "Address" }},

    { "edge": { "class": "isParentOf",
      "joinFieldName": "parentId",
      "lookup": "Address.Id",
      "direction": "in",
      "skipDuplicates":true
    }
    }
    ],
    "loader": {
    "orientdb": {
      "dbURL": "remote:server/db",
      "dbUser": "user",
      "dbPassword": "passwd!",
      "dbType": "graph",
      "classes": [
        {"name": "Address", "extends": "V"},
        {"name": "isParentOf", "extends": "E"}
      ], "indexes": [
        {"class":"Address", "fields":["ID:string"], "type":"UNIQUE" }
      ]
    }
  }
}
{
“config”:{“log”:“debug”,“parallel”:true},
“提取器”:{
“jdbc”:{“driver”:“oracle.jdbc.driver.OracleDriver”,
“url”:“jdbc:oracle:thin:hostname/db”,
“用户名”:“用户名”,
“用户密码”:“密码”,

“查询”:“从地址A中选择id,A.parentId,其中rownum您是否尝试过此ETL Json:

{
  "config": {"log": "debug", "parallel": true },    
  "extractor" : {
    "jdbc": { "driver": "oracle.jdbc.driver.OracleDriver",
              "url": "jdbc:oracle:thin:hostname/db",    
              "userName": "username",    
              "userPassword": "password",    
              "query": "select id, A.parentId from Address a where rownum<2"     }    
  },    
  "transformers": [`enter code here`

    { "vertex": { "class": "Address" }},

    { "edge": { "class": "isParentOf",
      "joinFieldName": "parentId",
      "lookup": "Address.Id",
      "direction": "in",
      "skipDuplicates":true
    }
    }
    ],
    "loader": {
    "orientdb": {
      "dbURL": "remote:server/db",
      "dbUser": "user",
      "dbPassword": "passwd!",
      "dbType": "graph",
      "classes": [
        {"name": "Address", "extends": "V"},
        {"name": "isParentOf", "extends": "E"}
      ], "indexes": [
        {"class":"Address", "fields":["ID:string"], "type":"UNIQUE" }
      ]
    }
  }
}
{
“config”:{“log”:“debug”,“parallel”:true},
“提取器”:{
“jdbc”:{“driver”:“oracle.jdbc.driver.OracleDriver”,
“url”:“jdbc:oracle:thin:hostname/db”,
“用户名”:“用户名”,
“用户密码”:“密码”,

“查询”:从地址A中选择id,A.parentId,其中rownumDid您已经在ETL项目上创建了问题?您使用的是哪个版本?否,我将在下周在ETL项目上创建问题。我使用的是orient db community edition 2.1Did您已经在ETL项目上创建了问题?您使用的是哪个版本?否,我将在ETL项目上创建问题下周。我将使用orient db community edition 2.1请检查您的答案并修复您包含的已损坏的JSON。请检查您的答案并修复您包含的已损坏的JSON。