Flink1.7 SQL 批处理示例

本文为Flink sql Dataset 示例(Scala)
Scan / Select
功能描述: 查询一个表中的所有数据

package flink_sql
import org.apache.flink.api.scala.{ExecutionEnvironment,_}
import org.apache.flink.table.api.TableEnvironment
import org.apache.flink.table.api.scala._

/**
  * Flink_SQL_DataSet Demo
  */
object FlinkSqlDataSet {
  def main(args: Array[String]): Unit = {
    //得到执行环境
    val env = ExecutionEnvironment.getExecutionEnvironment
    env.setParallelism(1)
    //设置数据集
    val dataSet = env.fromElements(("小明",18,"男"),("小红",19,"女"),("张三",9,"男"),("李四",26,"男"))
    //得到 table环境
    val tableEnv =TableEnvironment.getTableEnvironment(env)
    //注册表
    tableEnv.registerDataSet("Student",dataSet,'name,'age,'sex)

    tableEnv.sqlQuery(s"select name,age,sex from Student")
      .first(100)//Creates a new DataSet containing the first 100 elements of this DataSet.
      .print()
 
 /**
      * 输出结果
      * 小明,18,男
        小红,19,女
        张三,9,男
        李四,26,男
      */ 

 }
}

上述SQL均可以换成如下,以相对应功能:

as (table)
功能描述: 给表名取别称

tableEnv.sqlQuery(s"select s1.name,s1.age FROM Studentas s1")

as (column)
功能描述: 给表名取别称

tableEnv.sqlQuery(s"select name a,age as b FROM Student ")

Where / Filter
功能描述:列加条件过滤表中的数据

tableEnv.sqlQuery(s"select name,age,sex FROM Student where sex = '女'")

between and (where)
功能描述: 过滤列中的数据, 开始数据 <= data <= 结束数据

tableEnv.sqlQuery(s"select name,age,sex FROM Student where age between 20 and  35")

Sum
功能描述: 求和所有数据

tableEnv.sqlQuery(s"select sum(age) FROM Student")

max(min)
功能描述: 求最大(最小)值

tableEnv.sqlQuery(s"select max(age) FROM Student")

sum (group by )
功能描述: 按性别分组求和

tableEnv.sqlQuery(s"select sex,sum(age) from Student group by sex")

/**
      * 输出结果:
      *
      * 女,19
        男,53      *
      */

group by having

tableEnv.sqlQuery(s"select sex,sum(age) from Student group by sex having sum(age)>20")

distinct
功能描述: 去重一列或多列

tableEnv.sqlQuery("select distinct name  FROM Student")
Flink SQL 批处理是指使用 Flink 提供的 SQL API 对批量数据进行处理和分析的过程。在 Flink 中,可以通过编写 SQL 查询语句来对批量数据进行过滤、聚合、计算等操作,从而实现对大规模数据的高效处理。 通过 Flink SQL 批处理,可以快速地实现对数据的批量处理,同时可以利用 Flink 强大的并行计算能力和优化的执行引擎来提高处理效率和性能。在实际应用中,Flink SQL 批处理可以用于数据清洗、转换、统计、报表生成等各种数据处理场景。 Flink SQL 批处理的流程通常包括以下几个步骤:数据源读取、SQL 查询编写、执行计算、结果输出等。首先,需要从数据源中读取批量数据,可以是文件、数据库、消息队列等形式。然后,可以编写 SQL 查询语句来对数据进行筛选、聚合、计算等操作。接下来,Flink 会根据 SQL 查询语句生成相应的计算图,并对数据进行并行计算。最后,计算结果可以输出到文件、数据库、消息队列等目的地。 Flink SQL 批处理具有扩展性好、性能高、易用性强等优点,适合于需要对大规模批量数据进行处理和分析的场景。同时,Flink 还提供了丰富的内置函数和用户自定义函数接口,可以满足各种复杂数据处理需求。综上所述,Flink SQL 批处理是一种强大的数据处理工具,可以帮助用户快速高效地处理大规模批量数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬瓜螺旋雪碧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值