Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 16, 2023. It is now read-only.

A tool to migrate an existing database to a graph database

License

NotificationsYou must be signed in to change notification settings

microsoft/MigrateToGraph

This tool allows you to migrate existing database to a graph database

Conversions supported:

  • json to gremlin
  • json to graph
  • sql to graph

Installation (CLI)

npm i -g migrate-to-graph

Usage (CLI)

Usage: migrate-to-graph [options] [command]Options:  -V, --version                           output the version number  -h, --help                              output usage informationCommands:  jsontogremlin <inputFile> <templateFile> <outputFile>  jsontograph <inputFile> <templateFile> <graphConfigFile>  sqltograph <sqlConfigFile> <query> <templateFile> <graphConfigFile>

Installation (Lib)

npm i --save migrate-to-graph

Usage (Lib)

vargraphtool=require('migrate-to-graph');varresult=graphtool.jsonToGraph(json,template);//or ES6import{jsonToGraph}from'migrate-to-graph';

SQL Config File

{"dialect":"mssql",//dialect to use, 'mysql'|'sqlite'|'postgres'|'mssql'"username":"test","password":"password","host":"server","database":"database","options":{"encrypt":true//set to true if you need encryption}}

Graph Config File

{"host":"server","password":"password","user":"username","port":"443","ssl":true,"batchSize":10,//No. of gremlin queries to execute in parallel (Default: 10)"upsert":false//Set to true if you want to upsert vertices or edges (Default: false)}

Note:For Azure cosmos graph DB , user is '/dbs/{dbName}/colls/{collectionName}' and password is its secretKey

Template

To transform data to a graph, you need to transform the data into vertex and edge format.

Using a template you can convert a single data object into one/many vertexes and edges

We use handlebars to convert input to vertex / edge format

Example

template:

{  "vertices":[    {      "id": "{{myId}}",      "label": "vertexLabel",      "properties":{        "name": "{{myName}}"      }    },    {      "id": "{{myFriendId}}",      "label": "vertexLabel",      "properties":{        "name": "{{myFriendName}}"      }    }  ],  "edges":[    {      "label": "friend",      "from": "{{myId}}",      "to": "{{myFriendId}}",      "properties": {        "value" :{{friendshipLvl}}      }    }  ]}

Note: You can specify as many vertices and edges as you want as long as it transforms to Vertex-Edge format

Input Data(a single entity from array of data):

  {"myId":"1","myName":"abc","myFriendId":"2","myFriendName":"xyz","friendshipLvl":3  }

Transformed Data:

{"vertices":[    {"id":"1","label":"vertexLabel","properties":{"name":"abc"      }    },    {"id":"2","label":"vertexLabel","properties":{"name":"xyz"      }    }  ],"edges":[    {"label":"friend","from":"1","to":"2","properties": {"value" :3      }    }  ]}

Vertex-Edge Format

This is a custom format inspired from the way Azure Cosmos Graph DB stores data. We use this format to convert it to gremlin queries so you need to provide a template which transforms to vertex-edge format

Model for Vertex and Edge

exportinterfaceVertex{id:string;label:string;//label for the vertextype:'vertex';properties:{[key:string]:any;//Represents all the properties you wish to add to the vertex};}exportinterfaceEdge{id?:string;label:string;//label for the edgetype:'edge';to:string;//id of vertex from which you want the edge to startfrom:string;//id of vertex to which you want the edge to endproperties?:{[key:string]:any;//Represents all the properties you wish to add to the edge};}

Vertex-Edge Format expects you specify an array of vertices and edges

{"vertices":[    {"id":"1","label":"vertexLabel","properties":{"name":"abc"      }    },    {"id":"2","label":"vertexLabel","properties":{"name":"xyz"      }    }  ],"edges":[    {"label":"friend","from":"1","to":"2","properties": {"value" :3      }    }  ]}

About

A tool to migrate an existing database to a graph database

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors4

  •  
  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp