Skip to main content

Scopes

The scope describes which data is loaded and unloaded. Each request to the Data Load Controller contains a scope. In the default implementation, the as-of date scope is turned into a directory and all the files in that directory are loaded. When unloading data, the scope is turned into a RemoveWhere clause to be run on the datastore. There are three different scopes in the default implementation.

Topic Aliases

Each input file is loaded with a topic (see Input file formats). Topic aliases are used to group those topics. The topic aliases are defined in the application.yaml file. Atoti Market Risk contains the following topic aliases:

Configuration Properties

The following Spring properties can be set:
  • The aliases are defined under the dlc.aliases and can be customized.
  • The input sources are defined under the dlc.local.sources and dlc.csv.azure.sources and can be customized.
  • The default topics used by Atoti Market Risk are defined by Java beans and not by the DLC configuration. The used file patterns are defined in their own section outside the DLC property set.
  • The default local csv source setup is provided by the file application-dlc-local-csv.yaml accessible with the Spring profile dlc-local-csv.
  • The default Azure csv source setup is provided by the file application-dlc-azure-csv.yaml accessible with the Spring profile dlc-azure-csv.
We recommend using the DLC section dlc.csv-topics to add topics to Atoti Market Risk.

Initial Load

On startup, the following topic aliases are loaded (without parameters):
  • AllConfiguration
Additionally, a list of as-of dates is determined as follows:
  • If the configuration parameter mr.data-load.initial-business-dates is set, the as-of dates listed are used. For example, in the application.yaml file:
  • Otherwise, the top level of the data directory is scanned for directories whose names are dates. These dates are used for the as-of dates in the initial load. (This matches the previous start-up behavior).
For this set of as-of dates, the following topics are loaded with the “AsOfDate” field set in the scope:
  • AllAttributes
  • AllFacts
Additionally, if there is a next business date available in the data directory, the following stores are loaded for the next day. This is mandatory for the correct calculation of the PNL Explain especially in a distributed environment. For instance, if mr.data-load.initial-business-dates=2018-09-27 then 2018-09-28 will be loaded for:
  • MarketData
  • FXRates

How does the batched initial load work?

Setting mr.data-load.initial-load-batch-size to a positive value makes the initial load list the files available for each date and load them in batches of at most that many files, instead of one request per topic. This bounds the size of a single load request on sources holding many files. Listing is performed by a DateFileLister, implemented for the local CSV and AWS S3 sources only. With the dlc-azure-csv profile and a positive batch size, no file is listed and no daily data is loaded, so leave the property unset on Azure deployments. Listed paths are relative to the date-substituted source root and carry no date directory: for a source root of data/#{AsOfDate}, the file data/2025-01-10/Delta.csv is listed as Delta.csv. Topic file patterns are matched against those names, so the shipped defaults (glob:**Foo*.csv) match unchanged, as do a glob: pattern whose leading component is a wildcard segment or / (glob:**/Delta*.csv, glob:*/Delta*.csv) and a regex: pattern written against either the bare or the rooted name (regex:Delta.*\.csv, regex:.*/Delta.*\.csv). What cannot match a bare name is a glob: pattern carrying a separator anywhere else (glob:**/sensitivities/Delta*.csv): it selects nothing and the topic is skipped with a No files matched pattern log line.

REST Service

HTTP POST URL: /mr-application/connectors/rest/dlc/v2/execute Body (sample):

Summary/trend data

Depending on whether the summary cubes are activated (Var-ES Summary cube, Sensi Summary cube, PnL Summary cube), the corresponding topics will load a different file into a different store: