Flink系列之:Flink SQL Gateway

news2024/9/21 16:32:13

Flink系列之:Flink SQL Gateway

  • 一、Flink SQL Gateway
  • 二、部署
  • 三、启动SQL Gateway
  • 四、运行 SQL 查询
  • 五、SQL 网关启动选项
  • 六、SQL网关配置
  • 七、支持的端点

一、Flink SQL Gateway

SQL 网关是一项允许多个客户端从远程并发执行 SQL 的服务。它提供了一种简单的方法来提交 Flink 作业、查找元数据并在线分析数据。

SQL 网关由可插入端点和 SqlGatewayService 组成。 SqlGatewayService 是一个由端点重用来处理请求的处理器。端点是允许用户连接的入口点。根据端点的类型,用户可以使用不同的实用程序进行连接。

在这里插入图片描述

二、部署

本节介绍如何从命令行设置和运行您的第一个 Flink SQL 程序。

SQL Gateway 捆绑在常规 Flink 发行版中,因此可以开箱即用。它只需要一个正在运行的Flink集群,可以在其中执行表程序。如果您只是想尝试 SQL 客户端,您还可以使用以下命令启动一个由一名工作人员组成的本地集群:

$ ./bin/start-cluster.sh

三、启动SQL Gateway

SQL Gateway 脚本也位于 Flink 的二进制目录中。用户可以通过调用以下方式开始:

$ ./bin/sql-gateway.sh start -Dsql-gateway.endpoint.rest.address=localhost

该命令启动带有 REST 端点的 SQL 网关,该端点侦听地址 localhost:8083。您可以使用curl命令检查REST端点是否可用。

$ curl http://localhost:8083/v1/info
{"productName":"Apache Flink","version":"1.20-SNAPSHOT"}

四、运行 SQL 查询

要验证您的设置和集群连接,您可以执行以下步骤。

第 1 步:打开会话

$ curl --request POST http://localhost:8083/v1/sessions
{"sessionHandle":"..."}

SQL Gateway 使用返回结果中的 sessionHandle 来唯一标识每个活动用户。

第 2 步:执行查询

$ curl --request POST http://localhost:8083/v1/sessions/${sessionHandle}/statements/ --data '{"statement": "SELECT 1"}'
{"operationHandle":"..."}

返回结果中的operationHandle用于SQL Gateway唯一标识提交的SQL。

第 3 步:获取结果

有了上面的sessionHandle和operationHandle,就可以取到相应的结果了。

$ curl --request GET http://localhost:8083/v1/sessions/${sessionHandle}/operations/${operationHandle}/result/0
{
  "results": {
    "columns": [
      {
        "name": "EXPR$0",
        "logicalType": {
          "type": "INTEGER",
          "nullable": false
        }
      }
    ],
    "data": [
      {
        "kind": "INSERT",
        "fields": [
          1
        ]
      }
    ]
  },
  "resultType": "PAYLOAD",
  "nextResultUri": "..."
}

结果中的nextResultUri如果不为null,则用于获取下一批结果。

$ curl --request GET ${nextResultUri}

五、SQL 网关启动选项

$ ./bin/sql-gateway.sh --help

Usage: sql-gateway.sh [start|start-foreground|stop|stop-all] [args]
  commands:
    start               - Run a SQL Gateway as a daemon
    start-foreground    - Run a SQL Gateway as a console application
    stop                - Stop the SQL Gateway daemon
    stop-all            - Stop all the SQL Gateway daemons
    -h | --help         - Show this help message

对于“start”或“start-foreground”命令,您可以在 CLI 中配置 SQL 网关。

$ ./bin/sql-gateway.sh start --help

Start the Flink SQL Gateway as a daemon to submit Flink SQL.

  Syntax: start [OPTIONS]
     -D <property=value>   Use value for given property
     -h,--help             Show the help message with descriptions of all
                           options.

六、SQL网关配置

您可以在下面启动 SQL Gateway 时配置 SQL Gateway,或者任何有效的 Flink 配置条目:

$ ./sql-gateway -Dkey=value
keyDefaultTypeDescription
sql-gateway.session.check-interval1 minDuration空闲会话超时的检查间隔,可以通过设置为零来禁用。
sql-gateway.session.idle-timeout10 minDuration当会话在该时间间隔内没有被访问时关闭会话的超时时间。如果设置为零,会话将不会关闭。
sql-gateway.session.max-num1000000IntegerSQL Gateway 服务的最大活动会话数。
sql-gateway.session.plan-cache.enabledfalseBoolean如果为 true,sql gateway 将缓存并重用每个会话的查询计划。
sql-gateway.session.plan-cache.size100Integer计划缓存大小,当table.optimizer.plan-cache.enabled为true时生效。
sql-gateway.session.plan-cache.ttl1 hourDurationplan缓存的TTL,它控制缓存写入后多久过期,当table.optimizer.plan-cache.enabled为true时生效。
sql-gateway.worker.keepalive-time5 minDuration空闲工作线程的保持活动时间。当工作线程数超过最小工作线程数时,在此时间间隔后多余的线程将被杀死。
sql-gateway.worker.threads.max500Integersql gateway 服务的最大工作线程数。
sql-gateway.worker.threads.min5Integersql gateway 服务的最小工作线程数。

七、支持的端点

Flink 原生支持 REST Endpoint 和 HiveServer2 Endpoint。默认情况下,SQL 网关与 REST 端点捆绑在一起。凭借灵活的架构,用户可以通过调用来启动具有指定端点的SQL Gateway

$ ./bin/sql-gateway.sh start -Dsql-gateway.endpoint.type=hiveserver2

或者在Flink配置文件中添加以下配置:

sql-gateway.endpoint.type: hiveserver2

注意:如果 Flink 配置文件中还包含 sql-gateway.endpoint.type 选项,则 CLI 命令具有更高的优先级。

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

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

相关文章

机器学习(三)

神经网络: 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络&#xff0c;它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。 f为激活(响应)函数: 理想激活函数是阶跃函数&#xff0c;0表示抑制神经元而1表示激活神经元。 多层前馈网络结构: BP(误差逆…

比较AI编程工具Copilot、Tabnine、Codeium和CodeWhisperer

主流的几个AI智能编程代码助手包括Github Copilot、Codeium、Tabnine、Replit Ghostwriter和Amazon CodeWhisperer。 你可能已经尝试过其中的一些&#xff0c;也可能还在不断寻找最适合自己或公司使用的编程助手。但是&#xff0c;这些产品都会使用精选代码示例来实现自我宣传…

【携程笔试题汇总】2024-03-28-携程春招笔试题-三语言题解(CPP/Python/Java)

&#x1f36d; 大家好这里是KK爱Coding &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新携程近期的春秋招笔试题汇总&#xff5e; &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f…

PYTHON初级笔记1

0、python&#xff1f; 简单的编程语言 python环境搭建&#xff1a; ①、开发环境&#xff1a;vscode、sublime、pycharm...... ②、运行环境&#xff1a;cpython解释器 python如何写代码&#xff1f; ①、在终端上的命令行上写&#xff0c;可以是我们cmd的中终端&#xff0c;…

【C语言】预处理常见知识详解(宏详解)

文章目录 1、预定义符号2、define2.1 define 定义常量2.2 define 定义宏 3、#和##3.1 **#**3.2 **##** 4、条件编译&#xff08;开关&#xff09; 1、预定义符号 在C语言中内置了一些预定义符号&#xff0c;可以直接使用&#xff0c;这些符号实在预处理期间处理的&#xff0c;…

【IntelliJ IDEA】运行测试报错解决方案(附图)

IntelliJ IDEA 版本 2023.3.4 (Ultimate Edition) 测试报错信息 命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行&#xff0c;然后重新运行 解决方案 修改运行配置&#xff0c;里面如果没有缩短命令行&#xff0c;需要再修改选项里面勾选缩短命令行让其显示&#x…

深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自&#xff1a;设计模式深度解析&#xff1a;深入浅出的揭秘游标尺模式与迭代…

【机器学习】深入探讨基于实例的学习及K-最近邻算法

深入探讨基于实例的学习及K-最近邻算法 在机器学习的众多策略中&#xff0c;基于实例的学习方法因其简单性和高效性而备受关注。这种方法的核心理念在于利用已知的数据实例来预测新数据的标签或属性。本文将深入探讨其中的两个重要概念&#xff1a;最近邻算法和K-最近邻算法&a…

ArcGIS Pro横向水平图例

终于知道ArcGIS Pro怎么调横向图例了&#xff01; 简单的像0一样 旋转&#xff0c;左转右转随便转 然后调整图例项间距就可以了&#xff0c;参数太多就随便试&#xff0c;总有一款适合你&#xff01; 要调整长度&#xff0c;就调整图例块的大小。完美&#xff01; 好不容易…

CorelDRAW25.0.0.230最新2024版本Crack下载安装方法

CorelDRAW (CDR)是一款专业的平面设计软件。本软件是由加拿大Corel公司开发的一款功能强大的专业平面设计软件、矢量设计软件、矢量绘图软件。本矢量图形制作工具软件广泛应用于商标设计、标志制作、封面设计、CIS设计、产品包装设计、模型绘制、插画绘制、时装/服装设计、印刷…

STM32G473之flash存储结构汇总

STM32G4系列单片机&#xff0c;为32位的微控制器&#xff0c;理论上其内部寄存器地址最多支持4GB的命名及查找&#xff08;2的32次方&#xff0c;地址命名为0x00000000至0xFFFFFFFF&#xff09;。STM32官方对4GB的地址存储进行编号时&#xff0c;又分割成了8个block区域&#x…

Switch 和 PS1 模拟器:3000+ 游戏随心玩 | 开源日报 No.174

Ryujinx/Ryujinx Stars: 26.1k License: MIT Ryujinx 是用 C# 编写的实验性任天堂 Switch 模拟器。 该项目旨在提供出色的准确性和性能、用户友好的界面以及稳定的构建。它已经通过了大约 4050 个测试&#xff0c;其中超过 4000 个可以启动并进入游戏&#xff0c;其中大约 340…

新版Idea2023.3.5与lombok冲突、@Data失效

新版idea和lombok冲突&#xff0c;加上Data&#xff0c;其他地方get set也不报错&#xff0c;但是一运行就找不到get set方法。 但是直接使用Getter和Setter可以访问、应该是Data失效了。 解决方法&#xff1a; 看推上介绍是 lombok 与 idea 采集 get 、set 方法的时候所用的技…

yolov8逐步分解(1)--默认参数超参配置文件加载

本章节将介绍yolov8算法训练过程中的第一步&#xff1a;加载默认训练参数以及超参的配置文件default.yaml。 Yolov8 训练的入口文件为train.py&#xff0c;文件结构如下图所示&#xff1a; 1. 执行train函数&#xff0c;函数默认配置参数为cfgDEFAULT_CFG &#xff0c…

samba实现linux共享文件夹

一、samba安装 sudo apt install samba 二、配置Samba 编辑Samba配置文件sudo vi /etc/samba/smb.conf 在文件末尾添加以下内容&#xff0c;设置一个简单的共享目录&#xff08;替换path_to_share为实际的共享目录路径&#xff09;&#xff1a; [Share] path /path_to_sha…

【LeetCode热题100】124.二叉树的最大路径和(二叉树)

一.题目要求 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root …

DDos系列攻击原理与防御原理

七层防御体系 静态过滤 命中黑名单 对确定是攻击的流量直接加入黑名单&#xff08;源地址命中黑名单直接丢弃&#xff0c;缺乏机动性和扩展性&#xff09; 畸形报文过滤 畸形报文攻击 TCP包含多个标记位&#xff0c;排列组合有规律 • 现象&#xff1a;TCP标记位全为1 …

day72Html

常用标签&#xff1a; 分类&#xff1a; 块级标签&#xff1a;独立成行 行级标签&#xff1a;不独立成行&#xff0c;同一行可放多个行级标 注意网页显示时&#xff0c;忽略空白字符,(回车符&#xff0c;空格&#xff0c;tab制表符&#xff09; 一&#xff09;块级标签&#xf…

[数据结构]插入和希尔排序

一、插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴&#xff0c;但它的原理应该是最容易理解的了&#xff0c;因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排…

基于SpringBoot和Vue的在线视频教育平台的设计与实现

今天要和大家聊的是一款基于SpringBoot和Vue的在线视频教育平台的设计与实现 &#xff01;&#xff01;&#xff01; 有需要的小伙伴可以通过文章末尾名片咨询我哦&#xff01;&#xff01;&#xff01; &#x1f495;&#x1f495;作者&#xff1a;李同学 &#x1f495;&…