Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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 定向ETL性能问题,将边缘导入SSD上的plocal_Orientdb_Orientdb2.2_Orientdb Etl - Fatal编程技术网

Orientdb 定向ETL性能问题,将边缘导入SSD上的plocal

Orientdb 定向ETL性能问题,将边缘导入SSD上的plocal,orientdb,orientdb2.2,orientdb-etl,Orientdb,Orientdb2.2,Orientdb Etl,我的目标是在图中导入25M条边,其中有大约50M个顶点。目标时间: 当前导入速度约为150边/秒。远程连接的速度约为100边/秒 提取20694336行(171行/秒)-20694336行->加载20691830个顶点(171个顶点/秒)总时间:35989762ms[0 警告,4个错误] 提取20694558行(156行/秒)-20694558行->加载20692053个顶点(156个顶点/秒)总时间:35991185ms[0 警告,4个错误] 提取20694745行(147行/秒)-2069

我的目标是在图中导入25M条边,其中有大约50M个顶点。目标时间:

当前导入速度约为150边/秒。远程连接的速度约为100边/秒

  • 提取20694336行(171行/秒)-20694336行->加载20691830个顶点(171个顶点/秒)总时间:35989762ms[0 警告,4个错误]
  • 提取20694558行(156行/秒)-20694558行->加载20692053个顶点(156个顶点/秒)总时间:35991185ms[0 警告,4个错误]
  • 提取20694745行(147行/秒)-20694746行->加载20692240个顶点(147个顶点/秒)总时间:35992453ms[0 警告,4个错误]
  • 提取20694973行(163行/秒)-20694973行->加载20692467个顶点(162个顶点/秒)总时间:35993851ms[0 警告,4个错误]
  • 提取20695179行(145行/秒)-20695179行->加载20692673个顶点(145个顶点/秒)总时间:35995262ms[0 警告,4个错误]
我试图在etl配置中启用并行,但看起来它在Orient 2.2.12中完全被破坏了(与2.1中的多线程更改不一致?),并且在上面的日志中只给出了4个错误。对于plocal连接,哑并行模式(运行2+ETL进程)也是不可能的

我的配置:

{
"config": {
    "log": "info",
    "parallel": true
},
"source": {
    "input": {}
},
"extractor": {
    "row": {
        "multiLine": false
    }
},
"transformers": [
    {
          "code": {
            "language": "Javascript",
              "code": "(new com.orientechnologies.orient.core.record.impl.ODocument()).fromJSON(input);"
        }
    },
    {
        "merge": {
            "joinFieldName": "_ref",
            "lookup": "Company._ref"
        }
    },
    {
        "vertex": {
            "class": "Company",
            "skipDuplicates": true
        }
    },
    {
        "edge": {
            "joinFieldName": "with_id",
            "lookup": "Person._ref",
            "direction": "in",
            "class": "Stakeholder",
            "edgeFields": {
                "_ref": "${input._ref}",
                "value_of_share": "${input.value_of_share}"
            },
            "skipDuplicates": true,
            "unresolvedLinkAction": "ERROR"
        }
    },
    {
        "field": {
            "fieldNames": [
                "with_id",
                "with_to",
                "_type",
                "value_of_share"
            ],
            "operation": "remove"
        }
    }
],
"loader": {
    "orientdb": {
        "dbURL": "plocal:/mnt/disks/orientdb/orientdb-2.2.12/databases/df",
        "dbUser": "admin",
        "dbPassword": "admin",
        "dbAutoDropIfExists": false,
        "dbAutoCreate": false,
        "standardElementConstraints": false,
        "tx": false,
        "wal": false,
        "batchCommit": 1000,
        "dbType": "graph",
        "classes": [
            {
                "name": "Company",
                "extends": "V"
            },
            {
                "name": "Person",
                "extends": "V"
            },
            {
                "name": "Stakeholder",
                "extends": "E"
            }
            ]
        }
    }
}
数据样本:

{u-ref:“1072308006473”,“with-to:“person”,“with-id:”010703814320“,”u-type:”是利益相关者“,”是股份的价值“:10000.0}{{u-ref:”10758370000095“,”是股份的价值“:”是股份的价值“,”是股份的价值“,”是股份的价值“,”是股份的价值“,”是股份的价值“,”是股份的价值“,”是股份的价值“,”是股份的价值“:”是股份的价值“,”是股份的价值“,”是股份的“是股份的价值“,”是股份的价值“:”:33150.0}

服务器的规格是:谷歌云上的实例、PD-SSD、6CPU、18GB RAM

顺便说一句,在同一台服务器上,我使用远程连接导入顶点的速度达到了~3k/秒(速度仍然太慢,但对于我当前的数据集来说是可以接受的)

还有一个问题:是否有可靠的方法可以将导入速度提高到每秒10k或至少5k?我不想关闭索引,它仍然是数百万条记录,而不是数十亿条

更新

几个小时后,性能继续恶化

  • 提取23146912行(56行/秒)-23146912行->加载23144406个顶点(56个顶点/秒)总时间:6088697ms[0 警告,4个错误]
  • 提取23146981行(69行/秒)-23146981行->加载23144475个顶点(69个顶点/秒)总时间:60887967毫秒[0 警告,4个错误]
  • 提取23147075行(39行/秒)-23147075行->加载23144570个顶点(39个顶点/秒)总时间:60890356ms[0 警告,4个错误]

日志中有哪些错误?您可以在github上打开一个问题…公司上有索引吗?甚至个人上也有索引吗?当然,两个索引都有(hashmap唯一)。关于错误:它是“当前数据库实例在当前线程上不活动”。关于这种类型的异常有很多提及,所以我决定OrientDB团队已经承认了这个问题。日志中有哪些错误?您可以在github上打开一个问题…公司上有索引吗?甚至个人上也有索引吗?当然,两个索引都有(hashmap唯一)。关于错误:它是“当前数据库实例在当前线程上不活动”。关于这种类型的异常有很多提及,所以我决定OrientDB团队已经承认了这个问题。