You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Alexander Jipa <al...@gmail.com> on 2016/06/08 18:47:05 UTC

Kafka Streams aggregation store

Hello,
According to http://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple:
“In terms of implementation Kafka Streams stores this derived aggregation in a local embedded key-value store (RocksDB by default, but you can plug in anything).”
 
So I tried running the world count example on my Windows machine (for local test) and got an error because RocksDB is not available for windows.
I thought it would be easy to switch to an in-memory store.
But after awhile I’ve figured out that the KStream aggregation implementation doesn’t allow that.
It looks like aggregateByKey (and thus countByKey) is always using a persistent store.
More over that it looks like there’s no way to change the default persistent store…
 
Even though I was more or less capable of achieving the goal using manual wiring of a Source, a Producer and a Sink – it doesn’t make it for an easy coding…
 
The questions that I have are:
-          Is there a plan of providing a persistent store support for Kafka Streams on Windows?
-          Is there a plan of providing KStream API to specify a custom store/factory for aggregations?
-          Is there a way of changing the default persistent store from RocksDB?
 
Best Regards,
Alexander Jipa

Re: Kafka Streams aggregation store

Posted by Eno Thereska <en...@gmail.com>.
Hi Alexander,

I haven't tried Kafka Streams on Windows but did notice that Microsoft has merged code into github to make RocksDB available on Windows. Perhaps this is useful:
https://blogs.msdn.microsoft.com/bingdevcenter/2015/07/22/open-source-contribution-from-bing-rocksdb-is-now-available-in-windows-platform/

Thanks,
Eno

> On 8 Jun 2016, at 19:47, Alexander Jipa <al...@gmail.com> wrote:
> 
> Hello,
> According to http://www.confluent.io/blog/introducing-kafka-streams-stream-processing-made-simple:
> “In terms of implementation Kafka Streams stores this derived aggregation in a local embedded key-value store (RocksDB by default, but you can plug in anything).”
> 
> So I tried running the world count example on my Windows machine (for local test) and got an error because RocksDB is not available for windows.
> I thought it would be easy to switch to an in-memory store.
> But after awhile I’ve figured out that the KStream aggregation implementation doesn’t allow that.
> It looks like aggregateByKey (and thus countByKey) is always using a persistent store.
> More over that it looks like there’s no way to change the default persistent store…
> 
> Even though I was more or less capable of achieving the goal using manual wiring of a Source, a Producer and a Sink – it doesn’t make it for an easy coding…
> 
> The questions that I have are:
> -          Is there a plan of providing a persistent store support for Kafka Streams on Windows?
> -          Is there a plan of providing KStream API to specify a custom store/factory for aggregations?
> -          Is there a way of changing the default persistent store from RocksDB?
> 
> Best Regards,
> Alexander Jipa