public class Murmur3StreamGrouping extends Object implements CustomStreamGrouping
CustomStreamGrouping
that uses Murmur3 algorithm to choose the target task of a tuple.
This stream grouping may be used to optimise writes to Apache Cassandra.
Constructor and Description |
---|
Murmur3StreamGrouping(List<String> partitionKeyNames)
Creates a new
Murmur3StreamGrouping instance. |
Murmur3StreamGrouping(String... partitionKeyNames)
Creates a new
Murmur3StreamGrouping instance. |
Modifier and Type | Method and Description |
---|---|
List<Integer> |
chooseTasks(int taskId,
List<Object> values)
This function implements a custom stream grouping.
|
static long |
hashes(List<Object> values)
Computes the murmur3 hash for the specified values.
|
void |
prepare(WorkerTopologyContext context,
GlobalStreamId stream,
List<Integer> targetTasks)
Tells the stream grouping at runtime the tasks in the target bolt.
|
public Murmur3StreamGrouping(String... partitionKeyNames)
Murmur3StreamGrouping
instance.partitionKeyNames
- partitionKeyNames
.public Murmur3StreamGrouping(List<String> partitionKeyNames)
Murmur3StreamGrouping
instance.partitionKeyNames
- partitionKeyNames
.public static long hashes(List<Object> values) throws IOException
values
- the fields which are part of the (compose) partition keyIOException
public void prepare(WorkerTopologyContext context, GlobalStreamId stream, List<Integer> targetTasks)
It also tells the grouping the metadata on the stream this grouping will be used on.
prepare
in interface CustomStreamGrouping
public List<Integer> chooseTasks(int taskId, List<Object> values)
chooseTasks
in interface CustomStreamGrouping
values
- the values to group onCopyright © 2023 The Apache Software Foundation. All rights reserved.