This is a great example Luca, thanks first of all. But could you additionally add information about the MySQL schema and do I understand it correctly that you get the classes Person,Friend and an edge. But where comes the friend data?
Am Donnerstag, 21. August 2014 13:25:47 UTC+2 schrieb Lvc@: > > Hi Curtis, > ETL is very powerful and we're improving it everyday with users' feedback. > We want to let it to be final for 2.0, so we can bundle with it. By the way > Enterprise > Edition <http://www.orientechnologies.com/orientdb-enterprise> will have > a Web Interface to edit it, and in the future also to debug it. > > Unfortunately I don't understand in your example table1 & 2 with both > name_id field. Look at this example about Friendship. I want to connect a > social network like app. > > This is an example of ETL configuration. My comments begins with // but > remove them from real config file: > > { > config: { > verbose: true > }, > begin: [ > ], > extractor: { > "jdbc": { "driver": "com.mysql.jdbc.Driver", > "url": "jdbc:mysql://localhost/mysocialnetwork", > "userName": "root", > "userPassword": "root", > "query": "select * from profile" > } > }, > transformers : [ > { > // THIS IS ONLY A LOG, USEFUL TO TRACE WHAT ARRIVES FROM MYSQL > log: { > prefix: "MySQL -> " > } > }, > { > merge: { > // LOOKUP BY ID: IF ALREADY PRESENT MERGE THE FIELDS BY > OVERWRITING THE DIFFERENT ONES > joinFieldName: "*id*", > lookup: "Profile.*id*" > } > }, > { > vertex: { > // TRANSFORM IT IN A VERTEX > class: "Profile" > } > }, > { > edge: { > // CONNECT THE FRIEND IN MYSQL COLUMN 'friend_id' > class: "Friend", // Friend is the edges' class > joinFieldName: "friend_id", // > lookup: "Profile.id", > unresolvedLinkAction: "CREATE", // IF DOESN'T EXIST YET, CREATE > THE VERTEX EMPTY. WILL BE FURTHER UPDATED > if: "friend_id is not null" > } > }, > { > log: { > prefix: "Vertex -> " > } > } > ], > loader : { > orientdb: { > dbURL: "remote:localhost/yourdb", > dbUser: "admin", > dbPassword: "admin", > dbAutoCreate: true, > tx: true, > batchCommit: 1000, > dbType: "graph", > classes: [ > ], > indexes: [ > ] > } > } > } > > > Lvc@ > > ᐧ > > > On 21 August 2014 13:05, 'Curtis Mosters' via OrientDB < > [email protected] <javascript:>> wrote: > >> Hey so I have now some experiences with ETL. I think this is great for >> import. That's why I want to improve the importing process now. >> >> 1. First of all is it possible to run several imports parallel(not >> with several consoles) or if one is done start another instantly? >> 2. How do I create an edge ( >> https://github.com/orientechnologies/orientdb-etl/wiki/Transformer#edge >> is not helpful for me) >> >> Let's say I have 2 tables in MySQL: >> >> table1 with {*name_id*,*name*} and table2 with {*name_id*,*text_id*, >> *text*} >> >> Now I want to get them connected (name_id) in OrientDB. >> >> One way would now be to import both tables as Class. That's easy and then >> create edges with the *name_id*. Everything is fine with that, but it >> would be much easier to generate edges with ETL if that is anyway possible. >> So I don't know what is more efficient. Someone else also said that Sails ( >> https://github.com/vjsrinath/sails-orientdb) might be a good choice. >> >> If ETL allows that I could imagine about the following way: >> >> - read line of table1 -> safe in memory >> - look in table2 if name_id exists >> - -> if yes, create vertex Tabel1 and Table2 >> - -> if no, create vertex Tabel1 and Table2 and create an edge >> - and so on >> >> Of course this is very crazy if you imagine 30 tables or so. Was just an >> idea, just to check if that is already possible somehow. >> >> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "OrientDB" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
