Yes, I think having a time interval execution (for the AppendableSink)
should be a good idea.
Can you please open a Jira issue[1] for further discussion.

--
Rong

[1] https://issues.apache.org/jira/projects/FLINK/issues

On Thu, Oct 17, 2019 at 9:48 AM John Smith <java.dev....@gmail.com> wrote:

> Yes correct, I set it to batch interval = 1 and it works fine. Anyways I
> think the JDBC sink could have some improvements like batchInterval + time
> interval execution. So if the batch doesn't fill up then execute what ever
> is left on that time interval.
>
> On Thu, 17 Oct 2019 at 12:22, Rong Rong <walter...@gmail.com> wrote:
>
>> Hi John,
>>
>> You are right. IMO the batch interval setting is used for increasing the
>> JDBC execution performance purpose.
>> The reason why your INSERT INTO statement with a `non_existing_table` the
>> exception doesn't happen is because the JDBCAppendableSink does not check
>> table existence beforehand. That being said it should fail at the first
>> batch execution.
>>
>> Also I think the `batchInterval` setting is local to the task , this
>> means the default 5000 batchInterval is per-partition.
>>
>> --
>> Rong
>>
>> On Wed, Oct 16, 2019 at 7:21 AM John Smith <java.dev....@gmail.com>
>> wrote:
>>
>>> Ok I think I found it. it's the batch interval setting. From what I see,
>>> if we want "realtime" stream to the database we have to set it to 1 other
>>> wise the sink will wait until, the batch interval count is reached.
>>>
>>> The batch interval mechanism doesn't see correct? If the default size is
>>> 5000 and you need to insert 5001 you will never get that 1 record?
>>>
>>> On Tue, 15 Oct 2019 at 15:54, John Smith <java.dev....@gmail.com> wrote:
>>>
>>>> Hi, using 1.8.0
>>>>
>>>> I have the following job: https://pastebin.com/ibZUE8Qx
>>>>
>>>> So the job does the following steps...
>>>> 1- Consume from Kafka and return JsonObject
>>>> 2- Map JsonObject to MyPojo
>>>> 3- Convert The stream to a table
>>>> 4- Insert the table to JDBC sink table
>>>> 5- Print the table.
>>>>
>>>> - The job seems to work with no errors and I can see the row print to
>>>> the console and I see nothing in my database.
>>>> - If I put invalid host for the database and restart the job, I get a
>>>> connection SQLException error. So at least we know that works.
>>>> - If I make a typo on the INSERT INTO statement like INSERTS INTO
>>>> non_existing_table, there are no exceptions thrown, the print happens, the
>>>> stream continues to work.
>>>> - If I drop the table from the database, same thing, no exceptions
>>>> thrown, the print happens, the stream continues to work.
>>>>
>>>> So am I missing something?
>>>>
>>>

Reply via email to