This page provides a description of how to load a new file into a new store within Atoti Market Risk. The techniques employed are generic examples that can be extended, adapted and repeated for any use case you encounter. In all cases, we make minimal changes to the MR application.Documentation Index
Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
Use this file to discover all available pages before exploring further.
Step 1 - Move data to the relevant directory
For this example, we want to bring any custom data to an appropriate folder inside of :/mr-application/src/main/resources/data within the
/2023-09-26 folder and name our file Custom.csv.
| AsOfDate | RiskClass | CustomProjected |
|---|---|---|
| 2018-09-26 | Commodity | -6640.633693 |
| 2018-09-26 | GIRR | 14020.37649 |
| 2018-09-26 | CSR Sec CTP | 8386.767854 |
| 2018-09-26 | CSR Sec non-CTP | 19218.3336 |
| 2018-09-26 | Commodity | -2460.048584 |
| 2018-09-26 | Equity | 8274.302903 |
| 2018-09-26 | FX | 2150.845785 |
| 2018-09-26 | GIRR | 17537.8908 |
| 2018-09-26 | CSR non-Sec | -25353.39868 |
| 2018-09-26 | DRC Sec non-CTP | 11319.08548 |
| 2018-09-26 | FX | 25977.18728 |
| 2018-09-26 | Commodity | 11714.89133 |
| 2018-09-26 | Equity | -19844.11309 |
| 2018-09-26 | FX | 8906.302165 |
| 2018-09-26 | GIRR | 19617.16455 |
| 2018-09-26 | DRC non-Sec | 17134.37517 |
Step 2 - Define the datastore and references
To add a new datastore, we will need to create aDatastoreConfiguratorConsumer bean that will be used by
the addModifications() method inside the DatastoreConfiguratorSetup class.
Step 3 - Create channel parameters for our data loading topic
The channel parameters for our store include store name, topic name, and file pattern. Ensure that a file pattern property is available in the application, either explicitly in a file or as a default in a Spring BootConfigurationProperties object.
ChannelParametersHolderOperator bean:
Step 4 - Include your custom configuration class in your application
You can include your new configuration class using the usual mechanisms: Spring auto-configuration or component scanning, explicit imports. If you want to import it into the standard Atoti Market Risk application, navigate to theMarketRiskConfig class (mr-application/src/main/java/com/activeviam/mr/application/main/MarketRiskConfig.java) and add the class to the @Import annotation:
When using DirectQuery
When using DirectQuery, we must perform Step 2 and configure our datastore correctly. Then we have to modify our remote database to include the new Table/Fields. When doing so, we must ensure we follow the naming convention of our Name Mapper. Our database only needs to contain the new fields and/or stores. When the application starts, the Datastore description is converted into a database description. The remote database needs to contain the modifications before we start the application.Adding a Field with DirectQuery
When adding a new field, we must add it to the datastore description as outlined in step 2 and also ensure the field exists in our database in the correct table. Then when the application starts, the datastore description (containing the custom field) will be converted into a DirectQuery database description and the field can be used for Hierarchies or treated the same as other DirectQuery fields.When using custom fields with DirectQuery it is important to remember that datastore queries and getByKey queries are not recommended due to the performance
overhead.