I am currently working on a project to take a data feed which comes in
as a a set of ASCII CSV file and needs to be processed to import data
to a number of tables in an RDBMS. For anyone who might be
experienced these are ISM data, which contain information on
securities and trading for financial institutions.
I've started with loading the CSV records as entities and for that I
found FileHelpers (
http://www.filehelpers.com) which was unbelievably
useful for me. So I can load all of the records in the CSV files into
collections of entities (I have a set of 12 entities one for each type
of record in the files) so first problem solved for the most part.
Next, I have created nHibernate mappings to the RDBMS tables and
created entities for those tables so I can do CRUD operations on these
entities necessary to save the updated values and new transactions
from the ISM entities.
Now, essentially I need to run a process of conversion of these ISM
transactions and securities values into the database entities. I
could perhaps just write some ugly procedural code to do this, but I
really want to try to keep this nice and clean, also it should be
modular. The conversion logic is quite complex in several places and
there will probably be a lot of need for additional logic over time.
I also know for a fact that the RDBMS will be completely replaced
within a year. I also know that it will be required that this
application be able to import the ISM data into both the new and old
database for a period of time.
Finally, I know there will be other sources of data that this
application should handle. Some will be ISM with different ASCII file
formatting, other sources will be fairly different. So again all this
says I need to be able to be able to "plug" these sources and sinks
in, in some way.
So I am wondering if anyone has any suggestions or ideas for
approaches I should consider using (learning) or things I should take
into consideration when creating the conversion parts of this
application?
Thanks,
Chris