I tried to use ETL as described here  
http://www.orientechnologies.com/docs/last/orientdb-etl.wiki/Import-from-DBMS.html
I used slightly modified approach (I don't know is it a correct one). I 
tried to import BookAuthor as vertex first (went fast and with no 
problems),  than I tried to import Book as a vertex and to create out 
relation from Book to BookAuthor. This lasted for ages (I have about 50 000 
rows in Books table and 150 000 in BookAuthor)

{
  "config": {
    "log": "error"
  },
  "extractor" : {
    "jdbc": { "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
              "url": "jdbc:sqlserver://localhost:1433;DatabaseName=SomeDB",
              "userName": "sa",
              "fetchSize": 500,
              "userPassword": "sa",
              "query": "select * from BookAuthor" }
  },
  "transformers" : [
    { "vertex": { "class": "BookAuthor"} }
  ],
  "loader" : {
    "orientdb": {
      "dbURL": "plocal:d:/orientdb/myorient",
      "dbAutoCreate": true,
      "dbType": "graph",
      "batchCommit": 1000
    }
  }
}

{
  "config": {
    "log": "error"
  },
  "extractor" : {
    "jdbc": { "driver": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
              "url": "jdbc:sqlserver://localhost:1433;DatabaseName=SomeDB",
              "userName": "sa",
              "fetchSize": 500,
              "userPassword": "sa",
              "query": "select * from Book" }
  },
  "transformers" : [
   { "vertex": { "class": "Book"} },
   { "edge": { "class": "Book_BookAuthor", "direction" : "out", 
            "joinFieldName": "bookId",
            "lookup":"BookAuthor.bookId", "unresolvedLinkAction":"CREATE"} 
}   
   
  ],
  "loader" : {
    "orientdb": {
       dbURL": "plocal:d:/orientdb/myorient",
      "dbAutoCreate": true,
      "dbType": "graph",
      "batchCommit": 1000
    }
  }
}





On Monday, 20 October 2014 20:51:22 UTC+2, Lvc@ wrote:
>
> @Bojan, How did you import edges? Can you share the code? It's hard to 
> help without any information.
>
> Lvc@
>
>
> On 20 October 2014 13:31, 'Curtis Mosters' via OrientDB <
> orient-...@googlegroups.com <javascript:>> wrote:
>
>> Is you code secret? I still don't understand the real issue you have, 
>> sorry.
>>
>> Am Montag, 20. Oktober 2014 15:26:27 UTC+2 schrieb Bojan Vukotić:
>>
>>>
>>> Well, that's exactly what I need (and what I already did). I thought 
>>> maybe that ETL has some API that we could use to make this easier (I used 
>>> 'pure' OrientDB API to implement this)
>>>
>>>
>>>
>>> On Monday, 20 October 2014 15:15:27 UTC+2, Curtis Mosters wrote:
>>>>
>>>> I think I don't understand your issue:
>>>>
>>>> First of all you import all Books. So you have all the data in there. 
>>>> Now setting an index on the Book.ID.
>>>>
>>>> After that the Authors are imported. They are matched with the ID of 
>>>> the Book. I think in your case the Author matched with a Book is the same 
>>>> like the Book.ID? Or do you have another file containing the relations of 
>>>> the ID's?
>>>>
>>>> Can you post here the first 10 lines of each file maybe? That would 
>>>> help a low.
>>>>
>>>> Am Montag, 20. Oktober 2014 14:55:10 UTC+2 schrieb Bojan Vukotić:
>>>>>
>>>>> I took example from here http://www.orientechnologies.
>>>>> com/docs/last/orientdb-etl.wiki/Import-from-DBMS.html
>>>>>
>>>>> When can I find ETL/Java example?
>>>>>
>>>>>
>>>>>
>>>>> On Monday, 20 October 2014 14:43:11 UTC+2, Curtis Mosters wrote:
>>>>>>
>>>>>> Well I think it's way better to create a Java example. Then you 
>>>>>> understand what is happening in the background. Otherwhise in my tests 
>>>>>> the 
>>>>>> ETL way had the same speed, but these tests are 3-4 month old. I will 
>>>>>> redo 
>>>>>> them soon. Did you take the example of ETL from OrientDB? Otherwhise 
>>>>>> look 
>>>>>> above for some examples. Or even post yours here?
>>>>>>
>>>>>> Am Montag, 20. Oktober 2014 12:36:57 UTC+2 schrieb Bojan Vukotić:
>>>>>>>
>>>>>>>
>>>>>>> I prefer do it with ETL, if it is possible, I would like to avoid 
>>>>>>> programming. If not, Java is also a good solution. 
>>>>>>>
>>>>>>> So, example how to do it in ETL? And regarding ETL, I was playing 
>>>>>>> with it, it imports vertices nicely, but when I want to import edges 
>>>>>>> (100 
>>>>>>> 000 of them) it is extremely slow :( How to improve this? 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Monday, 20 October 2014 12:16:08 UTC+2, Curtis Mosters wrote:
>>>>>>>>
>>>>>>>> Well you have several ways. Do you want to do it with JAVA oder the 
>>>>>>>> ETL plugin?
>>>>>>>>
>>>>>>>> In any case I think it should be
>>>>>>>>
>>>>>>>> Vertices: Author, Book
>>>>>>>> Edge: WROTE
>>>>>>>>
>>>>>>>> WDYT?
>>>>>>>>
>>>>>>>> Am Montag, 20. Oktober 2014 10:51:03 UTC+2 schrieb Bojan Vukotić:
>>>>>>>>>
>>>>>>>>> Hi guys!
>>>>>>>>>
>>>>>>>>> The whole discussion here is how to create edges from one table to 
>>>>>>>>> another, but what to do if we have more complex cases where we have 
>>>>>>>>> connected 2 (or even more) tables? Example, n:n relation: book and 
>>>>>>>>> authors, 
>>>>>>>>> book can have one or more authors and author can work on one or more 
>>>>>>>>> books.
>>>>>>>>>
>>>>>>>>> Tables:
>>>>>>>>>
>>>>>>>>> Book {
>>>>>>>>>        book_id
>>>>>>>>>        book_name, 
>>>>>>>>>         ....
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> Author {
>>>>>>>>>       author_id,
>>>>>>>>>       author_name, 
>>>>>>>>>       ......
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Author_on_Book {
>>>>>>>>>        ab_id,
>>>>>>>>>        book_id,
>>>>>>>>>        author_id,
>>>>>>>>>        description // describes what this author did on this book 
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> How to migrate this case? Should "Author_on_Book" be migrated as a 
>>>>>>>>> vertex or edge? How to write scripts in this case? (in real life we 
>>>>>>>>> could 
>>>>>>>>> have even more foreign keys in "Author_on_Book" table )
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  -- 
>>
>> --- 
>> 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.

Reply via email to