Как вытравить данные SQL Server в orientdb - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть база данных SQL Server со следующей структурой:

введите описание изображения здесь

и я хочу импортировать данные в OrientDB:

введите описание изображения здесь

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Ваш вопрос слишком короткий, вот что я предлагаю использовать OETL, я не смотрел в Teleporter, но я надеюсь, что это может быть проще и с Teleporter.

Чтобы это сработало, сначала вам нужно создать все уникальные вершины - как Person, так и Relation, а затем выполнить операцию слияния. JSON будет выглядеть примерно так: я совсем не тестировал JSON, он может работать не так, как есть, но он даст вам представление.

{  
   "config":{  
      "log":"debug",
      "parallel":false,
      "haltOnError":false
   },
   "extractor":{  
      "jdbc":{  
         "driver":"com.mysql.jdbc.Driver",
         "url":"jdbc:mysql://localhost/yourdb",
         "userName":"user",
         "userPassword":"pwd",
         "query":"select distinct p.personId, r.relatedPersonId, r.relationId, concat(r.relatedPersonId, '__', r.relationId) as rel_person, r.relationName from Person p inner join Relation r on p.personId = r.personId"
      }
   },
   "transformers":[  
      {  
         "merge":{  
            "joinFieldName":"personId",
            "lookup":"SELECT expand(p) from (match {class: Person, as: p} return p)"
         }
      },
      {  
         "edge":{  
            "class":"RELATIVE",
            "direction":"out",
            "joinFieldName":"rel_person",
            "lookup":"SELECT expand(r) from (match {class: Relation, as: r} return r) where concat(r.relatedPersonId, '__', r.relationId) = ?",
            "unresolvedLinkAction":"NOTHING",
            "edgeFields":{  
               "relation":"${input.relationName}"
            },
            "skipDuplicates":true
         }
      },
      {  
         "field":{  
            "fieldNames":[  
               "relationName"
            ],
            "operation":"remove"
         }
      }
   ],
   "loader":{  
      "orientdb":{  
         "dbURL":"remote:localhost/yourgraphdb",
         "dbUser":"graph_user",
         "dbPassword":"graph_pwd",
         "dbType":"graph",
         "dbAutoCreate":false,
         "batchCommit":1000
      }
   }
}
0 голосов
/ 30 апреля 2018

OrientDB Teleporter - это инструмент, который синхронизирует RDBMS с базой данных OrientDB. Эта функция доступна как для OrientDB Enterprise Edition, так и для OrientDB Community Edition. Но будьте осторожны: в версии для сообщества вы можете перенести исходную реляционную базу данных, но не сможете воспользоваться функцией синхронизации, доступной только в версии для предприятий.

Для получения дополнительной информации: https://orientdb.com/docs/last/Teleporter-Home.html

Надеюсь, это поможет

Привет

...