Flink SQL的Top-N实战

1 Top-N

      目前仅Blink计划器支持Top-N。
      Top-N查询时根据列排序找到N个最大或最小的值。最大值集合最小值集都被视为是一种Top-N的查询。若在批处理或流处理的表中需要显示出满足条件的N个最底层记录或最顶层记录,Top-N查询将会十分有用。得到的结果集将可以进行进一步的分析。
      Flink使用OVER窗口条件和过滤条件相结合以进行Top-N查询。利用OVER窗口的PARTITION BY子句的功能,Flink还支持逐组Top-N。例如,每个类别中实时销量最高的前五种产品。批处理表和流处理表都支持基于SQL的Top-N查询。以下是Top-N表达式的语法:

SELECT [column_list]
FROM (
   SELECT [column_list],
     ROW_NUMBER() OVER ([PARTITION BY col1[, col2...]]
       ORDER BY col1 [asc|desc][, col2 [asc|desc]...<

你可能感兴趣的:(Flink,flink,大数据)