【大数据面试题】33 手写一个 Flink SQL 样例

一步一个脚印,一天一道大数据面试题

博主希望能够得到大家的点赞收,藏支持!非常感谢~
点赞,收藏是情分,不点是本分。祝你身体健康,事事顺心!

我们来看看 Flink SQL大概流程和样例:

流程:

1.创建 流处理环境 StreamExecutionEnvironment env
2.创建 表环境 StreamTableEnvironment.create(env);
3.创建 source表,sink
4.用 table API 编写查询 SQL(返回 Table 对象)
5.执行 sink executeInsert("sink")

代码样例:

import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.EnvironmentSettings;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.TableEnvironment;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;import static org.apache.flink.table.api.Expressions.$;public class SqlDemo2 {public static void main(String[] args) {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// 1.创建表环境// 1.1 方法 1
//        EnvironmentSettings settings = EnvironmentSettings.newInstance()
//                .inStreamingMode()
//                .build();
//        TableEnvironment tableEnv = TableEnvironment.create(settings);// 1.2 方法 2StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);// 创建表// 用 datagen 生成随机数据作为 sourcetableEnv.executeSql("CREATE TABLE source (\n" +"    id INT\n" +"    ,ts BIGINT\n" +"    ,vc INT\n" +") WITH (\n" +"    'connector' = 'datagen'\n" +"    ,'rows-per-second'='1'\n" +"    ,'fields.id.kind'='random'\n" +"    ,'fields.id.min'='1'\n" +"    ,'fields.id.max'='10'\n" +"    ,'fields.ts.kind'='sequence'\n" +"    ,'fields.ts.min'='1'\n" +"    ,'fields.ts.max'='1000000'\n" +"    ,'fields.vc.kind'='random'\n" +"    ,'fields.vc.min'='1'\n" +"    ,'fields.vc.max'='100'\n" +");\n");tableEnv.executeSql("CREATE TABLE sink(\n" +"    id INT,\n" +"    sumVC INT,\n" +") WITH (\n" +"'connector'='print'\n" +");\n");// 执行查询Table source = tableEnv.from("source");Table select = source.where($("id").isGreater(5)).groupBy($("id")).aggregate($("vc").sum().as("sumVC")).select($("id"), $("sumVC"));// 执行 sinkselect.executeInsert("sink");}
}

运行截图:

在这里插入图片描述

我是近未来,祝你变得更强!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于双向长短时记忆网络的ECG心电信号识别(包括原始时域信号与时频域特征提取,MATLAB R2021B)

循环神经网络RNN,是一种链式结构,能够对连续输入的序列同时处理,且有不错的效果。RNN具有记忆功能且能够随时接受并处理输入数据,这得益于其特殊的连接方式,即神经元之间以一定的方向互相连接构成环,内部时…

如何使用宝塔面板搭建Tipask问答社区网站并发布公网远程访问

文章目录 前言1.Tipask网站搭建1.1 Tipask网站下载和安装1.2 Tipask网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3 Cpolar稳定隧道(本地设置) 3. 公网访问测试4.结语 前…

摸鱼大数据——Hive表操作——复杂类型

1、hvie的SerDe机制 其中ROW FORMAT是语法关键字,DELIMITED和SERDE二选其一。本次我们主要学习DELIMITED关键字相关知识点 如果使用delimited: 表示底层默认使用的Serde类:LazySimpleSerDe类来处理数据。 如果使用serde:表示指定其他的Serde类来处理数据,支持用户自…

【python 进阶】 绘图

1. 将多个柱状绘制在一个图中 import seaborn as sns import matplotlib.pyplot as plt import numpy as np import pandas as pd# 创建示例数据 categories [A, B, C, D, E] values1 np.random.randint(1, 10, sizelen(categories)) values2 np.random.randint(1, 10, siz…

代码随想录35期Day53-Java

Day53题目 LeetCode.1143最长公共子序列 核心思想:这道题是我动态规划的启蒙题目,已经做了很多遍了,dp数组的变化方法是:相同则是左上角1, 不相同则是上和左中的最大值 class Solution {public int longestCommonSubsequence(String text1, String text2) {int[][] dp new …

前端Vue自定义轮播图组件的设计与实现

摘要 随着技术的发展,前端开发的复杂性日益增加。传统的整块应用开发方式在面对频繁的功能更新和修改时,往往导致整体逻辑的变动,从而增加了开发和维护的难度。为了应对这一挑战,组件化开发应运而生。本文将以Vue中的自定义轮播图…

GEE 利用增强的Sentinel-2像元物候特征精确提取水稻分布

题目:An enhanced pixel-based phenological feature for accurate paddy ricemapping with Sentinel-2 imagery in Google Earth Engine 期刊:ISPRS Journal of Photogrammetry and Remote Sensing(IF:14.9) 第一作者&#xff1a…

HiWoo Box工业4G网关

在飞速发展的工业4.0时代,数据已成为驱动工厂智能化、自动化的核心力量。而如何将这些散布在工厂各个角落的数据高效、安全地汇集起来,成为企业提升生产效率、降低运营成本的关键。今天,我们将为您介绍一款4G网关产品——HiWoo Box&#xff0…

揭秘SQL中的公用表表达式:数据查询的新宠儿

欢迎来到我的博客,代码的世界里,每一行都是一个故事 揭秘SQL中的公用表表达式:数据查询的新宠儿 前言公用表表述的概述非递归CTE的作用递归CTE的作用CTE性能优化 前言 你是否曾经为SQL查询的复杂性而困扰不已?尤其是那些读写层子…

服务器数据恢复—RAID5阵列崩溃如何恢复上层OA和oracle数据库的数据?

服务器数据恢复环境&故障: 某公司的一台服务器中的raid5磁盘阵列有两块磁盘先后掉线,服务器崩溃。故障服务器的操作系统为linux,操作系统部署了oa,数据库为oracle。oracle数据库已经不再对该oa系统提供后续支持,用…

图形学初识--矩阵和向量

文章目录 前言正文向量什么是向量?向量涉及哪些常见计算?1、取模2、归一化3、向量加法4、向量减法5、向量与标量乘6、向量点乘(内积)7、向量投影 向量有哪些基本应用? 矩阵什么是矩阵?矩阵涉及哪些常见计算…

数据库中的六大锁

目录 一、死锁 二、锁的区间划分 1、间隙锁(Gap Locks) 2、临键锁(Next-key Locks) 三、锁的粒度划分 1、表级锁(Table-level lock) 2、行级锁(Record Locks) 3、页级锁 四、…

一分钟教你学浪app视频怎么缓存

你是否在学浪app上苦苦寻找如何缓存视频的方法?你是否想快速、轻松地观看自己喜欢的视频内容?那么,让我们一起探索一分钟教你如何缓存学浪app视频的技巧吧! 学浪下载工具我已经打包好了,有需要的自己下载一下 学浪下…

【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析

🔥 个人主页:空白诗 🔥 热门专栏:【JavaScript】 文章目录 🌿 引言五、 Destructuring Assignment - 解构赋值,数据提取的艺术 🎨📌 数组解构📌 对象解构📌 特…

动态规划之单词拆分

这次分享一道关于动态规划的leetcode,单词拆分。 单词拆分 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。注意:不要求字典中出现的单词全部都使用,并且字典中的单词…

【技术】汉诺塔的递归问题解析及多语言实现

汉诺塔的递归问题解析及多语言实现 汉诺塔(Hanoi Tower)问题是一个非常经典的递归问题。它起源于一个古老的传说:有三个柱子和64个大小不一的金盘,开始时这些金盘按从小到大的顺序放在柱子A上,目标是在柱子B上按同样的…

Java——Java开发环境

一、JDK 1、什么是JDK JDK(Java Development Kit,Java 开发工具包)是用于开发 Java 应用程序的核心工具包。它包含了编写、编译、调试和运行 Java 程序所需的一切工具和库。JDK 是每个 Java 开发者必备的工具。 2、JDK 主要组件 JDK主要包…

HNU-计算机体系结构-实验3-缓存一致性

计算机体系结构 实验3 计科210X 甘晴void 202108010XXX 文章目录 计算机体系结构 实验31 实验目的2 实验过程2.0 预备知识2.0.1 多cache一致性算法——监听法2.0.1.1 MSI协议2.0.1.2 MESI协议2.0.1.3 本题讲解 2.0.2 多cache一致性算法——目录法2.0.2.1 有中心的目录法2.0.2…

A2B V2.0协议学习笔记(非正式版本)

一、说明 A2B全称是 Automotive Audio Bus 汽车音频总线,主要是解决传统音频总线线多、线重、成本贵等问题。 A2B V2.0总线相对V1.0主要变化点: 速率提升,高达98.304Mbps,全双工模式 编码方式,由之前的曼彻斯特编码变为QPSK(正交相移键控)编码,每个符合2bit数据,因此…

随手记:多行文本域存数据有换行,回显数据换行展示

1.在新增的时候存储数据 <el-input type"textarea"v-model"XXXX"></el-input> 2.详情页返回的数据&#xff1a; replace一顿操作确实复杂 最快的方法直接写个样式:style"white-space: pre-line" 即可行内或者class样式都可以 …