<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: Nifi not able to convert byte buffer avro Decimal Logical type in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358598#M237890</link>
    <description>&lt;P&gt;I found that the schema was defined incorrectly causing an issue. It should be&amp;nbsp;&lt;/P&gt;&lt;DIV class="c-virtual_list__item"&gt;&lt;DIV class="c-message_kit__background c-message_kit__background--hovered p-message_pane_message__message c-message_kit__message"&gt;&lt;DIV class="c-message_kit__hover c-message_kit__hover--hovered"&gt;&lt;DIV class="c-message_kit__actions c-message_kit__actions--above"&gt;&lt;DIV class="c-message_kit__gutter"&gt;&lt;DIV class="c-message_kit__gutter__right"&gt;&lt;DIV class="c-message_kit__blocks c-message_kit__blocks--rich_text"&gt;&lt;DIV class="c-message__message_blocks c-message__message_blocks--rich_text"&gt;&lt;DIV class="p-block_kit_renderer"&gt;&lt;DIV class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"&gt;&lt;DIV class="p-rich_text_block"&gt;&lt;DIV class="p-rich_text_section"&gt;From this&amp;nbsp;&lt;/DIV&gt;&lt;PRE&gt; "name": "maxApprovedAmount",
            "type": "bytes",
            "logicalType": "decimal",
            "precision": 4,
            "scale": 4&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="c-virtual_list__item c-virtual_list__item--initial-activeitem"&gt;&lt;DIV class="c-message_kit__background p-message_pane_message__message c-message_kit__message"&gt;&lt;DIV class="c-message_kit__hover"&gt;&lt;DIV class="c-message_kit__actions c-message_kit__actions--above"&gt;&lt;DIV class="c-message_kit__gutter"&gt;&lt;DIV class="c-message_kit__gutter__right"&gt;&lt;DIV class="c-message_kit__blocks c-message_kit__blocks--rich_text"&gt;&lt;DIV class="c-message__message_blocks c-message__message_blocks--rich_text"&gt;&lt;DIV class="p-block_kit_renderer"&gt;&lt;DIV class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"&gt;&lt;DIV class="p-rich_text_block"&gt;&lt;DIV class="p-rich_text_section"&gt;to this:&lt;/DIV&gt;&lt;PRE&gt; "name": "maxApprovedAmount",
            "type": {type: "bytes",
            "logicalType": "decimal",
            "precision": 4,
            "scale": 4}&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Tue, 29 Nov 2022 21:36:17 GMT</pubDate>
    <dc:creator>mr_jahurley</dc:creator>
    <dc:date>2022-11-29T21:36:17Z</dc:date>
    <item>
      <title>Nifi not able to convert byte buffer avro Decimal Logical type</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358507#M237863</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is a kafka producer converting decimals to bytes using this:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; java.math.BigDecimal;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; java.math.RoundingMode;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; java.nio.ByteBuffer;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; org.apache.avro.Conversion;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; org.apache.avro.Conversions;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; org.apache.avro.LogicalType;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; org.apache.avro.LogicalTypes;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;import&lt;/SPAN&gt; org.mapstruct.Mapper;&lt;/SPAN&gt;

&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-meta"&gt;@Mapper&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;&lt;SPAN class="hljs-keyword"&gt;public&lt;/SPAN&gt; &lt;SPAN class="hljs-keyword"&gt;class&lt;/SPAN&gt; &lt;SPAN class="hljs-title class_"&gt;BigDecimalMapper&lt;/SPAN&gt; {&lt;/SPAN&gt;

&lt;SPAN class="line"&gt;  &lt;SPAN class="hljs-keyword"&gt;public&lt;/SPAN&gt; ByteBuffer &lt;SPAN class="hljs-title function_"&gt;bigDecimalToByteBuffer&lt;/SPAN&gt;&lt;SPAN class="hljs-params"&gt;(BigDecimal bigDecimal)&lt;/SPAN&gt; {&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;    &lt;SPAN class="hljs-keyword"&gt;if&lt;/SPAN&gt; (bigDecimal == &lt;SPAN class="hljs-literal"&gt;null&lt;/SPAN&gt;) &lt;SPAN class="hljs-keyword"&gt;return&lt;/SPAN&gt; &lt;SPAN class="hljs-literal"&gt;null&lt;/SPAN&gt;;&lt;/SPAN&gt;

&lt;SPAN class="line"&gt;    Conversion&amp;lt;BigDecimal&amp;gt; conversion = &lt;SPAN class="hljs-keyword"&gt;new&lt;/SPAN&gt; &lt;SPAN class="hljs-title class_"&gt;Conversions&lt;/SPAN&gt;.DecimalConversion();&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;    &lt;SPAN class="hljs-type"&gt;LogicalType&lt;/SPAN&gt; &lt;SPAN class="hljs-variable"&gt;type&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;=&lt;/SPAN&gt; LogicalTypes.decimal(&lt;SPAN class="hljs-number"&gt;15&lt;/SPAN&gt;, &lt;SPAN class="hljs-number"&gt;4&lt;/SPAN&gt;);&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;    &lt;SPAN class="hljs-type"&gt;BigDecimal&lt;/SPAN&gt; &lt;SPAN class="hljs-variable"&gt;scaledBigDecimal&lt;/SPAN&gt; &lt;SPAN class="hljs-operator"&gt;=&lt;/SPAN&gt; bigDecimal.setScale(&lt;SPAN class="hljs-number"&gt;4&lt;/SPAN&gt;, RoundingMode.HALF_UP);&lt;/SPAN&gt;

&lt;SPAN class="line"&gt;    &lt;SPAN class="hljs-comment"&gt;// Schema parameter is not used by Conversions so pass as null&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;    &lt;SPAN class="hljs-keyword"&gt;return&lt;/SPAN&gt; conversion.toBytes(scaledBigDecimal, &lt;SPAN class="hljs-literal"&gt;null&lt;/SPAN&gt;, type);&lt;/SPAN&gt;
&lt;SPAN class="line"&gt;  }&lt;/SPAN&gt;

&lt;/PRE&gt;&lt;P&gt;We are using the confluent schema registry and this is the schema:&lt;/P&gt;&lt;PRE&gt;{&lt;BR /&gt;"type": "record",&lt;BR /&gt;"namespace": "event",&lt;BR /&gt;"name": "Event",&lt;BR /&gt;"fields": [&lt;BR /&gt;{&lt;BR /&gt;"name": "maxApprovedAmount",&lt;BR /&gt;"type": "bytes",&lt;BR /&gt;"logicalType": "decimal",&lt;BR /&gt;"precision": 4,&lt;BR /&gt;"scale": 4&lt;BR /&gt;}]&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;In Nifi I am using&amp;nbsp;ConsumeKafkaRecord_2_6. using AvroReader and AvroRecordSetWriter.&amp;nbsp;&lt;BR /&gt;In the reader I am using the schema from confluent. On the writer I am using Inherent Record Schema. When viewing the data in view flow file and selecting formatted, i see the value as:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt; &lt;BR /&gt;"maxApprovedAmount" : {&lt;BR /&gt;"bytes" : "\u0001}x@"&lt;BR /&gt;},&lt;/PRE&gt;&lt;P&gt;Trouble is how to get the actual value and not this. I have tried&amp;nbsp; multiple changes to my avro writer, and I have read other posts on similar issues but not able to get this resolved. I believe it has to with the lack of support for Logical types. I am even up to write a script in jython to do the conversion if it will work. Any help would be greatly appreciated!&lt;/P&gt;</description>
      <pubDate>Mon, 28 Nov 2022 20:32:29 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358507#M237863</guid>
      <dc:creator>mr_jahurley</dc:creator>
      <dc:date>2022-11-28T20:32:29Z</dc:date>
    </item>
    <item>
      <title>Re: Nifi not able to convert byte buffer avro Decimal Logical type</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358572#M237885</link>
      <description>&lt;P&gt;I am still unable to see how to achieve this. If anyone has any suggestions, I am open to it. Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Nov 2022 17:01:49 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358572#M237885</guid>
      <dc:creator>mr_jahurley</dc:creator>
      <dc:date>2022-11-29T17:01:49Z</dc:date>
    </item>
    <item>
      <title>Re: Nifi not able to convert byte buffer avro Decimal Logical type</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358598#M237890</link>
      <description>&lt;P&gt;I found that the schema was defined incorrectly causing an issue. It should be&amp;nbsp;&lt;/P&gt;&lt;DIV class="c-virtual_list__item"&gt;&lt;DIV class="c-message_kit__background c-message_kit__background--hovered p-message_pane_message__message c-message_kit__message"&gt;&lt;DIV class="c-message_kit__hover c-message_kit__hover--hovered"&gt;&lt;DIV class="c-message_kit__actions c-message_kit__actions--above"&gt;&lt;DIV class="c-message_kit__gutter"&gt;&lt;DIV class="c-message_kit__gutter__right"&gt;&lt;DIV class="c-message_kit__blocks c-message_kit__blocks--rich_text"&gt;&lt;DIV class="c-message__message_blocks c-message__message_blocks--rich_text"&gt;&lt;DIV class="p-block_kit_renderer"&gt;&lt;DIV class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"&gt;&lt;DIV class="p-rich_text_block"&gt;&lt;DIV class="p-rich_text_section"&gt;From this&amp;nbsp;&lt;/DIV&gt;&lt;PRE&gt; "name": "maxApprovedAmount",
            "type": "bytes",
            "logicalType": "decimal",
            "precision": 4,
            "scale": 4&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class="c-virtual_list__item c-virtual_list__item--initial-activeitem"&gt;&lt;DIV class="c-message_kit__background p-message_pane_message__message c-message_kit__message"&gt;&lt;DIV class="c-message_kit__hover"&gt;&lt;DIV class="c-message_kit__actions c-message_kit__actions--above"&gt;&lt;DIV class="c-message_kit__gutter"&gt;&lt;DIV class="c-message_kit__gutter__right"&gt;&lt;DIV class="c-message_kit__blocks c-message_kit__blocks--rich_text"&gt;&lt;DIV class="c-message__message_blocks c-message__message_blocks--rich_text"&gt;&lt;DIV class="p-block_kit_renderer"&gt;&lt;DIV class="p-block_kit_renderer__block_wrapper p-block_kit_renderer__block_wrapper--first"&gt;&lt;DIV class="p-rich_text_block"&gt;&lt;DIV class="p-rich_text_section"&gt;to this:&lt;/DIV&gt;&lt;PRE&gt; "name": "maxApprovedAmount",
            "type": {type: "bytes",
            "logicalType": "decimal",
            "precision": 4,
            "scale": 4}&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 29 Nov 2022 21:36:17 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Nifi-not-able-to-convert-byte-buffer-avro-Decimal-Logical/m-p/358598#M237890</guid>
      <dc:creator>mr_jahurley</dc:creator>
      <dc:date>2022-11-29T21:36:17Z</dc:date>
    </item>
  </channel>
</rss>

