I'll need someone else to chime in here for a definitive answer (cc'd Gordon), so I'm really just guessing here.

For the partitioning it looks like you can use a custom partitioner, see FlinkKinesisProducer#setCustomPartitioner. Have you looked at the KinesisSerializationSchema described in the documentation <https://ci.apache.org/projects/flink/flink-docs-release-1.7/dev/connectors/kinesis.html#kinesis-producer>? It allows you to write to a specific stream based on incoming events, but I'm not sure whether this translates to S3 buckets and keyspaces.

On 08.02.2019 16:43, Sandybayev, Turar (CAI - Atlanta) wrote:

Hi all,

I wonder whether it’s possible to use Flink for the following requirement. We need to process a Kinesis stream and based on values in each record, route those records to different S3 buckets and keyspaces, with support for batching up of files and control over partitioning scheme (so preferably through Firehose).

I know it’s straightforward to have a Kinesis source and a Kinesis sink, and the hook up Firehose to the sink from AWS, but I need a “fan out” to potentially thousands of different buckets, based on content of each event.

Thanks!

Turar


Reply via email to