Hi paul,

Thanks for the response.

Can you point out an example of how to create a dynamic client or wrapper
operator.


Thanks and Regards,
Dinesh.




On Thu, Jul 2, 2020 at 12:28 PM Paul Lam <paullin3...@gmail.com> wrote:

> Hi Doinesh,
>
> I think the problem you meet is quite common.
>
> But with the current Flink architecture, operators must be determined at
> compile time (when you submit your job). This is by design IIUC.
> Suppose the operators are changeable, then Flink would need to go through
> the compile-optimize-schedule phases once a new operator
> is added. That would be little difference with restarting a job.
>
> I see two alternative solutions, FYI:
>
> 1. Implement a custom sink function as Danny suggested. The sink function
> dynamically creates a new client for the respective ES cluster
>  on receiving a new tenant configuration.
> 2. Still restart the job, and optimize the downtime by using session mode.
>
> Best,
> Paul Lam
>
> 2020年7月2日 11:23,C DINESH <dinesh.kitt...@gmail.com> 写道:
>
> Hi Danny,
>
> Thanks for the response.
>
> In short without restarting we cannot add new sinks or sources.
>
> For better understanding I will explain my problem more clearly.
>
> My scenario is I have two topics, one is configuration topic and second
> one is event activities.
>
> * In the configuration topic I will get details of the kafka cluster
> details and elasticsearch cluster details.
> * In the event activities i will get events and each event will have a
> tenantId
> * Suppose now we are getting a new tenantId data I need to send data to
> the respective elastic search cluster which I will come to know in the
> runtime from the configuration topic.
> * Is there a way to add a new elastic search sink in the same job without
> restarting.
>
> Before starting a job I can create two elastic search sinks and with a
> condition I can route the data to the respective elastic search cluster. Is
> there a way to do it in runtime?
>
>
> Thanks and Regards,
> Doinesh.
>
>
> On Wed, Jul 1, 2020 at 5:24 PM Danny Chan <yuzhao....@gmail.com> wrote:
>
>> Sorry, a job graph is solid while we compile it before submitting to the
>> cluster, not dynamic as what you want.
>>
>> You did can write some wrapper operators which response to your own PRCs
>> to run the appended operators you want,
>> But the you should keep the consistency semantics by yourself.
>>
>> Best,
>> Danny Chan
>> 在 2020年6月28日 +0800 PM3:30,C DINESH <dinesh.kitt...@gmail.com>,写道:
>>
>> Hi All,
>>
>> In a flink job I have a pipeline. It is consuming data from one kafka
>> topic and storing data to Elastic search cluster.
>>
>> without restarting the job can we add another kafka cluster and another
>> elastic search sink to the job. Which means i will supply the new kafka
>> cluster and elastic search details in the topic.  After consuming the data
>> can our flink job add the new source and sink to the same job.
>>
>>
>> Thanks & Regards,
>> Dinesh.
>>
>>
>

Reply via email to