如何将SQL Server数据转换为orientdb

时间:2018-04-29 14:45:58

标签: orientdb orientdb-etl

我有一个SQL Server数据库,其结构如下:

enter image description here

我希望将数据导入OrientDB:

enter image description here

我该怎么做?

2 个答案:

答案 0 :(得分:0)

OrientDB Teleporter是一个将RDBMS与OrientDB数据库同步的工具。此功能适用于OrientDB Enterprise Edition和OrientDB Community Edition。但请注意:在社区版中,您可以迁移源关系数据库,但无法享受同步功能,仅在企业版中可用。

有关详细信息:https://orientdb.com/docs/last/Teleporter-Home.html

希望有所帮助

此致

答案 1 :(得分:0)

你的问题太简短了,我建议使用OETL,我没有看过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
      }
   }
}