Customer Portal

Set appropriate parameter in defaultProperties file.

Comments 10

  • Avatar
    jurban
    0
    Comment actions Permalink
    Hi,

    regarding your troubles with changing the parameters of CloverETL, please see the documentation here: http://www.cloveretl.com/documentation/ ... tings.html . In short - there's basically two ways:
    - modifying the properties file. It can be found in the CLOVER_INSTALLATION/plugins/com.cloveretl.gui/lib/lib/cloveretl.engine.jar file inside the org/jetel/data subdirectory.
    - create a small property file of your own, and point the executed graph to it. This is also described in the documentation, but the point is that you need to pass the "-config path_to_your_config_file" to the executed graph. Please take care to pass the correct path, e.g. an absolute path. The file can contain just the one property you want to change, which is Record.MAX_RECORD_SIZE in your case.

    Additionally, we're releasing CloverETL version 3.2 early next week, which has greatly improved handling or big records - it's edges can dynamically grow as needed. So in the new version you will almost never need to change the property.

    Regarding your issue with string size - this was already encountered by someone else, please see forum post: viewtopic.php?f=4&t=4930 . In short, you can set the field size to empty value - this will not harm you.

    Best regards,
  • Avatar
    julrych
    0
    Comment actions Permalink
    Hi sgehret,

    Fixing the data buffer size is prety easy as you can do it by overriding default engine properties as described in documentation. In your case, the engineProperties file should contain the following four entries:

    Record.MAX_RECORD_SIZE = 2097152
    DataParser.FIELD_BUFFER_LENGTH = 2097152
    DataFormatter.FIELD_BUFFER_LENGTH = 2097152
    DEFAULT_INTERNAL_IO_BUFFER_SIZE = 2097152
    Graph.DIRECT_EDGE_FAST_PROPAGATE_NUM_INTERNAL_BUFFERS=1

    All the sizes should be kept at the same value. You may need to incrementally increase the sizes in case the transfered data is larger. However, please do not set them to unnecessarily huge number as you may run into memory allocation issues.

    If you have not done that yet, I recommend using byte or cbyte data type for BLOB data. Please leave the field size in metadata empty. It is used only for reading from/writing to fixed-length files.

    Configure all edges transferring large data as "direct fast propagate" (right click on the edge and select Edge type -> Direct fast propagate


    As a side note, handling large data is going to be significantly improved in CloverETL 3.2 which should relief you from performing the above configuration of overriding default engine properties.
  • Avatar
    sgehret
    0
    Comment actions Permalink
    Hi,

    Thanks for the information. However, I don't have a org/jetel/data subdirectory. That is why I submitted my request. I am just evaluating ETL tools, so they are all very new to me. I am an Oracle PL/SQL Developer and can do conversions in that. But my company wants to use a Graphical ETL tool and asked me to research. So I downloaded Clover and others and just started playing around in them. I figured I would tackle the hardest issue first.

    I will try my hand at a local configuration. I'll post a followup to let you know how I make out.

    Thanks again,
    Scott
  • Avatar
    sgehret
    0
    Comment actions Permalink
    Hi,

    I was able to create a local defaultProperties file with the code provided by Jan. I had to up the numbers to get my simple transformation to work. But it did work. And now I hear version 3.2 is out and I will be downloading it and trying it out.

    Thanks very much for your great help and support.

    Scott
  • Avatar
    julrych
    0
    Comment actions Permalink
    Hi Scott,

    yesterday, we have released CloverETL 3.2 which improves large object handling and introduces memory footprint optimizations.

    The contents of the engineProperties file for CloverETL 3.2 should be as follows:

    Record.RECORD_LIMIT_SIZE = 33554432
    Record.FIELD_LIMIT_SIZE = 33554432
    Graph.DIRECT_EDGE_FAST_PROPAGATE_NUM_INTERNAL_BUFFERS = 1

    You might want to increase Record.RECORD_LIMIT_SIZE and Record.FIELD_LIMIT_SIZE in case you transfer data larger than 32 MB.

    Regards,
    Jan
  • Avatar
    sgehret
    0
    Comment actions Permalink
    Hi Jan,

    Thanks very much. I downloaded v3.2 and changed my defaultProperties to what you suggested and that worked great. And after our Webex session today, I now know why I was having trouble getting the image transformations to work. Thanks for the info about the picture data being stored as TEXT is not supported.

    That leads me to a question, though. Will it be possible to get CloverETL to support pictures stored as data type TEXT? This is quite common in our line of work.

    Thanks,
    Scott
  • Avatar
    julrych
    0
    Comment actions Permalink
    Hi Scott,

    Storing any binary data in TEXT column is not a good idea because of the encoding conversions applied to the TEXT column. Using some binary data type such as IMAGE or VARBINARY is the way to go.

    If you configure all readers and writers to the same encoding, then you should be able to read/write binary data into TEXT column. It must be the same encoding originally used to load data into database. Because of the binary nature of picture data, there still may have been some one-way conversions when data was written to database which you won't be able to convert back when reading. I strongly recommend against doing this. Storing purely binary data in non-binary data type is simply not a good idea.
  • Avatar
    sgehret
    0
    Comment actions Permalink
    Hi Jan,

    I totally agree with what you say about storing binary picture data in the TEXT data type. But it was supported by Microsoft until now. And in our business, there are lots of companies using old versions of databases (e.g. SQL Server 2000, Access97, Btrieve 5, etc) and we cannot change them to use another format.

    But just to inform you, IMAGE data type is being deprecated by Microsoft and won't be in future versions (beyond 2008 R2) of SQL Server. They suggest using varbinary for binary data.

    It's not uncommon in our industry to be using old and/or deprecated databases. Even we still use Oracle 9i.

    So is there a way to request a change in CloverETL to support images stored in TEXT fields?
  • Avatar
    deepakkaushik
    0
    Comment actions Permalink
    Hi,

    We are facing similar issue for one of our graphs.We want to change default property file just for one graph, not for all graphs. How to make clover server to understand that it need to access this file for engine properties just for one particular graph.We are running the graphs through clover server. We followed following instruction-

    http://doc.cloveretl.com/documentation/ ... tings.html


    we used -Dclover.engine.config.file=defaultProperties.file but clover is still using same properties and did not make any change in its behavior. Can you please help us over there to make clover understand that it need to access this file for this particular graph.
    I am attaching screenshots of file location and vm . But it is not affecting when I launch graph from clover server.

    Thanks and Regards
    Deepak Kaushik
  • Avatar
    Pedro Vazquez Rosario
    0
    Comment actions Permalink
    Hi deepakkaushik,

    Unfortunately, its not possible to change the default properties file on a given server graph. If you which to change default properties file it will take effect on a Server level (all your graphs on the server will be affected). You can accomplish this by adding -Dclover.engine.config.file=defaultProperties.file in the sentv.sh or sent.bat (depending on the OS).

Please sign in to leave a comment.