|
| 1 | +# API Docs - v2.1.2 |
| 2 | + |
| 3 | +!!! Info "Tested Siddhi Core version: *<a target="_blank" href="http://siddhi.io/en/v5.1/docs/query-guide/">5.1.21</a>*" |
| 4 | + It could also support other Siddhi Core minor versions. |
| 5 | + |
| 6 | +## Sinkmapper |
| 7 | + |
| 8 | +### keyvalue *<a target="_blank" href="http://siddhi.io/en/v5.1/docs/query-guide/#sink-mapper">(Sink Mapper)</a>* |
| 9 | +<p></p> |
| 10 | +<p style="word-wrap: break-word;margin: 0;">The <code>Event to Key-Value Map</code> output mapper extension allows you to convert Siddhi events processed by WSO2 SP to key-value map events before publishing them. You can either use pre-defined keys where conversion takes place without extra configurations, or use custom keys with which the messages can be published.</p> |
| 11 | +<p></p> |
| 12 | +<span id="syntax" class="md-typeset" style="display: block; font-weight: bold;">Syntax</span> |
| 13 | + |
| 14 | +``` |
| 15 | +@sink(..., @map(type="keyvalue") |
| 16 | +``` |
| 17 | + |
| 18 | +<span id="examples" class="md-typeset" style="display: block; font-weight: bold;">Examples</span> |
| 19 | +<span id="example-1" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">EXAMPLE 1</span> |
| 20 | +``` |
| 21 | +@sink(type='inMemory', topic='stock', @map(type='keyvalue')) |
| 22 | +define stream FooStream (symbol string, price float, volume long); |
| 23 | +
|
| 24 | +``` |
| 25 | +<p></p> |
| 26 | +<p style="word-wrap: break-word;margin: 0;">This query performs a default Key-Value output mapping. The expected output is something similar to the following: <br>symbol:'WSO2' <br>price : 55.6f <br>volume: 100L</p> |
| 27 | +<p></p> |
| 28 | +<span id="example-2" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">EXAMPLE 2</span> |
| 29 | +``` |
| 30 | +@sink(type='inMemory', topic='stock', @map(type='keyvalue', @payload(a='symbol',b='price',c='volume'))) |
| 31 | +define stream FooStream (symbol string, price float, volume long); |
| 32 | +
|
| 33 | +``` |
| 34 | +<p></p> |
| 35 | +<p style="word-wrap: break-word;margin: 0;">This query performs a custom Key-Value output mapping where values are passed as objects. Values for <code>symbol</code>, <code>price</code>, and <code>volume</code> attributes are published with the keys <code>a</code>, <code>b</code> and <code>c</code> respectively. The expected output is a map similar to the following: <br>a:'WSO2'<br>b : 55.6f<br>c: 100L</p> |
| 36 | +<p></p> |
| 37 | +<span id="example-3" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">EXAMPLE 3</span> |
| 38 | +``` |
| 39 | +@sink(type='inMemory', topic='stock', @map(type='keyvalue', @payload(a='{{symbol}} is here',b='`price`',c='volume'))) |
| 40 | +define stream FooStream (symbol string, price float, volume long); |
| 41 | +
|
| 42 | +``` |
| 43 | +<p></p> |
| 44 | +<p style="word-wrap: break-word;margin: 0;">This query performs a custom Key-Value output mapping where the values of the <code>a</code> and <code>b</code> attributes are strings and c is object. The expected output should be a Map similar to the following: <br>a:'WSO2 is here'<br>b : 'price'<br>c: 100L</p> |
| 45 | +<p></p> |
| 46 | +## Sourcemapper |
| 47 | + |
| 48 | +### keyvalue *<a target="_blank" href="http://siddhi.io/en/v5.1/docs/query-guide/#source-mapper">(Source Mapper)</a>* |
| 49 | +<p></p> |
| 50 | +<p style="word-wrap: break-word;margin: 0;"><code>Key-Value Map to Event</code> input mapper extension allows transports that accept events as key value maps to convert those events to Siddhi events. You can either receive pre-defined keys where conversion takes place without extra configurations, or use custom keys to map from the message.</p> |
| 51 | +<p></p> |
| 52 | +<span id="syntax" class="md-typeset" style="display: block; font-weight: bold;">Syntax</span> |
| 53 | + |
| 54 | +``` |
| 55 | +@source(..., @map(type="keyvalue", fail.on.missing.attribute="<BOOL>", implicit.cast.enable="<BOOL>") |
| 56 | +``` |
| 57 | + |
| 58 | +<span id="query-parameters" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">QUERY PARAMETERS</span> |
| 59 | +<table> |
| 60 | + <tr> |
| 61 | + <th>Name</th> |
| 62 | + <th style="min-width: 20em">Description</th> |
| 63 | + <th>Default Value</th> |
| 64 | + <th>Possible Data Types</th> |
| 65 | + <th>Optional</th> |
| 66 | + <th>Dynamic</th> |
| 67 | + </tr> |
| 68 | + <tr> |
| 69 | + <td style="vertical-align: top">fail.on.missing.attribute</td> |
| 70 | + <td style="vertical-align: top; word-wrap: break-word"><p style="word-wrap: break-word;margin: 0;"> If this parameter is set to <code>true</code>, if an event arrives without a matching key for a specific attribute in the connected stream, it is dropped and not processed by the Stream Processor. If this parameter is set to <code>false</code> the Stream Processor adds the required key to such events with a null value, and the event is converted to a Siddhi event so that you could handle them as required before they are further processed.</p></td> |
| 71 | + <td style="vertical-align: top">true</td> |
| 72 | + <td style="vertical-align: top">BOOL</td> |
| 73 | + <td style="vertical-align: top">Yes</td> |
| 74 | + <td style="vertical-align: top">No</td> |
| 75 | + </tr> |
| 76 | + <tr> |
| 77 | + <td style="vertical-align: top">implicit.cast.enable</td> |
| 78 | + <td style="vertical-align: top; word-wrap: break-word"><p style="word-wrap: break-word;margin: 0;"> If this parameter is set to <code>true</code>, if an event arrives with a different datatype than the defined in siddhi app, the value will try to cast in to the provided datatype before it fails </p></td> |
| 79 | + <td style="vertical-align: top">false</td> |
| 80 | + <td style="vertical-align: top">BOOL</td> |
| 81 | + <td style="vertical-align: top">Yes</td> |
| 82 | + <td style="vertical-align: top">No</td> |
| 83 | + </tr> |
| 84 | +</table> |
| 85 | + |
| 86 | +<span id="examples" class="md-typeset" style="display: block; font-weight: bold;">Examples</span> |
| 87 | +<span id="example-1" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">EXAMPLE 1</span> |
| 88 | +``` |
| 89 | +@source(type='inMemory', topic='stock', @map(type='keyvalue')) |
| 90 | +define stream FooStream (symbol string, price float, volume long); |
| 91 | +
|
| 92 | +``` |
| 93 | +<p></p> |
| 94 | +<p style="word-wrap: break-word;margin: 0;">This query performs a default key value input mapping. The expected input is a map similar to the following: <br>symbol: 'WSO2'<br>price: 55.6f<br>volume: 100</p> |
| 95 | +<p></p> |
| 96 | +<span id="example-2" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">EXAMPLE 2</span> |
| 97 | +``` |
| 98 | +@source(type='inMemory', topic='stock', @map(type='keyvalue', fail.on.missing.attribute='true', @attributes(symbol = 's', price = 'p', volume = 'v')))define stream FooStream (symbol string, price float, volume long); |
| 99 | +``` |
| 100 | +<p></p> |
| 101 | +<p style="word-wrap: break-word;margin: 0;">This query performs a custom key value input mapping. The matching keys for the <code>symbol</code>, <code>price</code> and <code>volume</code> attributes are be <code>s</code>, <code>p</code>, and <code>v</code> respectively. The expected input is a map similar to the following: <br>s: 'WSO2' <br>p: 55.6 <br>v: 100 <br></p> |
| 102 | +<p></p> |
| 103 | +<span id="example-3" class="md-typeset" style="display: block; color: rgba(0, 0, 0, 0.54); font-size: 12.8px; font-weight: bold;">EXAMPLE 3</span> |
| 104 | +``` |
| 105 | +@source(type='inMemory', topic='stock', @map(type='keyvalue', fail.on.missing.attribute='true', implicit.cast.enable='true', @attributes(symbol = 's', price = 'p', volume = 'v')))define stream FooStream (symbol string, price float, volume long); |
| 106 | +``` |
| 107 | +<p></p> |
| 108 | +<p style="word-wrap: break-word;margin: 0;">This query performs a custom key value input mapping. The matching keys for the <code>symbol</code>, <code>price</code> and <code>volume</code> attributes are be <code>s</code>, <code>p</code>, and <code>v</code> respectively. The expected input is a map similar to the following: <br>s: 'WSO2' <br>p: 55.6 <br>v: 100 <br></p> |
| 109 | +<p></p> |
0 commit comments