I'm currently evaluating different solutions for ETL and Clover looks like a good option.
I installed successfully and was able to create and run the GraphSimpleCopy.
I could create a new graph which copying data from one database table to another dtaabase table. But when I run it, I got the following error messages:
INFO [WatchDog] - Sucessfully started all nodes in phase!
FATAL [WatchDog] - !!! Fatal Error !!! - graph execution is aborting
ERROR [WatchDog] - Node DB_OUTPUT_TABLE0 finished with status: ERROR caused by: null
DEBUG [WatchDog] - Node DB_OUTPUT_TABLE0 error details:
java.lang.NullPointerException
at org.jetel.connection.SQLUtil.getFieldTypes(SQLUtil.java:321)
at org.jetel.component.DBOutputTable.execute(DBOutputTable.java:340)
at org.jetel.graph.Node.run(Node.java:364)
at java.lang.Thread.run(Unknown Source)
WARN [WatchDog] - Interrupted node: DB_INPUT_TABLE0
WARN [WatchDog] - Interrupted node: DB_OUTPUT_TABLE0
WARN [WatchDog] - Interrupted node: SIMPLE_COPY0
I'm wondering whether CloverETL can perform this kind task. If it can, what's wrong with my graph.
Here is my graph:
<?xml version="1.0" encoding="UTF-8"?>
<Graph created="Wed Apr 04 14:20:25 EDT 2007" guiVersion="1.6" licenseType="Unlicensed clover.GUI" modified="Wed Apr 04 15:01:04 EDT 2007" name="CopyDB1" revision="1.2">
<Global>
<Metadata id="Metadata0">
<Record name="defaultRecordName" recordDelimiter="" type="fixed">
<Field name="PROCEDURE_KEY" nullable="true" shift="0" size="0" type="string"/>
<Field name="PROCEDURE_DESC" nullable="true" shift="0" size="0" type="string"/>
</Record>
</Metadata>
<Metadata id="Metadata1">
<Record name="defaultRecordName" recordDelimiter="" type="fixed">
<Field name="PROCEDURE_KEY" nullable="true" shift="0" size="0" type="string"/>
<Field name="PROCEDURE_DESC" nullable="true" shift="0" size="0" type="string"/>
</Record>
</Metadata>
<Connection dbDriver="oracle.jdbc.OracleDriver" dbURL="jdbc:oracle:thin:@resd:1521:resd" driverLibrary="file:/C:/bea9/weblogic91/server/lib/ojdbc14.jar" id="DBConnection0" name="NewInputConnection" password="1234" type="JDBC" user="wmen"/>
<Connection dbDriver="oracle.jdbc.OracleDriver" dbURL="jdbc:oracle:thin:@resd:1521:resd" driverLibrary="file:/C:/bea9/weblogic91/server/lib/ojdbc14.jar" id="DBConnection1" name="NewOutputConnection" password="1234" type="JDBC" user="wmen"/>
</Global>
<Phase number="0">
<Node dbConnection="DBConnection0" enabled="enabled" guiHeight="0" guiName="DB Input Table" guiWidth="0" guiX="73" guiY="67" id="DB_INPUT_TABLE0" sqlQuery="select * from LOAD_PROCEDURE" type="DB_INPUT_TABLE"/>
<Node dbConnection="DBConnection1" enabled="enabled" guiHeight="0" guiName="DB Output Table" guiWidth="0" guiX="368" guiY="78" id="DB_OUTPUT_TABLE0" sqlQuery="INSERT INTO LOAD_PROCEDURE1 VALUES (?, ?)" type="DB_OUTPUT_TABLE"/>
<Node enabled="enabled" guiHeight="0" guiName="Simple Copy" guiWidth="0" guiX="214" guiY="233" id="SIMPLE_COPY0" type="SIMPLE_COPY"/>
<Edge fromNode="DB_INPUT_TABLE0:0" guiBendpoints="" id="Edge0" inPort="0 (Simple Copy)" metadata="Metadata0" outPort="0 (DB Input Table)" toNode="SIMPLE_COPY0:0"/>
<Edge fromNode="SIMPLE_COPY0:0" guiBendpoints="" id="Edge1" inPort="0 (DB Output Table)" metadata="Metadata1" outPort="0 (Simple Copy)" toNode="DB_OUTPUT_TABLE0:0"/>
</Phase>
</Graph>
Thanks,
wendy
I installed successfully and was able to create and run the GraphSimpleCopy.
I could create a new graph which copying data from one database table to another dtaabase table. But when I run it, I got the following error messages:
INFO [WatchDog] - Sucessfully started all nodes in phase!
FATAL [WatchDog] - !!! Fatal Error !!! - graph execution is aborting
ERROR [WatchDog] - Node DB_OUTPUT_TABLE0 finished with status: ERROR caused by: null
DEBUG [WatchDog] - Node DB_OUTPUT_TABLE0 error details:
java.lang.NullPointerException
at org.jetel.connection.SQLUtil.getFieldTypes(SQLUtil.java:321)
at org.jetel.component.DBOutputTable.execute(DBOutputTable.java:340)
at org.jetel.graph.Node.run(Node.java:364)
at java.lang.Thread.run(Unknown Source)
WARN [WatchDog] - Interrupted node: DB_INPUT_TABLE0
WARN [WatchDog] - Interrupted node: DB_OUTPUT_TABLE0
WARN [WatchDog] - Interrupted node: SIMPLE_COPY0
I'm wondering whether CloverETL can perform this kind task. If it can, what's wrong with my graph.
Here is my graph:
<?xml version="1.0" encoding="UTF-8"?>
<Graph created="Wed Apr 04 14:20:25 EDT 2007" guiVersion="1.6" licenseType="Unlicensed clover.GUI" modified="Wed Apr 04 15:01:04 EDT 2007" name="CopyDB1" revision="1.2">
<Global>
<Metadata id="Metadata0">
<Record name="defaultRecordName" recordDelimiter="" type="fixed">
<Field name="PROCEDURE_KEY" nullable="true" shift="0" size="0" type="string"/>
<Field name="PROCEDURE_DESC" nullable="true" shift="0" size="0" type="string"/>
</Record>
</Metadata>
<Metadata id="Metadata1">
<Record name="defaultRecordName" recordDelimiter="" type="fixed">
<Field name="PROCEDURE_KEY" nullable="true" shift="0" size="0" type="string"/>
<Field name="PROCEDURE_DESC" nullable="true" shift="0" size="0" type="string"/>
</Record>
</Metadata>
<Connection dbDriver="oracle.jdbc.OracleDriver" dbURL="jdbc:oracle:thin:@resd:1521:resd" driverLibrary="file:/C:/bea9/weblogic91/server/lib/ojdbc14.jar" id="DBConnection0" name="NewInputConnection" password="1234" type="JDBC" user="wmen"/>
<Connection dbDriver="oracle.jdbc.OracleDriver" dbURL="jdbc:oracle:thin:@resd:1521:resd" driverLibrary="file:/C:/bea9/weblogic91/server/lib/ojdbc14.jar" id="DBConnection1" name="NewOutputConnection" password="1234" type="JDBC" user="wmen"/>
</Global>
<Phase number="0">
<Node dbConnection="DBConnection0" enabled="enabled" guiHeight="0" guiName="DB Input Table" guiWidth="0" guiX="73" guiY="67" id="DB_INPUT_TABLE0" sqlQuery="select * from LOAD_PROCEDURE" type="DB_INPUT_TABLE"/>
<Node dbConnection="DBConnection1" enabled="enabled" guiHeight="0" guiName="DB Output Table" guiWidth="0" guiX="368" guiY="78" id="DB_OUTPUT_TABLE0" sqlQuery="INSERT INTO LOAD_PROCEDURE1 VALUES (?, ?)" type="DB_OUTPUT_TABLE"/>
<Node enabled="enabled" guiHeight="0" guiName="Simple Copy" guiWidth="0" guiX="214" guiY="233" id="SIMPLE_COPY0" type="SIMPLE_COPY"/>
<Edge fromNode="DB_INPUT_TABLE0:0" guiBendpoints="" id="Edge0" inPort="0 (Simple Copy)" metadata="Metadata0" outPort="0 (DB Input Table)" toNode="SIMPLE_COPY0:0"/>
<Edge fromNode="SIMPLE_COPY0:0" guiBendpoints="" id="Edge1" inPort="0 (DB Output Table)" metadata="Metadata1" outPort="0 (Simple Copy)" toNode="DB_OUTPUT_TABLE0:0"/>
</Phase>
</Graph>
Thanks,
wendy
-
We didn't appoint the exact release date, nevertheless this bugfix will be covered by 2.1.2 clover release.
Best regards, Martin. -
It works.
By the way, do you know when the next build will be released?
Many thanks,
Wendy -
Hello Wendy,
try to add an attribute cloverFields="CLOVER_NAME1, ..." into db output table node that provides mapping between clover fields and db attributes. This (automatic) mapping will be fixed in next build. Thanks.
ja
Please sign in to leave a comment.
Comments 3