CSV Loading Topic

Configuration Properties

Properties for a CSV Loading Topic are defined by name in the dlc.csv.topics namespace, and are picked up as configurations for the DLC.

Key Required Type Default Description
file-pattern String Path matcher.
parser CsvParserProperties Default Parser. CSV Parser
channels Set<Channel> A channel is created using the topic’s name as the name of the target. Channels.
restrict-to-sources Set<String> Sources to which the topic is restricted. See source to topic matching.
restrict-from-sources Set<String> Sources from which the topic restricted. See source to topic matching.

YAML Example

This configuration does not specify a target for the data or the data format.

note

If you do not name your topic the same as your store you will have to explicitly specify the target in the channel of the topic.

  • The target is implicitly the Atoti table named “Trades”.
  • The format (column order and how input fields are parsed) implicitly comes from the columns and types of the targeted Atoti table, in this case “Trades”.
dlc:
  csv:
    topics:
      Trades:
        file-pattern: glob:trades*.csv

JSON Example

CSV Topics can also be provided as an override in a DLC LOAD request.

{
  "Trades": {
    "filePattern": "glob:different_than_trades*.csv"
  }
}

Java Configuration

CsvTopicDescription Spring Beans are picked up as configurations for the DLC.

Parameter Required Type Default Description
name Y String Name of the topic.
filePattern String Path matcher.
parser CsvParserDescription Default Parser. CSV Parser.
channels Set<ChannelDescription> A channel is created using the topic’s name as the name of the target Channel Descriptions which belong to the topic.
restrictToSources Set<String> Sources to which topic is restricted. See source to topic matching.
restrictFromSources Set<String> Sources from which topic is restricted. See source to topic matching.

Java Example

This configuration does not specify a target for the data or the data format.

note

If you do not name your topic the same as your store you will have to explicitly specify the target in the channel of the topic.

  • The target is implicitly the Atoti table named “Trades”.
  • The format (column order and how input fields are parsed) implicitly comes from the columns and types of the targeted Atoti table, in this case “Trades”.
@Bean
public CsvTopicDescription tradesTopic() {
    return CsvTopicDescription.builder("Trades", "glob:trades*.csv")
            .build();
}