orientdb медленный распределенный импорт etl

У меня есть ETL, который выглядит примерно так, как показано ниже, за исключением того, что мы извлекаем 8 полей из mysql и имеем 8 классов вершин и 7 классов ребер.

{
      "config": {
        "parallel": true
      },
      "extractor": {
        "jdbc": {
          "driver": "com.mysql.jdbc.Driver",
          "url": "jdbc:mysql://<some IP>/car_database",
          "userName": "admin",
          "userPassword": "admin",
          "query": "select uid, type, color, age from car_info;",
          "fetchSize": -2147483648
        }
      },
      "transformers": [
        {
          "vertex": {
            "class": "Car"
          }
        },
        {
          "field": {
            "fieldName": "value",
            "expression": "uid"
          }
        },
        {
          "edge": {
            "class": "HasType",
            "lookup": "Type.value",
            "joinFieldName": "type",
            "unresolvedLinkAction": "CREATE"
          }
        },
        {
          "edge": {
            "class": "HasColor",
            "lookup": "Color.value",
            "joinFieldName": "color",
            "unresolvedLinkAction": "CREATE"
          }
        },
        {
          "edge": {
            "class": "HasAge",
            "lookup": "Age.value",
            "joinFieldName": "age",
            "unresolvedLinkAction": "CREATE"
          }
        },
        {
          "field": {
            "fieldNames" : [
              "uid",
              "type",
              "color",
              "age"
            ],
            "operation": "remove"
          }
        }
      ],
      "loader": {
        "orientdb": {
          "dbURL": "remote:<some IP >/CarGraph",
          "dbType": "graph",
          "txUseLog": false,
          "wal": false,
          "tx": false,
          "batchCommit": 1000,
          "classes": [
            {
              "name": "Car",
              "extends": "V"
            },
             {
                "name": "Type",
                "extends": "V"
              },
              {
                "name": "HasType",
                "extends": "E"
              },
              {
                "name": "Color",
                "extends": "V"
              },
              {
                "name": "HasColor",
                "extends": "E"
              },
              {
                "name": "Age",
                "extends": "V"
              },
              {
                "name": "HasAge",
                "extends": "E"
              }
          ],
          "indexes": [
            {
              "class": "Car",
              "fields": [
                "value:string"
              ],
              "type": "UNIQUE"
            },
            {
              "class": "Type",
              "fields": [
                "value:string"
              ],
              "type": "UNIQUE"
            },
            {
              "class": "Color",
              "fields": [
                "value:string"
              ],
              "type": "UNIQUE"
            },
            {
              "class": "Age",
              "fields": [
                "value:string"
              ],
              "type": "UNIQUE"
            }
          ]
        }
      }
    }

Вот мой файл по умолчанию распределенный-db-cofig:

{
  "autoDeploy": true,
  "hotAlignment": false,
  "executionMode": "undefined",
  "readQuorum": 1,
  "writeQuorum": 1,
  "failureAvailableNodesLessQuorum": false,
  "readYourWrites": true,
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "index": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

Я пытаюсь реализовать ориентированный кластер, в настоящее время с 2 узлами на отдельных серверах. Когда я запускаю импорт на одном из графических блоков (только 200 строк из нашей текущей среды QA, производительность будет 35 миллионов плюс), я вижу время загрузки 1-3 узла в секунду, даже если для кворума установлено значение 1. I пробовал 5-6 различных комбинаций, переключение параллелей, значений кворума, различные настройки сервера, но пока загрузчик указывает на удаленную базу данных, это просто очень медленно.

Тот же etl запускает 1500-2000/ с на моем локальном компьютере в виде локального графа.

Самый быстрый способ, который я нашел, - запустить импорт с загрузчиком, указывающим на граф plocal. Затем, как только он закончит, перезапустите серверы как распределенные и позвольте 2 узлам синхронизироваться.

Что-то мне не хватает, или какая-то конфигурация сервера, которая может вызвать медленный импорт? Ориент версия 2.1.6.

0 ответов

Другие вопросы по тегам