Skip to main content

Load a simple csv

This guide shows how to load a CSV file into a store thanks to a CSV source.
For a description of what the CSV Source is, refer to the CSV source.

Goal

The goal is to load the first two columns of “trades.csv” file into the Trades store. File content
Expected Trades content We want to load the first two columns into Trades store.

Build a source

First step, in order to load a CSV file into a datastore, is to build a CSV source.
A CSV source is a collection of CSV topics. CSV topics are references to a CSV file or a directory containing CSV files.
They are associated to a parser configuration. Let’s build this parser configuration.
Then build a topic with the parser configuration. This topic will load a single file in the Trades store.
Because of this simple mapping the name of the store is used as a topic name. This topic is registered into the source.

Load into datastore

Second step is to create a channel and use the source to fetch the data into the Datastore.
A channel is the link between a topic and a store.
You can build a channel factory like this.
Finally, we use the source to process the channel.
Source loads topic content using the channel and stream it into the Datastore.
There is two ways of doing so.
Using the fetch utility :
Or in a manual way :
Be careful, ICSVSource is an AutoCloseable resource.
Closing a source closes all the registered topics.

Load with a calculated column

Goal

The goal is still to load the same file into the Trades store, but we want to compute a new column from the amount column. Expected trade content

Load into the datastore

To add a new column which is based on existing ones we use an IColumnCalculator.
This calculator must be registered in the channel factory.
Then you can use your source to do the feeding as usual.