Datastore Helper implementation within MR
This page provides implementation details about the usage of the Datastore Helper 3.3.0-AS6.0 library within Atoti Market Risk, focusing on the wiring between different datastore definitions and customizations. For documentation of the library itself, see the Datastore Helper Documentation.
Implementations of the AConfigurableSchema class
All the MR libraries datastores are provided as
extensions of the AConfigurableSchema
and ATenorAwareSchema
classes. These classes are exposed as individual beans or annotated as @Configuration
,
then collected and applied to the IDatastoreConfigurator
object in the DatastoreConfiguratorSetup
class.
The full list of store definitions is as follows:
Class | Datastore contents | Exposed as |
---|---|---|
CubeMarketDataStore |
Cube market data. | A bean in the CubeMarketDataRetrievalConfig class. |
CurveMarketDataStore |
Curve market data. | A bean in the CurveMarketDataRetrievalConfig class. |
FxRateMarketDataStore |
FX rates. | A bean in the FxRateMarketDataRetrievalConfig class. |
SpotMarketDataStore |
Spot market data. | A bean in the SpotMarketDataRetrievalConfig class. |
SurfaceMarketDataStore |
Surface market data. | A bean in the SurfaceMarketDataRetrievalConfig class. |
BookHierarchyStoreConfig |
A multi-level book hierarchy. | @Configuration class wired directly. |
BookParentChildStoreConfig |
A parent-child book hierarchy. | @Configuration class wired directly. |
CounterpartyHierarchyStoreConfig |
A multi-level counterparty hierarchy. | @Configuration class wired directly. |
CounterpartyParentChildStoreConfig |
A parent-child counterparty hierarchy. | @Configuration class wired directly. |
CounterpartyStoreConfig |
Counterparty information. | @Configuration class wired directly. |
CountryStoreConfig |
Country information. | @Configuration class wired directly. |
LegalEntityHierarchyStoreConfig |
A multi-level legal entity hierarchy. | @Configuration class wired directly. |
LegalEntityParentChildStoreConfig |
A parent-child legal entity hierarchy. | @Configuration class wired directly. |
MarketDataSetStoreConfig |
Market data set information. | @Configuration class wired directly. |
MarketShiftStoreConfig |
Market shifts. | @Configuration class wired directly. |
QuantilesStoreConfig |
The quantile method analysis hierarchy. | @Configuration class wired directly. |
RiskFactorsCatalogueStoreConfig |
Risk factors information. | @Configuration class wired directly. |
RoundingStoreConfig |
The rounding method analysis hierarchy. | @Configuration class wired directly. |
ScenariosStoreConfig |
Scenarios per set. | @Configuration class wired directly. |
TradeAttributesStoreConfig |
Trade attributes. | @Configuration class wired directly. |
CounterpartyToCountryReferenceConfig |
References between the Counterparty and Country stores. | @Configuration class wired directly. |
TradeAttributesToBookHierarchyReferenceConfig |
References between the Trade Attributes and Book Hierarchy stores. | @Configuration class wired directly. |
TradeAttributesToCounterpartyHierarchyReferenceConfig |
References between the Trade Attributes and Counterparty Hierarchy stores. | @Configuration class wired directly. |
TradeAttributesToCounterpartyReferenceConfig |
References between the Trade Attributes and Counterparty stores. | @Configuration class wired directly. |
TradeAttributesToLegalEntityHierarchyReferenceConfig |
References between the Trade Attributes and Legal Entity Hierarchy stores. | @Configuration class wired directly. |
PnLStoreConfig |
Standard PnL store. | @Configuration class wired directly. |
PnLAggregatedStoreConfig |
Denormalized store for PnL aggregated imports. | @Configuration class wired directly. |
CorporateActionStoreConfig |
Split ratio and dividend data for the vectorized sensitivities. | @Configuration class wired directly. |
CorrelationMarketDataStore |
Correlation market data. | A bean in the CorrelationMarketDataRetrievalConfig class. |
DividendMarketDataStore |
Dividend market data. | A bean in the CorrelationMarketDataRetrievalConfig class. |
DynamicTenorsStoreConfig |
Dynamic tenors for rebucketing. | @Configuration class wired directly. |
MarketDataStoreConfig |
Market data for the scalar sensitivities. | @Configuration class wired directly. |
SensiLaddersStoreConfig |
Sensitivity ladders. | @Configuration class wired directly. |
SplitRatioMarketDataStore |
Split ratios for equity instruments. | A bean in the CorporateActionMarketDataRetrievalConfig class. |
TenorsStoreConfig |
Tenor definitions for the vectorized sensitivities. | @Configuration class wired directly. |
TradeSensitivitiesStoreConfig |
Standard scalar sensitivity data. | @Configuration class wired directly. |
VectorMarketDataStoreConfig |
Market data for the vectorized sensitivities. | @Configuration class wired directly. |
VectorTradeSensitivitiesStoreConfig |
Standard vectorized sensitivity data. | @Configuration class wired directly. |
SensiAggregatedStoreConfig |
Denormalized store for scalar sensitivity aggregated imports. | @Configuration class wired directly. |
SensiFlatStoreConfig |
Denormalized store for scalar sensitivity store-level imports. | @Configuration class wired directly. |
VectorSensiAggregatedStoreConfig |
Denormalized store for vectorized sensitivity aggregated imports. | @Configuration class wired directly. |
VectorSensiFlatStoreConfig |
Denormalized store for vectorized sensitivity store-level imports. | @Configuration class wired directly. |
TradeSensitivitiesToRiskFactorsCatalogueReferenceConfig |
References between the Trade Sensitivities and Risk Factors Catalogue stores. | @Configuration class wired directly. |
TradeSensitivitiesToTradeAttributesReferenceConfig |
References between the Trade Sensitivities and Trade Attributes stores. | @Configuration class wired directly. |
VaRStoreConfig |
Standard VaR data. | @Configuration class wired directly. |
VaRAggregatedStoreConfig |
Denormalized store for VaR aggregated imports. | @Configuration class wired directly. |
VaRFlatStoreConfig |
Denormalized store for VaR store-level imports. | @Configuration class wired directly. |
Several additional classes are provided to allow groups of stores and references to be imported together:
Class | Details | Imported classes |
---|---|---|
AllMarketDataRetrievalConfig |
Sets up market data retrieval, including stores. | CubeMarketDataRetrievalConfig , CurveMarketDataRetrievalConfig , FxRateMarketDataRetrievalConfig , SpotMarketDataRetrievalConfig , SurfaceMarketDataRetrievalConfig . |
AllMarketDataConfig |
Sets up the market data API, including retrieval. | AllMarketDataRetrievalConfig , AllMarketDataInterpolationConfig . |
AllCommonStoresConfig |
Stores used in multiple cubes. | MarketShiftStoreConfig , QuantilesStoreConfig , RoundingStoreConfig . |
AllStandardStoresConfig |
Stores used regardless of cube. | BookHierarchyStoreConfig , BookParentChildStoreConfig , CounterpartyHierarchyStoreConfig , CounterpartyParentChildStoreConfig , CounterpartyStoreConfig , LegalEntityHierarchyStoreConfig , LegalEntityParentChildStoreConfig , MarketDataSetStoreConfig , RiskFactorsCatalogueStoreConfig , ScenariosStoreConfig , TradeAttributesStoreConfig . |
AllStandardReferencesConfig |
References used regardless of cube. | CounterpartyToCountryReferenceConfig , TradeAttributesToBookHierarchyReferenceConfig , TradeAttributesToCounterpartyReferenceConfig , TradeAttributesToCounterpartyHierarchyReferenceConfig , TradeAttributesToLegalEntityHierarchyReferenceConfig . |
AllSensiStoresConfig |
Stores used for the sensitivity cube. | CorporateActionStoreConfig , DynamicTenorsStoreConfig , MarketDataStoreConfig , SensiLaddersStoreConfig , TenorsStoreConfig , VectorTradeSensitivitiesStoreConfig , VectorMarketDataStoreConfig , TradeSensitivitiesStoreConfig . |
AllSensiReferencesConfig |
References used for the sensitivity cube. | TradeSensitivitiesToRiskFactorsCatalogueReferenceConfig , TradeSensitivitiesToTradeAttributesReferenceConfig . |
The DatastoreConfiguratorSetup class
All Spring beans are collected in the DatastoreConfiguratorSetup class. The@Configuration
classes are expected to be made
conditional on application properties and thus result in the correct set of datastores for each run mode.
Customizations should be created as DatastoreConfiguratorConsumer
beans, which are then collected by the class constructor:
public DatastoreConfiguratorSetup(
List<IConfigurableSchema> schemas,
@Autowired(required = false) List<DatastoreConfiguratorConsumer> customisations) {
this.schemas = schemas;
this.customisations = customisations;
}
Customizations classes
Atoti Market Risk contains two customization classes that
instantiate DatastoreConfiguratorConsumer
beans.
Class | Usage |
---|---|
DatastoreCustomisations | Empty class intended to provide a place to define simple customizations. |
ProductControlDatastoreCustomisations | Operates on the PnL base store. Makes the Type field a key field and adds Monthly , Yearly and Lifetime value fields. |