You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by xuhaiLong <xi...@163.com> on 2020/06/23 11:17:53 UTC

Flink DataStream

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合 再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API 还有其他方法实现吗?




感谢!!




Re: Flink DataStream

Posted by xuhaiLong <xi...@163.com>.
是我的问题,引用了old planner。感谢!


On 6/23/2020 21:05,LakeShen<sh...@gmail.com> wrote:
Hi xuhaiLong,

看你的依赖,应该用的 old planner,你要使用 blink planner 才能使用row_number 函数。要使用
flink-table-planner-blink_2.11
具体文档参考:
https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/#table-program-dependencies

Best,
LakeShen

xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午8:14写道:

"org.apache.flink" %% "flink-table-api-scala-bridge" % "1.10.1",
"org.apache.flink" %% "flink-table-planner" % "1.10.1" % "provided",
看下粘贴的 sbt 依赖
On 6/23/2020 20:06,Jark Wu<im...@gmail.com> wrote:
图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。

On Tue, 23 Jun 2020 at 19:59, xuhaiLong <xi...@163.com> wrote:

使用的是1.10.1,在 table api 无法使用ROW_NUMBER
On 6/23/2020 19:52,Jark Wu<im...@gmail.com> <im...@gmail.com> wrote:

Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen <sh...@gmail.com> wrote:

Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API

还有其他方法实现吗?





感谢!!








Re: Flink DataStream

Posted by LakeShen <sh...@gmail.com>.
Hi xuhaiLong,

看你的依赖,应该用的 old planner,你要使用 blink planner 才能使用row_number 函数。要使用
flink-table-planner-blink_2.11
具体文档参考:
https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/#table-program-dependencies

Best,
LakeShen

xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午8:14写道:

> "org.apache.flink" %% "flink-table-api-scala-bridge" % "1.10.1",
> "org.apache.flink" %% "flink-table-planner" % "1.10.1" % "provided",
>  看下粘贴的 sbt 依赖
> On 6/23/2020 20:06,Jark Wu<im...@gmail.com> wrote:
> 图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。
>
> On Tue, 23 Jun 2020 at 19:59, xuhaiLong <xi...@163.com> wrote:
>
> 使用的是1.10.1,在 table api 无法使用ROW_NUMBER
> On 6/23/2020 19:52,Jark Wu<im...@gmail.com> <im...@gmail.com> wrote:
>
> Hi xuhaiLong,
>
> 1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
> planner 呢?
>
> Best,
> Jark
>
> On Tue, 23 Jun 2020 at 19:44, LakeShen <sh...@gmail.com> wrote:
>
> Hi xuhaiLong,
>
> 看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。
>
> Best,
> LakeShen
>
> xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:
>
> Hi
>
> 请教一个问题
>
>
> 我需要对一个类似这样的数据进行计算获取用户 categoryId
> | userId | articleID | categoryId | score |
> | 01 | A | 1 | 10 |
> | 01 | B | 1 | 20 |
> | 01 | C | 2 | 30 |
>
>
>
>
> 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> 再通过状态做TopN排序,有没有其他更好的方案来实现?
>
>
> 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
>
> 还有其他方法实现吗?
>
>
>
>
>
> 感谢!!
>
>
>
>
>
>
>

Re: Flink DataStream

Posted by xuhaiLong <xi...@163.com>.
"org.apache.flink" %% "flink-table-api-scala-bridge" % "1.10.1",
"org.apache.flink" %% "flink-table-planner" % "1.10.1" % "provided",
 看下粘贴的 sbt 依赖
On 6/23/2020 20:06,Jark Wu<im...@gmail.com> wrote:
图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。

On Tue, 23 Jun 2020 at 19:59, xuhaiLong <xi...@163.com> wrote:

使用的是1.10.1,在 table api 无法使用ROW_NUMBER
On 6/23/2020 19:52,Jark Wu<im...@gmail.com> <im...@gmail.com> wrote:

Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen <sh...@gmail.com> wrote:

Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API

还有其他方法实现吗?





感谢!!







Re: Flink DataStream

Posted by Jark Wu <im...@gmail.com>.
图片无法查看,你可以把图片上传到某图床,然后将链接贴这里。

On Tue, 23 Jun 2020 at 19:59, xuhaiLong <xi...@163.com> wrote:

> 使用的是1.10.1,在 table api 无法使用ROW_NUMBER
> On 6/23/2020 19:52,Jark Wu<im...@gmail.com> <im...@gmail.com> wrote:
>
> Hi xuhaiLong,
>
> 1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
> planner 呢?
>
> Best,
> Jark
>
> On Tue, 23 Jun 2020 at 19:44, LakeShen <sh...@gmail.com> wrote:
>
> Hi xuhaiLong,
>
> 看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。
>
> Best,
> LakeShen
>
> xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:
>
> Hi
>
> 请教一个问题
>
>
> 我需要对一个类似这样的数据进行计算获取用户 categoryId
> | userId | articleID | categoryId | score |
> | 01 | A | 1 | 10 |
> | 01 | B | 1 | 20 |
> | 01 | C | 2 | 30 |
>
>
>
>
> 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> 再通过状态做TopN排序,有没有其他更好的方案来实现?
>
>
> 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
>
> 还有其他方法实现吗?
>
>
>
>
>
> 感谢!!
>
>
>
>
>
>

Re: Flink DataStream

Posted by xuhaiLong <xi...@163.com>.
使用的是1.10.1,在 table api 无法使用ROW_NUMBER
On 6/23/2020 19:52,Jark Wu<im...@gmail.com> wrote:
Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen <sh...@gmail.com> wrote:

Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:

Hi

请教一个问题


我需要对一个类似这样的数据进行计算获取用户 categoryId
| userId | articleID | categoryId | score |
| 01 | A | 1 | 10 |
| 01 | B | 1 | 20 |
| 01 | C | 2 | 30 |




目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
再通过状态做TopN排序,有没有其他更好的方案来实现?


我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
还有其他方法实现吗?




感谢!!






Re: Flink DataStream

Posted by Jark Wu <im...@gmail.com>.
Hi xuhaiLong,

1.10 blink planner 是支持 ROW_NUMBER() over 的 (配合 rownum <= N 使用)。你是不是用的 old
planner 呢?

Best,
Jark

On Tue, 23 Jun 2020 at 19:44, LakeShen <sh...@gmail.com> wrote:

> Hi xuhaiLong,
>
> 看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。
>
> Best,
> LakeShen
>
> xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:
>
> > Hi
> >
> > 请教一个问题
> >
> >
> > 我需要对一个类似这样的数据进行计算获取用户 categoryId
> > | userId | articleID | categoryId | score |
> > | 01 | A | 1 | 10 |
> > | 01 | B | 1 | 20 |
> > | 01 | C | 2 | 30 |
> >
> >
> >
> >
> > 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> > 再通过状态做TopN排序,有没有其他更好的方案来实现?
> >
> >
> > 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API
> 还有其他方法实现吗?
> >
> >
> >
> >
> > 感谢!!
> >
> >
> >
> >
>

Re: Flink DataStream

Posted by LakeShen <sh...@gmail.com>.
Hi xuhaiLong,

看下是否能够在 Flink SQL 中,通过自定义 UDTF 来满足你的需求。

Best,
LakeShen

xuhaiLong <xi...@163.com> 于2020年6月23日周二 下午7:18写道:

> Hi
>
> 请教一个问题
>
>
> 我需要对一个类似这样的数据进行计算获取用户 categoryId
> | userId | articleID | categoryId | score |
> | 01 | A | 1 | 10 |
> | 01 | B | 1 | 20 |
> | 01 | C | 2 | 30 |
>
>
>
>
> 目前我的实现是使用tableAPI 根据 UserId和categoryID 分组做 score 聚合
> 再通过状态做TopN排序,有没有其他更好的方案来实现?
>
>
> 我使用过 ROW_NUMBER() over() ,在 flink 1.10 上,并无法使用。分组聚合除了使用Table API 还有其他方法实现吗?
>
>
>
>
> 感谢!!
>
>
>
>