Configuration
Streambased A.S.K. is configured via a single configuration file mounted into a /etc/streambased/etc/client.properties in the Streambased deployment.
client.properties
This file configures Kafka sources as well as extraction, transformation and aggregations that should be applied to Kafka messages when indexing.
Global configurations
board.sizeThe number of Kafka offsets to include in an index chunk.
- Type: integer 
- Example: - board.size=1000
- Importance: high 
Configuring Sources
A source represents a Kafka cluster that Streambased should interact with. Every source has a name that is used as it's prefix in configuration. E.g. for a source named someSource  the prefix would be sources.someSource . See more information on what a source represents inIndexing Kafka Data.
sourcesA comma separated list of names of sources.
- Type: string 
- Example: - sources=usEastSource,usWestSource
- Importance: high 
sources.[sourceName].*A prefixed list of Kafka connection details. Any number of configurations can be added according to the connection requirements for your Kafka cluster
- Type: string 
- Example: - sources.usEastSource.bootstrap.servers=us-east.kafka.com:9092
- Importance: high 
Configuring Extractors
An extractor reads from a source and builds indexing information from the information it retrieves. Every extractor has a name that is used as it's prefix in configuration. E.g. for an extractor named transactionsExtractor  the prefix would be field.extractors.transactionsExtractor . See more information on what an extractor represents inIndexing Kafka Data.
field.extractorsA comma separated list of names of extractors.
- Type: string 
- Example: - field.extractors=transactionsExtractor,customersExtractor
- Importance: high 
Extractors must have the following mandatory fields:
field.extractors.[extractorName].classA fully qualified class name for a class that can extract column data for indexing from Kafka messages.
- Type: string 
- Example: - field.extractors.transactionsExtractor.class=io.streambased.index.extractor.JsonValueFieldsExtractor
- Importance: high 
field.extractors.[extractorName].sourceThe name of the Source this extractor should extract messages from.
- Type: string 
- Example: - field.extractors.transactionsExtractor.source=usEastSource
- Importance: high 
field.extractors.[extractorName].topicThe Kafka topic this extractor should extract messages from.
- Type: string 
- Example: - field.extractors.transactionsExtractor.topic=someTopic
- Importance: high 
field.extractors.[extractorName].*Extractors support any number of prefixed extra configurations that are required by the pluggable class configured in .class . 
- Type: string 
- Example: - field.extractors.transactionsExtractor.fields=someField,someOtherField
- Importance: high 
Configuring Transformers
A transformer represents a function that is applied to a field before it is stored in the index. This can be useful for reducing index sise by bucketing etc. Every transformer has a name that is used as it's prefix in configuration. E.g. for an transformer named ageTransformer  the prefix would be transformers.ageTransformer . See more information on what a transformer represents inIndexing Kafka Data.
transformersA comma separated list of names of transformers.
- Type: string 
- Example: - transformers=nameTransformer,ageTransformer
- Importance: high 
Transformer must have the following mandatory fields:
transformers.[transformerName].classA fully qualified class name for a class that can transform column data for indexing from Kafka messages.
- Type: string 
- Example: - transformers.ageTransformer.class=io.streambased.index.transformer.TruncatingTransformer
- Importance: high 
transformers.[transformerName].sourceThe name of the Source this transformer should apply transformations to.
- Type: string 
- Example: - transformers.ageTransformer.source=usEastSource
- Importance: high 
transformers.[transformerName].topicThe Kafka topic this transformer should apply transformations to.
- Type: string 
- Example: - transformers.ageTransformer.topic=someTopic
- Importance: high 
transformers.[transformerName].*Transformers support any number of prefixed extra configurations that are required by the pluggable class configured in .class . 
- Type: string 
- Example: - transformers.ageTranformer.truncatedToChars=3
- Importance: high 
Configuring Aggregators
An aggregator extracts and store common aggregate information that can be used to accelerate aggregate queries. For instance an aggregator may record the MAX value for a field in a block of Kafka data meaning that a query for this does not need to read the data itself. Every aggregator has a name that is used as it's prefix in configuration. E.g. for an aggregator named customersAggregator  the prefix would be aggregators.customersAggregator . See more information on what an aggregator represents inIndexing Kafka Data.
aggregatorsA comma separated list of names of aggregators.
- Type: string 
- Example: - aggregatores=transactionsAggregator,custoemrsAggregator
- Importance: high 
Aggregators must have the following mandatory fields:
aggregators.[aggregatorName].sourceThe name of the Source this aggregator should read from.
- Type: string 
- Example: - aggregators.customersAggregator.source=usEastSource
- Importance: high 
aggregators.[aggregatorName].topicThe Kafka topic this aggregator should read from.
- Type: string 
- Example: - aggregators.customersAggregator.topic=someTopic
- Importance: high 
aggregators.[aggregatorName].aggregate.fieldsA comma separated list of fields this aggregator should calculate aggregate information for. Note that every combination of this and grouping.fields  will be stored. 
- Type: string 
- Example: - aggregators.customersAggregator.aggregate.fields=amount,balance
- Importance: high 
aggregators.[aggregatorName].grouping.fieldsA comma separated list of fields this aggregator should group aggregate information on. Note that every combination of this and aggregate.fields  will be stored. 
- Type: string 
- Example: - aggregators.customersAggregator.grouping.fields=name,country
- Importance: high 
General  Configuration prefixes
The remaining configurations represent prefixes that are used to determine configurations for external services used by Streambased
kafkacache.*A prefix used to pass configurations to the KafkaCache instances used to store Streambased indexing data
- Example: - kafkacache.topic.replication.factor=3
Last updated

