Re: flink barrier对齐 理解

2020-05-16 文章 Benchao Li
我感觉应该是这样的:

比如有两个算子
A ---hash---> B
A和B分别有2和3个并发。那就是说对于B的某个subtask来讲,需要对齐上游A的2个subtask发过来的barrier,才能做checkpoint。


了不起的盖茨比 <573693...@qq.com> 于2020年5月17日周日 下午1:16写道:

> 可以理解成,有多个subtask时候,需要等待不同subtask消费数据完毕,之后做checkpoint
>
>
>
>
>
> -- 原始邮件 --
> 发件人: Benchao Li  发送时间: 2020年5月17日 11:34
> 收件人: user-zh  主题: 回复:flink barrier对齐 理解
>
>
>
> Hi,
>
> 我对这块不是非常了解,但是我理解的barrier对齐,指的是同一个Task的多个subtask之间对齐吧。
> 比如你只有一个source,然后经过keyby之后做了其他的操作,那也是存在barrier对齐的。
>
> 了不起的盖茨比 <573693...@qq.com 于2020年5月17日周日 上午11:29写道:
>
>  请教一下,如果只有一个source,就不需要对齐了吧?只有source多个数据源时候才需要对齐?
>
>
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn



-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


回复:flink barrier对齐 理解

2020-05-16 文章 了不起的盖茨比
可以理解成,有多个subtask时候,需要等待不同subtask消费数据完毕,之后做checkpoint





-- 原始邮件 --
发件人: Benchao Li 

Re: Flink SQL解析问题

2020-05-16 文章 Jark Wu
我记得这个好像是个 bug,已经在 calcite 修复了。 你用的是哪个版本的 flink?

Best,
Jark

On Thu, 14 May 2020 at 15:30, Senior.Hu <463302...@qq.com> wrote:

> Hi All,
>  在用FlinkSqlParserImpl.FACTORY解析Flink DML SQL时,发现解析Join with Temporal
> Table语法,会自动加上LATERAL关键字,如下所示
>  LEFT JOIN
> side_room FOR SYSTEM_TIME AS OF a1.proctime as
> a2
>   ON
> a1.rowkey_room = a2.rowkey
>  解析后变成如下:
> LEFT JOIN LATERAL `side_room` FOR SYSTEM_TIME AS OF
> `a1`.`proctime` AS `a2` ON `a1`.`rowkey_room` = `a2`.`rowkey`
> 
>  此SQL语法在Flink SQL中执行会报错如下:
>  Caused by: org.apache.flink.table.api.SqlParserException: SQL parse
> failed. Encountered "`side_room`" at line 7, column 19.
>  Was expecting one of:
>   "TABLE" ...
>   "(" ...
> 
> 我的SqlParser.Config类定义如下:
> private final SqlParser.Config config = SqlParser.configBuilder()
>  
> .setParserFactory(FlinkSqlParserImpl.FACTORY)
>   .setQuoting(Quoting.BACK_TICK)
>  
> .setUnquotedCasing(Casing.UNCHANGED)
>  
> .setQuotedCasing(Casing.UNCHANGED)
>   .setCaseSensitive(true)
>   .build();
> 
>  不知道这个地方为什么会出现这种情况,或者是我这边使用方法不对?


Re: flink barrier对齐 理解

2020-05-16 文章 Benchao Li
Hi,

我对这块不是非常了解,但是我理解的barrier对齐,指的是同一个Task的多个subtask之间对齐吧。
比如你只有一个source,然后经过keyby之后做了其他的操作,那也是存在barrier对齐的。

了不起的盖茨比 <573693...@qq.com> 于2020年5月17日周日 上午11:29写道:

> 请教一下,如果只有一个source,就不需要对齐了吧?只有source多个数据源时候才需要对齐?



-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


flink barrier对齐 理解

2020-05-16 文章 了不起的盖茨比
请教一下,如果只有一个source,就不需要对齐了吧?只有source多个数据源时候才需要对齐?

Re: flink build-in 的 udf 的源码

2020-05-16 文章 Benchao Li
Hi tison,

我不是很清楚我是否理解了你的问题,我先尝试解释一下,如果没有解释清楚,你可以再细化一下你的问题。

这个代码生成的过程整体是这样子的:
1. 不管是SQL,还是Table API,在经过前面的各种处理之后,都会转成逻辑执行计划;
2. 逻辑执行计划会经过优化,然后转成物理执行计划
3. 物理执行计划优化后,会翻译到Transformations(也就是DataStream里面的概念)
  3.1. 在翻译过程中,就是代码生成参与的地方。我理解这里最主要的生成其实是表达式,这里面就包含了各种内置函数、UDF等
  3.2.
如果从SQL的处理流程来讲,这里应该是就这一次代码生成的阶段;但是对于里面的各个函数来讲,他们分别属于不同的表达式,所以每个函数对应的call都会都一遍代码生成。
  3.3  然后如果是同一个函数,在多个不同的物理执行算子里面出现,他们是互相不相关的。也就是会被生成多次。


tison  于2020年5月16日周六 下午11:17写道:

> Hi Benchao,
>
> 我想搭车问一下这个代码生成是全局仅一次还是每个 call 都会走一遍流程?或者是其他策略。
>
> Best,
> tison.
>
>
> Benchao Li  于2020年5月16日周六 下午9:50写道:
>
> > Hi,
> >
> > Flink内置函数的实现方式跟udf不太一样,很多函数是直接用的代码生成来做的。
> >
> > 下面是以blink planner为例,大概说下流程:
> > 1. FlinkSqlOperatorTable 这个类里面放的是内置函数表,这个表会被calcite parse
> > SQL的时候用到,直接把这些函数识别为具体的某个函数定义。
> > 2.
> >
> >
> 然后再代码生成阶段,会识别到这些函数,根据不同的函数定义,生成不同的函数实现调用。这部分你可以直接看下`org.apache.flink.table.planner.codegen.calls`这个package下的代码。
> > 3. 上面第2条说的主要是scalar function的生成方式,agg
> >
> >
> function还要特殊一点,这部分可以参考下`org.apache.flink.table.planner.functions.aggfunctions`这个package下的代码。
> >
> >
> > venn  于2020年5月16日周六 下午3:53写道:
> >
> > > 各位大佬,请问下,flink 内置的 udf 的源码在什么位置,还有在哪里完成的函数注
> > > 册? 非常感谢各位大佬回复
> > >
> > >
> > >
> > > Thanks a lot !
> > >
> > >
> > >
> > >
> >
> > --
> >
> > Benchao Li
> > School of Electronics Engineering and Computer Science, Peking University
> > Tel:+86-15650713730
> > Email: libenc...@gmail.com; libenc...@pku.edu.cn
> >
>


-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


Re: flink build-in 的 udf 的源码

2020-05-16 文章 tison
Hi Benchao,

我想搭车问一下这个代码生成是全局仅一次还是每个 call 都会走一遍流程?或者是其他策略。

Best,
tison.


Benchao Li  于2020年5月16日周六 下午9:50写道:

> Hi,
>
> Flink内置函数的实现方式跟udf不太一样,很多函数是直接用的代码生成来做的。
>
> 下面是以blink planner为例,大概说下流程:
> 1. FlinkSqlOperatorTable 这个类里面放的是内置函数表,这个表会被calcite parse
> SQL的时候用到,直接把这些函数识别为具体的某个函数定义。
> 2.
>
> 然后再代码生成阶段,会识别到这些函数,根据不同的函数定义,生成不同的函数实现调用。这部分你可以直接看下`org.apache.flink.table.planner.codegen.calls`这个package下的代码。
> 3. 上面第2条说的主要是scalar function的生成方式,agg
>
> function还要特殊一点,这部分可以参考下`org.apache.flink.table.planner.functions.aggfunctions`这个package下的代码。
>
>
> venn  于2020年5月16日周六 下午3:53写道:
>
> > 各位大佬,请问下,flink 内置的 udf 的源码在什么位置,还有在哪里完成的函数注
> > 册? 非常感谢各位大佬回复
> >
> >
> >
> > Thanks a lot !
> >
> >
> >
> >
>
> --
>
> Benchao Li
> School of Electronics Engineering and Computer Science, Peking University
> Tel:+86-15650713730
> Email: libenc...@gmail.com; libenc...@pku.edu.cn
>


??????flink ????????join

2020-05-16 文章 jimandlice
??datastream




| |
jimandlice
|
|
??jimandl...@163.com
|

Signature is customized by Netease Mail Master

??2020??05??16?? 23:00??1048262223 ??
??dataset api??



----
??: "jimandlice"

??????flink ????????join

2020-05-16 文章 1048262223
??dataset api??



----
??: "jimandlice"

回复:flink 历史数据join

2020-05-16 文章 jimandlice
使用sql api的方式




| |
jimandlice
|
|
邮箱:jimandl...@163.com
|

Signature is customized by Netease Mail Master

在2020年05月16日 22:51,jimandlice 写道:
大佬 你好 ! kafka 写入hive 您这边demo么 我这边 只完成了hdfs 应该可以写到hive上去 能提供一个demo么
在 2020-05-15 19:41:59,"zhisheng"  写道:
>看看 Flink UI 上 作业 task 的 sent 和 receive
>的数据是否还在变更一般可以知道作业是否还在进行,等不动了,则意味着你这两个表固定的数据都已经 join 完了,等 checkpoint 也
>complete 完成了即可以停掉作业。
>
>实在不放心,不知道啥时候跑完,可以晚上开始跑,第二天白天再去看看就好了
>
>jimandlice  于2020年5月15日周五 下午7:38写道:
>
>> 是的 我想用datastrem 来做  join停的话 需要注意什么
>>
>>
>>
>>
>> | |
>> jimandlice
>> |
>> |
>> 邮箱:jimandl...@163.com
>> |
>>
>> Signature is customized by Netease Mail Master
>>
>> 在2020年05月15日 19:36,zhisheng 写道:
>> 所以现在纠结的是使用 DataStream 还是 DataSet ?
>>
>> 可以使用 DataStream,作业 join 完了停掉作业就行了。
>>
>> 小黑  于2020年5月15日周五 下午3:28写道:
>>
>> >
>> > 先工作上有一个需求  2个数据源 一个是mysql 一个是Hbase 2者上 有很多历史数据 这2个数据源上 已经没有数据写入了 都是历史数据
>> > 现在要把这2个数据源的某两张张表 进行join 生成之后的数据 存在放在hdfs上 导入到hive上去现在就是不知道
>> > 是用datatream还是dataset  没有一个很好的 解决方案 望给与回复
>> >
>> >
>> >
>> >
>> >
>>


Re:Re: flink 历史数据join

2020-05-16 文章 jimandlice
大佬 你好 ! kafka 写入hive 您这边demo么 我这边 只完成了hdfs 应该可以写到hive上去 能提供一个demo么
在 2020-05-15 19:41:59,"zhisheng"  写道:
>看看 Flink UI 上 作业 task 的 sent 和 receive
>的数据是否还在变更一般可以知道作业是否还在进行,等不动了,则意味着你这两个表固定的数据都已经 join 完了,等 checkpoint 也
>complete 完成了即可以停掉作业。
>
>实在不放心,不知道啥时候跑完,可以晚上开始跑,第二天白天再去看看就好了
>
>jimandlice  于2020年5月15日周五 下午7:38写道:
>
>> 是的 我想用datastrem 来做  join停的话 需要注意什么
>>
>>
>>
>>
>> | |
>> jimandlice
>> |
>> |
>> 邮箱:jimandl...@163.com
>> |
>>
>> Signature is customized by Netease Mail Master
>>
>> 在2020年05月15日 19:36,zhisheng 写道:
>> 所以现在纠结的是使用 DataStream 还是 DataSet ?
>>
>> 可以使用 DataStream,作业 join 完了停掉作业就行了。
>>
>> 小黑  于2020年5月15日周五 下午3:28写道:
>>
>> >
>> > 先工作上有一个需求  2个数据源 一个是mysql 一个是Hbase 2者上 有很多历史数据 这2个数据源上 已经没有数据写入了 都是历史数据
>> > 现在要把这2个数据源的某两张张表 进行join 生成之后的数据 存在放在hdfs上 导入到hive上去现在就是不知道
>> > 是用datatream还是dataset  没有一个很好的 解决方案 望给与回复
>> >
>> >
>> >
>> >
>> >
>>


Re: flink build-in 的 udf 的源码

2020-05-16 文章 Benchao Li
Hi,

Flink内置函数的实现方式跟udf不太一样,很多函数是直接用的代码生成来做的。

下面是以blink planner为例,大概说下流程:
1. FlinkSqlOperatorTable 这个类里面放的是内置函数表,这个表会被calcite parse
SQL的时候用到,直接把这些函数识别为具体的某个函数定义。
2.
然后再代码生成阶段,会识别到这些函数,根据不同的函数定义,生成不同的函数实现调用。这部分你可以直接看下`org.apache.flink.table.planner.codegen.calls`这个package下的代码。
3. 上面第2条说的主要是scalar function的生成方式,agg
function还要特殊一点,这部分可以参考下`org.apache.flink.table.planner.functions.aggfunctions`这个package下的代码。


venn  于2020年5月16日周六 下午3:53写道:

> 各位大佬,请问下,flink 内置的 udf 的源码在什么位置,还有在哪里完成的函数注
> 册? 非常感谢各位大佬回复
>
>
>
> Thanks a lot !
>
>
>
>

-- 

Benchao Li
School of Electronics Engineering and Computer Science, Peking University
Tel:+86-15650713730
Email: libenc...@gmail.com; libenc...@pku.edu.cn


回复: 回复:flink1.10 ddl metric 不显示

2020-05-16 文章 了不起的盖茨比
谢谢老哥 终于明白了





-- 原始邮件 --
发件人: venn 

回复: 回复:flink1.10 ddl metric 不显示

2020-05-16 文章 venn
Subtask 显示的metrics 是整个 算子链的输入、输出的,算子全部 chain 
在一起后,对应的输入、输出就是外部系统了,所有看不到。可以去metrics 页面查看具体算子的metrics 指标

-邮件原件-
发件人: user-zh-return-3563-wxchunjhyy=163@flink.apache.org 
 代表 了不起的盖茨比
发送时间: 2020年5月16日 11:08
收件人: user-zh 
主题: 回复:flink1.10 ddl metric 不显示

为什么chain一起就无法看到了???求大佬解释一下。





-- 原始邮件 --
发件人: zhisheng 

flink build-in 的 udf 的源码

2020-05-16 文章 venn
各位大佬,请问下,flink 内置的 udf 的源码在什么位置,还有在哪里完成的函数注
册? 非常感谢各位大佬回复

 

Thanks a lot !