Package io.pravega.connectors.flink.util
Class FlinkPravegaUtils
- java.lang.Object
-
- io.pravega.connectors.flink.util.FlinkPravegaUtils
-
public class FlinkPravegaUtils extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FlinkPravegaUtils.FlinkDeserializer<T>
A PravegaSerializer
that wraps around a FlinkDeserializationSchema
.static class
FlinkPravegaUtils.SimpleCredentials
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static byte[]
byteBufferToArray(java.nio.ByteBuffer buf)
static <T> io.pravega.client.stream.EventStreamReader<java.nio.ByteBuffer>
createPravegaReader(java.lang.String readerId, java.lang.String readerGroupName, io.pravega.client.stream.ReaderConfig readerConfig, io.pravega.client.EventStreamClientFactory eventStreamClientFactory)
Creates a PravegaEventStreamReader
.static java.lang.String
generateRandomReaderGroupName()
Generates a random reader group name.static java.lang.String
getReaderName(java.lang.String taskName, int index, int total)
Utility method that derives the reader name from taskName, index and parallelism.static boolean
isCredentialsLoadDynamic()
static <T> org.apache.flink.streaming.api.datastream.DataStreamSink<T>
writeToPravegaInEventTimeOrder(org.apache.flink.streaming.api.datastream.DataStream<T> stream, FlinkPravegaWriter<T> writer, int parallelism)
Writes a stream of elements to a Pravega stream with event time ordering.
-
-
-
Method Detail
-
writeToPravegaInEventTimeOrder
public static <T> org.apache.flink.streaming.api.datastream.DataStreamSink<T> writeToPravegaInEventTimeOrder(org.apache.flink.streaming.api.datastream.DataStream<T> stream, FlinkPravegaWriter<T> writer, int parallelism)
Writes a stream of elements to a Pravega stream with event time ordering.This method returns a sink that automatically reorders events by their event timestamp. The ordering is preserved by Pravega using the associated routing key.
- Type Parameters:
T
- The type of the event.- Parameters:
stream
- the stream to read.writer
- the Pravega writer to use.parallelism
- the degree of parallelism for the writer.- Returns:
- a sink.
-
getReaderName
public static java.lang.String getReaderName(java.lang.String taskName, int index, int total)
Utility method that derives the reader name from taskName, index and parallelism.- Parameters:
taskName
- the original task nameindex
- the index of the subtasktotal
- the total parallelism of the subtask- Returns:
- the generated default reader name.
-
generateRandomReaderGroupName
public static java.lang.String generateRandomReaderGroupName()
Generates a random reader group name.- Returns:
- generated reader group name.
-
createPravegaReader
public static <T> io.pravega.client.stream.EventStreamReader<java.nio.ByteBuffer> createPravegaReader(java.lang.String readerId, java.lang.String readerGroupName, io.pravega.client.stream.ReaderConfig readerConfig, io.pravega.client.EventStreamClientFactory eventStreamClientFactory)
Creates a PravegaEventStreamReader
.Instead of directly returns T, it returns ByteBuffer so that the additional information can be extracted from the event. To manipulate metadata, overwrite the
PravegaDeserializationSchemaWithMetadata
.- Type Parameters:
T
- The type of the event.- Parameters:
readerId
- The id of the Pravega reader.readerGroupName
- The reader group name.readerConfig
- The reader configuration.eventStreamClientFactory
- The eventStreamClientFactory used to create the EventStreamReader- Returns:
- the create Pravega reader.
-
isCredentialsLoadDynamic
public static boolean isCredentialsLoadDynamic()
-
byteBufferToArray
public static byte[] byteBufferToArray(java.nio.ByteBuffer buf)
-
-