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.