Could you maybe take some time to create such an example? The current "edge" is bit hard to understand:
edge: { class: "hasPost", joinFieldName: "person_id", lookup: "person.id", unresolvedLinkAction: "CREATE", if: "person_id is not null" } How can I say here to Link from person on post? I just need a small example and also the MySQL strcuture if possible. That would make everything clear. Thanks Luca. Am Montag, 25. August 2014 13:23:55 UTC+2 schrieb Lvc@: > > Curtis, > You could create 2 or more etl scripts, some that extract vertices and > other that extract edges. > > Lvc@ > > ᐧ > > > On 25 August 2014 12:25, 'Curtis Mosters' via OrientDB < > orient-...@googlegroups.com <javascript:>> wrote: > >> Hi Luca, well your example is just reading one table from MySQL. One >> table with creating edges on it's entries. But in the usual cases that's >> not the way how to import from a MySQL. Or maybe I just didn't understood >> that example completely. But so far as I have seen it, you used one table >> from MySQL that contained {id,...,friend_id}. You created profiles on that >> id and then created edge on that id's. Is that right? >> >> But just once again I have those data as usually stored in another table. >> So that cannot work for me. >> >> Am Donnerstag, 21. August 2014 15:56:05 UTC+2 schrieb Lvc@: >>> >>> ᐧ >>> On 21 August 2014 14:45, 'Curtis Mosters' via OrientDB < >>> orient-...@googlegroups.com> wrote: >>> >>>> 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? >>>> >>> >>> >>> Friend in my case is an Edge class. (create class Friend extends E). >>> It's useful to create ad-hoc edge classes instead that the generic "E": >>> >>> http://www.orientechnologies.com/docs/1.7.8/orientdb.wiki/ >>> Graph-Schema.html >>> >>> Lvc@ >>> >>> >>> >>>> >>>> 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 < >>>>> orient-...@googlegroups.com> 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/orientechn >>>>>> ologies/orientdb-etl/wiki/Transformer#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 orient-databa...@googlegroups.com. >>>>>> >>>>>> 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 orient-databa...@googlegroups.com. >>>> 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 orient-databa...@googlegroups.com <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 orient-database+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.