DynamoDB Message Decoder Configurations
To configure a Pinot table to use a DynamoDB formatted streaming source, Pinot provides a decoder -ai.startree.pinot.plugin.inputformat.dynamodb.DynamoDbMessageDecoder.
The properties of this decoder are listed below:
Configuration Example
When ingesting a DynamoDB formatted payload from a stream, the decoder used for the stream must beai.startree.pinot.plugin.inputformat.dynamodb.DynamoDbMessageDecoder.
The following is an example stream config where the Pinot table is consuming from a JSON-encoded Kafka topic containing DynamoDB CDC payload:
org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory and the decoder associated with this stream is ai.startree.pinot.plugin.inputformat.dynamodb.DynamoDbMessageDecoder.
The configuration uses several key components:
- The primary decoder
ai.startree.pinot.plugin.inputformat.dynamodb.DynamoDbMessageDecoderhandles the DynamoDB-specific message format - The
dynamodb.timeColumnNameis populated with theApproximateCreationDateTimefrom the DynamoDB JSON record - The
dynamodb.deleteColumnNameis set totruewhenREMOVErecords are received from DynamoDB - The
dynamodb.envelope.decoder.class.nameis set toorg.apache.pinot.plugin.inputformat.json.JSONMessageDecodersince the underlying DynamoDB messages are in JSON format

