Re:Flink SQL撤回流问题

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Re:Flink SQL撤回流问题

xiao cai
场景如下:
source table:   kafka
sink table:       mysql  schem(id, dt, cnt)


insert :
insert into sink
select dt,count(distinct id) from source group by dt;


这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变
show create table sink可以发现auto_increment在不断的变大。
当超过id的取值范围,就会报错了。


 原始邮件
发件人: Michael Ran<[hidden email]>
收件人: user-zh<[hidden email]>
发送时间: 2020年9月27日(周日) 11:51
主题: Re:Flink SQL撤回流问题


详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]> 写道: >Hi: >使用Flink SQL撤回流写入MySQL,表的auto_increment 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。
Reply | Threaded
Open this post in threaded view
|

Re: Flink SQL撤回流问题

lec ssmi
是不是底层的sink在处理retract的时候,使用的是先delte再insert , 而不是直接update呢。

xiao cai <[hidden email]> 于2020年9月27日周日 下午12:08写道:

> 场景如下:
> source table:   kafka
> sink table:       mysql  schem(id, dt, cnt)
>
>
> insert :
> insert into sink
> select dt,count(distinct id) from source group by dt;
>
>
> 这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变
> show create table sink可以发现auto_increment在不断的变大。
> 当超过id的取值范围,就会报错了。
>
>
>  原始邮件
> 发件人: Michael Ran<[hidden email]>
> 收件人: user-zh<[hidden email]>
> 发送时间: 2020年9月27日(周日) 11:51
> 主题: Re:Flink SQL撤回流问题
>
>
> 详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]> 写道: >Hi:
> >使用Flink SQL撤回流写入MySQL,表的auto_increment
> 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。
Reply | Threaded
Open this post in threaded view
|

Re: Flink SQL撤回流问题

xiao cai
In reply to this post by xiao cai
如果是先delete再insert,为何主键id一直都是1呢,如果delete在insert时指定了id值,那么auto_increment是不会变的。
这是我很困惑的地方。


 原始邮件
发件人: lec ssmi<[hidden email]>
收件人: flink-user-cn<[hidden email]>
发送时间: 2020年9月27日(周日) 13:06
主题: Re: Flink SQL撤回流问题


是不是底层的sink在处理retract的时候,使用的是先delte再insert , 而不是直接update呢。 xiao cai <[hidden email]> 于2020年9月27日周日 下午12:08写道: > 场景如下: > source table: kafka > sink table: mysql schem(id, dt, cnt) > > > insert : > insert into sink > select dt,count(distinct id) from source group by dt; > > > 这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变 > show create table sink可以发现auto_increment在不断的变大。 > 当超过id的取值范围,就会报错了。 > > > 原始邮件 > 发件人: Michael Ran<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年9月27日(周日) 11:51 > 主题: Re:Flink SQL撤回流问题 > > > 详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]> 写道: >Hi: > >使用Flink SQL撤回流写入MySQL,表的auto_increment > 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。
Reply | Threaded
Open this post in threaded view
|

Re:Re: Flink SQL撤回流问题

kandy.wang






hi
你建mysql要指定主键,另外创建flink表时也要指定一下主键

PRIMARY KEY (id) NOT ENFORCED,这样就会根据主键upsert了








在 2020-09-27 13:36:25,"xiao cai" <[hidden email]> 写道:

>如果是先delete再insert,为何主键id一直都是1呢,如果delete在insert时指定了id值,那么auto_increment是不会变的。
>这是我很困惑的地方。
>
>
> 原始邮件
>发件人: lec ssmi<[hidden email]>
>收件人: flink-user-cn<[hidden email]>
>发送时间: 2020年9月27日(周日) 13:06
>主题: Re: Flink SQL撤回流问题
>
>
>是不是底层的sink在处理retract的时候,使用的是先delte再insert , 而不是直接update呢。 xiao cai <[hidden email]> 于2020年9月27日周日 下午12:08写道: > 场景如下: > source table: kafka > sink table: mysql schem(id, dt, cnt) > > > insert : > insert into sink > select dt,count(distinct id) from source group by dt; > > > 这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变 > show create table sink可以发现auto_increment在不断的变大。 > 当超过id的取值范围,就会报错了。 > > > 原始邮件 > 发件人: Michael Ran<[hidden email]> > 收件人: user-zh<[hidden email]> > 发送时间: 2020年9月27日(周日) 11:51 > 主题: Re:Flink SQL撤回流问题 > > > 详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]> 写道: >Hi: > >使用Flink SQL撤回流写入MySQL,表的auto_increment > 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink SQL撤回流问题

lec ssmi
你那个主键=1,应该是传进去的,不是mysql自动生成的吧。所以auto_increment才会一直增长啊。

kandy.wang <[hidden email]> 于2020年9月27日周日 下午2:01写道:

>
>
>
>
>
>
> hi
> 你建mysql要指定主键,另外创建flink表时也要指定一下主键
>
> PRIMARY KEY (id) NOT ENFORCED,这样就会根据主键upsert了
>
>
>
>
>
>
>
>
> 在 2020-09-27 13:36:25,"xiao cai" <[hidden email]> 写道:
>
> >如果是先delete再insert,为何主键id一直都是1呢,如果delete在insert时指定了id值,那么auto_increment是不会变的。
> >这是我很困惑的地方。
> >
> >
> > 原始邮件
> >发件人: lec ssmi<[hidden email]>
> >收件人: flink-user-cn<[hidden email]>
> >发送时间: 2020年9月27日(周日) 13:06
> >主题: Re: Flink SQL撤回流问题
> >
> >
> >是不是底层的sink在处理retract的时候,使用的是先delte再insert , 而不是直接update呢。 xiao cai <
> [hidden email]> 于2020年9月27日周日 下午12:08写道: > 场景如下: > source table: kafka >
> sink table: mysql schem(id, dt, cnt) > > > insert : > insert into sink >
> select dt,count(distinct id) from source group by dt; > > >
> 这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变 > show
> create table sink可以发现auto_increment在不断的变大。 > 当超过id的取值范围,就会报错了。 > > > 原始邮件 >
> 发件人: Michael Ran<[hidden email]> > 收件人: user-zh<
> [hidden email]> > 发送时间: 2020年9月27日(周日) 11:51 > 主题: Re:Flink
> SQL撤回流问题 > > > 详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]>
> 写道: >Hi: > >使用Flink SQL撤回流写入MySQL,表的auto_increment >
> 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。
>
Reply | Threaded
Open this post in threaded view
|

Re: Re: Flink SQL撤回流问题

xiao cai
In reply to this post by xiao cai
Hi lec ssmi:
  insert的时候没有指定id,只指定了dt和cnt,因为id在mysql的sink表里是自增的主键,所以flink sql里并没有指定。
 原始邮件
发件人: lec ssmi<[hidden email]>
收件人: flink-user-cn<[hidden email]>
发送时间: 2020年9月27日(周日) 14:25
主题: Re: Re: Flink SQL撤回流问题


你那个主键=1,应该是传进去的,不是mysql自动生成的吧。所以auto_increment才会一直增长啊。 kandy.wang <[hidden email]> 于2020年9月27日周日 下午2:01写道: > > > > > > > hi > 你建mysql要指定主键,另外创建flink表时也要指定一下主键 > > PRIMARY KEY (id) NOT ENFORCED,这样就会根据主键upsert了 > > > > > > > > > 在 2020-09-27 13:36:25,"xiao cai" <[hidden email]> 写道: > > >如果是先delete再insert,为何主键id一直都是1呢,如果delete在insert时指定了id值,那么auto_increment是不会变的。 > >这是我很困惑的地方。 > > > > > > 原始邮件 > >发件人: lec ssmi<[hidden email]> > >收件人: flink-user-cn<[hidden email]> > >发送时间: 2020年9月27日(周日) 13:06 > >主题: Re: Flink SQL撤回流问题 > > > > > >是不是底层的sink在处理retract的时候,使用的是先delte再insert , 而不是直接update呢。 xiao cai < > [hidden email]> 于2020年9月27日周日 下午12:08写道: > 场景如下: > source table: kafka > > sink table: mysql schem(id, dt, cnt) > > > insert : > insert into sink > > select dt,count(distinct id) from source group by dt; > > > > 这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变 > show > create table sink可以发现auto_increment在不断的变大。 > 当超过id的取值范围,就会报错了。 > > > 原始邮件 > > 发件人: Michael Ran<[hidden email]> > 收件人: user-zh< > [hidden email]> > 发送时间: 2020年9月27日(周日) 11:51 > 主题: Re:Flink > SQL撤回流问题 > > > 详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]> > 写道: >Hi: > >使用Flink SQL撤回流写入MySQL,表的auto_increment > > 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。 >
Reply | Threaded
Open this post in threaded view
|

Re:Re: Re: Flink SQL撤回流问题

Michael Ran
没有传入id,始终是1 ? <br/>那就是第一次insert  update 之后,生成的1.<br/><br/>后面都是<br/>insert into table(dt,num) values(dt,新数量)  ON DUPLICATE KEY UPDATE dt=values(dt)<br/><br/>你模拟下这个语句呢,看看id成为1 之后,是不是就不变了
在 2020-09-27 14:32:57,"xiao cai" <[hidden email]> 写道:

>Hi lec ssmi:
>  insert的时候没有指定id,只指定了dt和cnt,因为id在mysql的sink表里是自增的主键,所以flink sql里并没有指定。
> 原始邮件
>发件人: lec ssmi<[hidden email]>
>收件人: flink-user-cn<[hidden email]>
>发送时间: 2020年9月27日(周日) 14:25
>主题: Re: Re: Flink SQL撤回流问题
>
>
>你那个主键=1,应该是传进去的,不是mysql自动生成的吧。所以auto_increment才会一直增长啊。 kandy.wang <[hidden email]> 于2020年9月27日周日 下午2:01写道: > > > > > > > hi > 你建mysql要指定主键,另外创建flink表时也要指定一下主键 > > PRIMARY KEY (id) NOT ENFORCED,这样就会根据主键upsert了 > > > > > > > > > 在 2020-09-27 13:36:25,"xiao cai" <[hidden email]> 写道: > > >如果是先delete再insert,为何主键id一直都是1呢,如果delete在insert时指定了id值,那么auto_increment是不会变的。 > >这是我很困惑的地方。 > > > > > > 原始邮件 > >发件人: lec ssmi<[hidden email]> > >收件人: flink-user-cn<[hidden email]> > >发送时间: 2020年9月27日(周日) 13:06 > >主题: Re: Flink SQL撤回流问题 > > > > > >是不是底层的sink在处理retract的时候,使用的是先delte再insert , 而不是直接update呢。 xiao cai < > [hidden email]> 于2020年9月27日周日 下午12:08写道: > 场景如下: > source table: kafka > > sink table: mysql schem(id, dt, cnt) > > > insert : > insert into sink > > select dt,count(distinct id) from source group by dt; > > > > 这时mysql对应sink表中有一条数据(1, 2020-09-25, 100),随着事件消费,cnt字段会不断变化,id,dt保持不变 > show > create table sink可以发现auto_increment在不断的变大。 > 当超过id的取值范围,就会报错了。 > > > 原始邮件 > > 发件人: Michael Ran<[hidden email]> > 收件人: user-zh< > [hidden email]> > 发送时间: 2020年9月27日(周日) 11:51 > 主题: Re:Flink > SQL撤回流问题 > > > 详细场景描述下呢 在 2020-09-27 11:48:36,"xiao cai" <[hidden email]> > 写道: >Hi: > >使用Flink SQL撤回流写入MySQL,表的auto_increment > > 越来越大是为什么,我的输出结果只有一条,mysql表里也只有一条数据,自增主键id的值一直为1,但是auto_increment却越来越大。求解答。 >