Filter Operator
The Filter Operator is a powerful tool that allows you to filter messages based on a condition. It is a simple operator that takes a single input and returns a boolean value. If the input meets the condition, the operator will return true
. Otherwise, it will return false
.
Prerequisites
This guide uses local
Fluvio cluster. If you need to install it, please follow the instructions at here.
Syntax
Here is a simple filter operator. It takes a string as input and returns a boolean value. If the input string contains a question mark, the operator will return true
. Otherwise, it will return false
.
transforms:
- operator: filter
run: |
fn filter_questions(input: String) -> Result<bool> {
Ok(input.contains("?"))
}
Running the Example
Copy and paste following config and save it as dataflow.yaml
.
# dataflow.yaml
apiVersion: 0.5.0
meta:
name: filter-example
version: 0.1.0
namespace: examples
config:
converter: raw
topics:
sentences:
schema:
value:
type: string
questions:
schema:
value:
type: string
services:
filter-service:
sources:
- type: topic
id: sentences
transforms:
- operator: filter
run: |
fn filter_questions(input: String) -> Result<bool> {
Ok(input.contains("?"))
}
sinks:
- type: topic
id: questions
To run example:
$ sdf run --ephemeral
Produce sentences to in sentence
topic:
$ echo "Hello world" | fluvio produce sentences
$ echo "Are you there?" | fluvio produce sentences
Consume topic questions
to retrieve the result in another terminal:
$ fluvio consume questions -Bd
Are you there?
Only questions are returned.