Hi Sunitha, dependency looks good. I'd probably bump the version to 1.1.0 though (version is off-cycle to Flink as of now to accelerate releases of this young feature).
Best, Arvid On Tue, Sep 15, 2020 at 5:10 PM s_penakalap...@yahoo.com < s_penakalap...@yahoo.com> wrote: > Hi Arvid, > > Thank you!!! > > Will check change data capture approach. Please confirm including > dependency and adding sourceFunction should help us to achieve CDC. > > <dependency> > <groupId>com.alibaba.ververica</groupId> > <artifactId>flink-connector-postgre-cdc</artifactId> > <version>1.0.0</version> > </dependency > > > Regards, > Sunitha > > > On Monday, September 14, 2020, 05:10:57 PM GMT+5:30, Arvid Heise < > ar...@ververica.com> wrote: > > > Hi Sunitha, > > to listen to changes in your database a change-data-capture approach > should be taken [1], which is supported in Flink since 1.11. > > Basically, a tool like debezium [2] will monitor the changelog of the > database and publish the result as a change stream, which can be ingested > in Flink as another source. You can then use the change stream to build > dynamic look-up tables in Flink and enrich your data as desired. > > Also have a look at this presentation for a better overview [3]. > > [1] > https://flink.apache.org/news/2020/07/06/release-1.11.0.html#table-apisql-support-for-change-data-capture-cdc > [2] https://debezium.io/ > [3] https://noti.st/morsapaes/liQzgs/slides > > On Wed, Sep 9, 2020 at 11:13 AM Timo Walther <twal...@apache.org> wrote: > > Flink's built-in JDBC connector will read the data only once. JDBC does > not provide means to continously monitor a database table. > > It depends on the size of your database, if you parameter table is small > it might be sufficient to write a simple Flink connector that > periodically reads the table and ingests the data to the streaming > pipeline. For larger database/streaming integrations, it might be worth > to look into Kafka's Connect API. Also Debezium where you hook into > database logs for retrieving continous data but this might be overkill > for your usecase. > > The link that I've sent you to for streaming pattern slides should work > after registration. > > Regards, > Timo > > > On 09.09.20 09:49, s_penakalap...@yahoo.com wrote: > > > > Hi Timo, > > > > Thank you for the suggestions. > > > > I see now both Process function and CEP approach will not fit in. Now if > > I follow the third approach to stream the values from database() . Is it > > possible to stream data continuously? > > > > If I follow the bellow approach, both I see one time load only not > > continuously stream > > Using JDBCInputFormat this will execute the query only once , so it will > > not be a stream data. when we try to iterate source this may iterate > > only on the data already fetched > > Using RichFlatMapFunctions, in open() if I try to connect to DB again > > this would be one time load. If I connect database in flatmap() then it > > would lead to multiple hits to database. > > > > Request your help on how to continuously stream the data, If possible > > sample source code for reference to stream database. Please help me > > badly stuck. > > > > In the mail, I see you asked me to register. Are you referring to any > > training here or any other registration. > > > > > > Regards, > > Sunitha. > > On Tuesday, September 8, 2020, 08:19:49 PM GMT+5:30, Timo Walther > > <twal...@apache.org> wrote: > > > > > > Hi Sunitha, > > > > what you are describing is a typical streaming enrichment. We need to > > enrich the stream with some data from a database. There are different > > strategies to handle this: > > > > 1) You are querying the database for every record. This is usually not > > what you want because it would slow down your pipeline due to the > > communication latenties to your database. It would also cause a lot of > > pressure to the database in general. > > > > 2) You only query database from time to time and store the latest value > > in a ProcessFunction ValueState or MapState. > > > > 3) You stream in the values as well and use connect() [1]. > > > > In any case, I think CEP might not be useful for this case. If you > > really want to do option 1, it might make sense to also checkout the SQL > > API of Flink because it offers different kind of joins with very good > > abstraction. `Join with a Temporal Table` offers a JDBC connector for > > lookups in your database. > > > > If you like to use DataStream API, I would also recommend the Pattern > > slides here [3] (unfortunately you have to register first). > > > > Regards, > > Timo > > > > [1] > > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/learn-flink/etl.html#connected-streams > > [2] > > > https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/streaming/joins.html > > [3] https://training.ververica.com/decks/patterns/ > > > > > > On 07.09.20 17:25, s_penakalap...@yahoo.com > > <mailto:s_penakalap...@yahoo.com> wrote: > > > Hi All, > > > > > > I am new to Flink, request your help!!! > > > > > > My scenario : > > > 1> we receive Json messages at a very high frequency like 10,000 > > > messages / second > > > 2> we need to raise an Alert for a particular user if there is any > > > breach in threshold value against each attribute in Json. > > > 3> These threshold values are part of my database table and can be > > > frequently updated by different user. > > > 4> In realtime I would like to know how to get latest data from the > > > database. > > > > > > I tried using Flink CEP Pattern approach to generate alert. I would > like > > > to get some inputs on how I can implement the realtime lookup tables > in > > > Flink Java while monitoring alert, any sample code reference. > > > > > > Also for such scenarios do you recommend to use Flink CEP approach or > we > > > need to use Process function approach. > > > > > > > > > Regards, > > > Sunitha. > > > > > > -- > > Arvid Heise | Senior Java Developer > > <https://www.ververica.com/> > > Follow us @VervericaData > > -- > > Join Flink Forward <https://flink-forward.org/> - The Apache Flink > Conference > > Stream Processing | Event Driven | Real Time > > -- > > Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany > > -- > Ververica GmbH > Registered at Amtsgericht Charlottenburg: HRB 158244 B > Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji > (Toni) Cheng > -- Arvid Heise | Senior Java Developer <https://www.ververica.com/> Follow us @VervericaData -- Join Flink Forward <https://flink-forward.org/> - The Apache Flink Conference Stream Processing | Event Driven | Real Time -- Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany -- Ververica GmbH Registered at Amtsgericht Charlottenburg: HRB 158244 B Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji (Toni) Cheng