-
Notifications
You must be signed in to change notification settings - Fork 871
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ETL giving up after one error #6872
Comments
Can you provide me the configuration and sample data? |
robfrank, Linking items from the same class. You need to edit filename in json and make your own for the inital data to be linked. |
Sorry, but I don't understand how to use your samples. The config json seems truncated. |
The json is deliberately truncated. I expect you to fill in the remaining stuff yourself, but here it is, passwords removed.
{
Hope this helps. |
just to be sure and don't waste my time:
|
That's correct. The idea is to make sure the linking fails. Do you
|
The ETL processes fails the same way, even with other transformers. I believe ODB should consider { Thank you. |
Hi, I'll take care of this issues next week. Stay tuned |
A silly question, did you try with the flag haltOnError set to false? |
This is not a silly question. I did not use it and don't know if it works, so I have to test it. The question is |
haltOnError set to false is unfortunately not any helpful option. |
- removes system out in favor of OLogManager - adds specialized logging config file to etl scripts (bat/sh) - renames classes adding OETL prefix to all - refactors tests to use one in memory db for each test method refs #6872
Logging in case of errors is improved with input data, executed command and exception message:
WDYT? I don't have any idea in how to implement a dry run. How to do a "dry run " interaction with the database? My suggestion is to use the plocal or even memory connection to test the ETL process. |
This makes perfect sense to me. The notion about 'dry run' was just a way
to express an idea.
Are this messages shown when log is ERROR or when any error is detected?
…On 28 December 2016 at 19:15, Roberto Franchini ***@***.***> wrote:
Logging in case of errors is improved with input data, executed command
and exception message:
[445:command] ERROR exception=No edge has been created because no target vertices
DB name="graph" - input={protein1:ENSP00000000233,protein2:ENSP00000270115,combined_score:204} - command=sql.create edge InteractWith from (select from HumanProtein where STRINGproteinId= 'ENSP00000000233') to (select from HumanProtein where STRINGproteinId='ENSP00000270115') set Score=204
Error in Pipeline execution: com.orientechnologies.orient.core.exception.OCommandExecutionException: No edge has been created because no target vertices
DB name="graph"
WDYT?
I don't have any idea in how to implement a dry run. How to do a "dry run
" interaction with the database? My suggestion is to use the plocal or even
memory connection to test the ETL process.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#6872 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ASkWeOGgkVcbKNMa48ql0Jl_LtI3_TRIks5rMqc8gaJpZM4KnF2r>
.
--
Tore Austrått
phone +47 90657231
|
When the error is detected. This fix will be part of 2.2.15, but you can download a snapshot version of etl and use it. |
OrientDB Version, operating system, or hardware.
Operating System
Error in Pipeline execution: com.orientechnologies.orient.core.exception.OCommandExecutionException: No edge has been created because no target vertices
Why give up(see below log)? Can't this process just report the problem and continue? With millions of edges in question this is behavior is inefficient and wasting lots of time. In the other ETL transformers you can specify "unresolvedLinkAction". Why not add this(or similar features) to the Command Transformer also?
Expected behavior and actual behavior
From a three column csv-file(arg1,arg2,arg3) arguments are taken to create edges with one property.
The essence of the actual ETL json config is this:
"command" :
create edge from (select from ClassX where $input.arg1..) to (select from ClassX where $input.arg2..) set something=$input.arg3
Here is what happens if one target vertice is not found:
excerpt from logging:
Error in Pipeline execution: com.orientechnologies.orient.core.exception.OCommandExecutionException: No edge has been created because no target vertices
DB name="XXXX"
DB name="XXXX"
Steps to reproduce the problem
You need a class containing some 1000' records and a list of the vertices to be linked (see above).
The text was updated successfully, but these errors were encountered: