@Guozhang Ok I've tried and it doesn't have the expected behavior. For
KStream-KStream join, there's the issue to have to produce the same
changelog record to be able to join within the windows. And for
KStream-KTable, an update/insert in the changelog record doesn't trigger
join missed that was in the record stream (+you can't specify a windows for
a KStream-KTable).

On Wed, Jul 20, 2016 at 11:14 AM, Nicolas PHUNG <nsphung.apa...@gmail.com>
wrote:

> Hi,
>
> Thank you for your answer @Matthias. Indeed, I need a kind of symmetric
> join. However, KStream-KStream join doesn't match with my use case: I will
> need to generate the events in the changelog (e.g a campaign marketing with
> a certain Id/Key) because they live only for the join in a defined windows.
> Let's say I got a click in the record stream and then the campaign entity
> arrive later on within the windows, the join enriched stream works. But
> after the windows, new click arrive in the record stream and won't be able
> to find the campaign entity since the windows containing the information
> has passed. I haven't tried KTable-KTable yet but I think my clicks for
> example doesn't really match a changelog stream in my opinion.
>
> @Guozhang Ok so If I fake the timestamp in the record stream (KStream)
> (let's say add 1 day), I could manage to give one day chance to the late
> arrival in the changelog stream (my KTable) for the Join to be processed.
> Let me try. Thanks
>
> Regards,
>
> On Tue, Jul 19, 2016 at 11:45 PM, Guozhang Wang <wangg...@gmail.com>
> wrote:
>
>> Hello Nicolas,
>>
>> If this missing matched record issue is mainly due to the order these two
>> streams were processed (e.g., say your corresponding changelog record was
>> a
>> bit late compared with the record stream's record with the same key), you
>> can try to "hint" Kafka Streams library to give the changelog stream a bit
>> more time ahead by specifying its timestamps using the TimestampExtractor
>> with an earlier value against the record stream. And Kafka Streams will do
>> a best-effort "stream synchronization" to make sure these two streams were
>> processed at roughly the same pace based on record timestamps, which will
>> result in records from the changelog stream to be processed in-priori to
>> the record stream.
>>
>>
>> Guozhang
>>
>>
>> On Tue, Jul 19, 2016 at 6:10 AM, Matthias J. Sax <matth...@confluent.io>
>> wrote:
>>
>> > Hi Nicolas,
>> >
>> > your are right, it is currently not possible to get a result from a
>> > KTable update (and this is by design). The idea is, that the KStream is
>> > enriched with the *current state* of KTable -- thus, for each KStream
>> > record a look-up in KTable is done. (In this sense, a KStream-KTable
>> > join in asymmetric.)
>> >
>> > If you need a symmetric join (ie, lookup for both directions), you can
>> > either use a KTable-KTable or KStream-KStream join. Not sure, if this
>> > might work for your use case.
>> >
>> > -Matthias
>> >
>> >
>> > On 07/19/2016 01:36 PM, Nicolas PHUNG wrote:
>> > > Hi,
>> > >
>> > > I'm using Kafka 0.10.0.0 with the Confluent platform 3.0.0
>> > >
>> > > I manage to join a record stream (KStream / clicks stream) with a
>> > changelog
>> > > stream (KTable / an entity like a campaign related to a click for
>> > example).
>> > > When the entity in the KTable is inserted first (and the first time of
>> > > course) in Kafka, the record stream is processed as expected with the
>> > join
>> > > in a new enriched stream. This is good.
>> > >
>> > > My issue is when the record stream generate a record that contains a
>> > key/id
>> > > that hasn't been insert yet in the changelog stream/KTable. My process
>> > > generate a record stream without information in the enriched stream.
>> > Would
>> > > it be possible to recall this enriched stream process once the
>> changelog
>> > > record on my KTable received the missing id/key ? From my
>> understanding,
>> > > it's not possible right now to this with a KStream-KTable join. Is
>> there
>> > a
>> > > way to do something like this ?
>> > >
>> > > Thanks.
>> > >
>> > > Regards,
>> > > Nicolas PHUNG
>> > >
>> >
>> >
>>
>>
>> --
>> -- Guozhang
>>
>
>

Reply via email to