Thanks Jing, it makes sense to me and I have updated the FLIP
Best, Shammon FY On Thu, Jun 8, 2023 at 11:15 PM Jing Ge <j...@ververica.com.invalid> wrote: > Hi Shammon, > > If we take a look at the JDK Event design as a reference, we can even add > an Object into the event [1]. Back to the CatalogModificationEvent, > everything related to the event could be defined in the Event. If we want > to group some information into the Context, we could also consider adding > the CatalogModificationContext into the Event and make the onEvent() method > cleaner with only one input parameter CatalogModificationEvent, because the > interface CatalogModificationListener is the most often used interface for > users. Just my two cents. > > Best regards, > Jing > > [1] > http://www.java2s.com/example/java-src/pkg/java/util/eventobject-85298.html > > On Thu, Jun 8, 2023 at 7:50 AM Shammon FY <zjur...@gmail.com> wrote: > > > Hi, > > > > To @Jing Ge > > > Thanks for the clarification. Just out of curiosity, if the context is > > not part of the event, why should it be the input parameter of each > onEvent > > call? > > > > I think it's quite strange to put some information in an Event, such as a > > factory identifier for catalog, but they will be used by the listener. I > > place it in the context class and I think it is more suitable than > directly > > placing it in the event class. > > > > To @Mason > > > 1. I'm also curious about default implementations. Would atlas/datahub > be > > supported by default? > > > > We won't do that and external systems such as atlas/datahub need to > > implement the listener themselves. > > > > > 2. The FLIP title is confusing to me, especially in distinguishing it > > from FLIP-314. Would a better FLIP title be "Support Catalog Metadata > > Listener" or something alike? > > > > Thanks, I think "Support Catalog Modification Listener" will be > > more suitable, I'll update the title to it. > > > > > > Best, > > Shammon FY > > > > > > On Thu, Jun 8, 2023 at 12:25 PM Mason Chen <mas.chen6...@gmail.com> > wrote: > > > > > Hi Shammon, > > > > > > FLIP generally looks good and I'm excited to see this feature. > > > > > > 1. I'm also curious about default implementations. Would atlas/datahub > be > > > supported by default? > > > 2. The FLIP title is confusing to me, especially in distinguishing it > > from > > > FLIP-314. Would a better FLIP title be "Support Catalog Metadata > > Listener" > > > or something alike? > > > > > > Best, > > > Mason > > > > > > On Tue, Jun 6, 2023 at 3:33 AM Jing Ge <j...@ververica.com.invalid> > > wrote: > > > > > > > Hi Shammon, > > > > > > > > Thanks for the clarification. Just out of curiosity, if the context > is > > > not > > > > part of the event, why should it be the input parameter of each > onEvent > > > > call? > > > > > > > > Best regards, > > > > Jing > > > > > > > > On Tue, Jun 6, 2023 at 11:58 AM Leonard Xu <xbjt...@gmail.com> > wrote: > > > > > > > > > Thanks Shammon for the timely update, the updated FLIP looks good > to > > > me. > > > > > > > > > > Hope to see the vote thread and following FLIP-314 discussion > thread. > > > > > > > > > > Best, > > > > > Leonard > > > > > > > > > > > On Jun 6, 2023, at 5:04 PM, Shammon FY <zjur...@gmail.com> > wrote: > > > > > > > > > > > > Hi, > > > > > > > > > > > > Thanks for all the feedback. > > > > > > > > > > > > For @Jing Ge, > > > > > > I forget to update the demo code in the FLIP, the method is > > > > > > `onEvent(CatalogModificationEvent, CatalogModificationContext)` > and > > > > there > > > > > > is no `onEvent(CatalogModificationEvent)`. I have updated the > code. > > > > > Context > > > > > > contains some additional information that is not part of an > Event, > > > but > > > > > > needs to be used in the listener, so we separate it from the > event. > > > > > > > > > > > > For @Panagiotis, > > > > > > I think `ioExecutor` make sense to me and I have added it in > > > > > > `ContextModificationContext`, thanks > > > > > > > > > > > > For @Leonard, > > > > > > Thanks for your input. > > > > > > 1. I have updated `CatalogModificationContext` as an interface, > as > > > well > > > > > as > > > > > > Context in CatalogModificationListenerFactory > > > > > > 2. Configuration sounds good to me, I have updated the method > name > > > and > > > > > > getConfiguration in Context > > > > > > > > > > > > For @David, > > > > > > Yes, you're right. The listener will only be used on the client > > side > > > > and > > > > > > won't introduce a new code path for running per-job/per-session > > jobs. > > > > The > > > > > > listener will be created in `TableEnvironment` and `SqlGateway` > > which > > > > > can a > > > > > > `CatalogManager` with the listener. > > > > > > > > > > > > > > > > > > Best, > > > > > > Shammon FY > > > > > > > > > > > > > > > > > > On Tue, Jun 6, 2023 at 3:33 PM David Morávek < > > > david.mora...@gmail.com> > > > > > > wrote: > > > > > > > > > > > >> Hi, > > > > > >> > > > > > >> Thanks for the FLIP! Data lineage is an important problem to > > tackle. > > > > > >> > > > > > >> Can you please expand on how this is planned to be wired into > the > > > > > >> JobManager? As I understand, the listeners will be configured > > > globally > > > > > (per > > > > > >> cluster), so this won't introduce a new code path for running > > > per-job > > > > / > > > > > >> per-session user code. Is that correct? > > > > > >> > > > > > >> Best, > > > > > >> D > > > > > >> > > > > > >> On Tue, Jun 6, 2023 at 9:17 AM Leonard Xu <xbjt...@gmail.com> > > > wrote: > > > > > >> > > > > > >>> Thanks Shammon for driving this FLIP forward, I’ve several > > comments > > > > > about > > > > > >>> the updated FLIP. > > > > > >>> > > > > > >>> 1. CatalogModificationContext is introduced as a class instead > of > > > an > > > > > >>> interface, is it a typo? > > > > > >>> > > > > > >>> 2. The FLIP defined multiple Map<String, String> config(); > > > methods > > > > in > > > > > >>> some Context classes, Could we use Configuration > > > > > >> getConfiguration();Class > > > > > >>> org.apache.flink.configuration.Configuration is recommend as > it’s > > > > > public > > > > > >>> API and offers more useful methods as well. > > > > > >>> > > > > > >>> 3. The Context of CatalogModificationListenerFactory should be > an > > > > > >>> interface too, and getUserClassLoder() > > > > > >>> would be more aligned with flink’s naming style. > > > > > >>> > > > > > >>> > > > > > >>> Best, > > > > > >>> Leonard > > > > > >>> > > > > > >>>> On May 26, 2023, at 4:08 PM, Shammon FY <zjur...@gmail.com> > > > wrote: > > > > > >>>> > > > > > >>>> Hi devs, > > > > > >>>> > > > > > >>>> We would like to bring up a discussion about FLIP-294: Support > > > > > >> Customized > > > > > >>>> Job Meta Data Listener[1]. We have had several discussions > with > > > Jark > > > > > >> Wu, > > > > > >>>> Leonard Xu, Dong Lin, Qingsheng Ren and Poorvank about the > > > functions > > > > > >> and > > > > > >>>> interfaces, and thanks for their valuable advice. > > > > > >>>> The overall job and connector information is divided into > > metadata > > > > and > > > > > >>>> lineage, this FLIP focuses on metadata and lineage will be > > > discussed > > > > > in > > > > > >>>> another FLIP in the future. In this FLIP we want to add a > > > customized > > > > > >>>> listener in Flink to report catalog modifications to external > > > > metadata > > > > > >>>> systems such as datahub[2] or atlas[3]. Users can view the > > > specific > > > > > >>>> information of connectors such as source and sink for Flink > jobs > > > in > > > > > >> these > > > > > >>>> systems, including fields, watermarks, partitions, etc. > > > > > >>>> > > > > > >>>> Looking forward to hearing from you, thanks. > > > > > >>>> > > > > > >>>> > > > > > >>>> [1] > > > > > >>>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-294%3A+Support+Customized+Job+Meta+Data+Listener > > > > > >>>> [2] https://datahub.io/ > > > > > >>>> [3] https://atlas.apache.org/#/ > > > > > >>> > > > > > >>> > > > > > >> > > > > > > > > > > > > > > > > > > > >