Open graytaylor0 opened 10 months ago
I can work this
As part of this change, we provided an option for the user to convert the decimal number to BigDecimal of his own chosen scale (or precision) which should help handle numbers ending in 0 not to get converted into scientific notation. PR notes in the below link has the details about about how to use this and what kind of flexibility user has to tune his needs. Hence marking this ticket as fixed.
https://github.com/opensearch-project/data-prepper/pull/4557
The solution to provide a scale is useful, but ideally, the dynamodb
source can automatically handle this situation so that customers do not have to add the manual conversions.
Describe the bug Given an item in with a Number type ending in 0, such as
1702062202420
, the DynamoDB source will convert it to scientific notation for export items.To Reproduce Steps to reproduce the behavior:
my_number_ending_in_0
key converted to scientific notationExpected behavior The Numbers ending in 0 should not be manipulated and the above example should result in
Additional context The conversion only happens for export values when converting from the ion line here (https://github.com/opensearch-project/data-prepper/blob/91ff22d6da2b14d8a27ade89ee516341181c8bd6/data-prepper-plugins/dynamodb-source/src/main/java/org/opensearch/dataprepper/plugins/source/dynamodb/converter/ExportRecordConverter.java#L82), but Data Prepper
JacksonEvent
also converts to scientific notation when converting to json string (https://github.com/opensearch-project/data-prepper/blob/91ff22d6da2b14d8a27ade89ee516341181c8bd6/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/event/JacksonEvent.java#L621). I initially had created a custom deserializer that iterated over and converted all decimals of this format to not use scientific notation, however this may not be the best approach