南昌网站建设公司网站建设目标

宁波好聚房产营销策划有限公司安阳龙安分公司 2026/09/09 17:55:12

1. REST Endpoint 的核心交互模型

SQL Gateway 的 REST 交互基本就三步:

  1. Open Session
    客户端创建会话,Gateway 返回SessionHandle,后续所有操作都挂在这个会话上下文下(比如你在会话里USE CATALOGADD JARSET的东西)。 (Apache Nightlies)

  2. Submit SQL -> Operation
    提交 SQL 后,Gateway 把这条 SQL 变成一个Operation,返回OperationHandle。Operation 有生命周期:你可以cancel取消执行,也可以close释放资源。 (Apache Nightlies)

  3. Fetch Results(分页批次)
    OperationHandle拉取结果。每次会返回一批数据 + schema,可能还会带nextResultUri用于拉下一批;当拉完会返回resultType=EOS且下一批 URI 为空。 (Apache Nightlies)

这套模型的好处是:你可以像管理“远程查询任务”一样管理 SQL(查状态、取消、释放、分页拉取),非常适合平台化封装。

2. REST Endpoint 关键配置:address / bind-address / port / bind-port

REST Endpoint 的网络配置最容易搞混的是“对外地址”和“绑定地址”的区别:

  • sql-gateway.endpoint.rest.address客户端用来连接 Gateway 的地址(对外地址)
  • sql-gateway.endpoint.rest.bind-addressGateway 进程实际绑定的本地地址
  • sql-gateway.endpoint.rest.port:客户端连接的端口(默认 8083)
  • sql-gateway.endpoint.rest.bind-port:Gateway 绑定端口(默认 “8083”,可配置成端口列表、范围,或组合) (Apache Nightlies)

为什么建议 bind-port 配范围

当同一台机器上跑多个 SQL Gateway(多实例、灰度、不同租户)时,固定端口很容易冲突。bind-port支持:

  • 列表:"50100,50101"
  • 范围:"50100-50200"
  • 组合:"50100,50110-50120"

官方也明确建议用范围避免冲突。 (Apache Nightlies)

port 和 bind-port 的关系(快速记忆)

优先级逻辑可以理解为:

  • 你配了bind-port:就按bind-port绑定
  • 否则:绑定port(或默认值)
  • bind-address配了就强制绑定到它,否则按 address/默认行为处理 (Apache Nightlies)

3. OpenAPI 版本:v1 到 v4 各自解决什么

REST Endpoint 提供多版本 OpenAPI(默认 v3),不同版本能力不同:

  • v1:允许提交 statements 并执行
  • v2:支持 SQL Client 连接 Gateway
  • v3:支持 Materialized Table 的 refresh 操作
  • v4:支持 Application Mode 部署脚本(deploy script) (Apache Nightlies)

做平台封装时建议:先 GET/api_versions探测可用版本,再选择你需要的协议版本。

4. v4 常用 API 清单与“该用哪个”

下面按“你在平台里最常用的事情”来分组(都属于你贴出来的 v4):

4.1 探活与版本协商

  • GET /api_versions:返回可用 API 版本
  • GET /info:返回 Gateway/集群元信息

4.2 会话管理(Session)

  • POST /sessions:创建会话(可带 properties 覆盖默认配置)
  • GET /sessions/:session_handle:查看会话配置
  • DELETE /sessions/:session_handle:关闭会话
  • POST /sessions/:session_handle/heartbeat:心跳续期,配合 idle-timeout 保活

4.3 会话内环境配置(DDL / USE / ADD JAR)

  • POST /sessions/:session_handle/configure-session:执行DDL、USE、LOAD/UNLOAD MODULE、ADD JAR等“搭环境”的语句
    典型用途:建表、切 catalog/database、注册函数、加载 connector 依赖。

4.4 执行 SQL(生成 Operation)

  • POST /sessions/:session_handle/statements:执行一条 statement,返回operation_handle

4.5 Operation 生命周期管理

  • GET /sessions/:session_handle/operations/:operation_handle/status:查状态
  • POST /.../cancel:取消执行
  • DELETE /.../close:关闭 operation 释放资源
  • GET /.../result/:token:分页拉取结果(注意 token 和 rowFormat)

4.6 体验增强与脚本部署

  • GET /sessions/:session_handle/complete-statement:SQL 自动补全提示(做 Web SQL IDE 很有用)
  • POST /sessions/:session_handle/scripts:Application Mode 部署脚本(v4 的核心能力之一)

这些接口的语义在官方 REST Endpoint 文档里都有完整描述。 (Apache Nightlies)

5. 拉取结果时 rowFormat 怎么选:JSON vs PLAIN_TEXT

GET .../result/:token有个必填查询参数rowFormat,它决定 RowData 怎么序列化:

  • JSON:按 Table/RowData 的 JSON 映射返回(能保留类型信息、字段结构)
  • PLAIN_TEXT:自动把所有列 cast 成 String(适合快速展示、日志、调试) (Apache Nightlies)

平台化建议:

  • 面向程序消费:优先 JSON
  • 面向人看的控制台:PLAIN_TEXT 体验更好(少处理类型)

6. 一套可直接照抄的 REST 调用流程(含配置会话、执行、分页、收尾)

下面示例用最小闭环演示“创建会话 → 配置环境 → 执行 SQL → 拉结果 → 关闭资源”。

6.1 创建 Session

SESSION=$(curl-s-XPOST http://localhost:8083/v1/sessions|jq-r.sessionHandle)echo$SESSION

6.2 配置会话(可选:USE / ADD JAR / CREATE TABLE 等)

例如创建临时表(黑洞 sink):

curl-s-XPOST"http://localhost:8083/v1/sessions/${SESSION}/configure-session"-H'Content-Type: application/json'-d'{"statement":"CREATE TEMPORARY TABLE sink(a INT) WITH (''connector''=''blackhole'')"}'

6.3 执行 statement,拿到 OperationHandle

OP=$(curl-s-XPOST"http://localhost:8083/v1/sessions/${SESSION}/statements"-H'Content-Type: application/json'-d'{"statement":"SELECT 1"}'|jq-r.operationHandle)echo$OP

6.4 拉取结果(注意 rowFormat + token)

curl-s"http://localhost:8083/v1/sessions/${SESSION}/operations/${OP}/result/0?rowFormat=JSON"

如果返回里有nextResultUri,继续 GET 它;直到resultType=EOS

6.5 收尾(强烈建议做)

curl-s-XDELETE"http://localhost:8083/v1/sessions/${SESSION}/operations/${OP}/close"curl-s-XDELETE"http://localhost:8083/v1/sessions/${SESSION}"

原因很简单:Operation/Session 都会占用服务端资源,不 close 就只能靠超时回收,平台一上量很容易把 gateway 拖慢。

7. 生产封装建议:把 Gateway 当“服务”来治理

  • 必须实现 heartbeat:前端 IDE/Web 平台很容易出现“用户停在页面上不动”,没有心跳会被 idle-timeout 回收;有心跳就能按需保活。 (Apache Nightlies)
  • 必须做 cancel + close:取消只是停止执行,close 才是资源释放;两者都要有入口(比如“停止查询”“关闭结果集”)。 (Apache Nightlies)
  • 结果拉取要支持分页续拉:以nextResultUri或 token 驱动续拉,避免一次性拉爆网关或客户端内存。 (Apache Nightlies)
  • 多实例端口用 bind-port 范围:尤其同机多 gateway、容器 hostNetwork、或灰度并行部署时最关键。 (Apache Nightlies)
  • rowFormat 策略固定:平台层统一约定 JSON/PLAIN_TEXT 的使用场景,避免不同客户端返回结构不一致。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

网站建设服务机械网站建设

MATLAB代码:含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度 关键词:冰蓄冷空调 CCHP-MG 多时间尺度优化 冷热电联供 参考文档:《含冰蓄冷空调的

2026/06/30 10:10:18

深圳营销型网站建设东莞南城网站建设

第一章:无影AgentBay与Open-AutoGLM架构全景无影AgentBay是阿里云推出的一站式AI智能体开发与运行平台,致力于为开发者提供从模型训练、推理部署到智能

2026/06/30 13:03:34

网站建设论文牡丹江网站建设

Docker 环境清理实战:高效管理 Miniconda 容器的正确姿势你有没有遇到过这样的情况?某天准备启动一个新的数据科学实验,结果发现docker ru

2026/06/30 10:57:23

昆山网站建设巩义网站建设

8个降AI率工具,自考人必看!AI降重工具:自考人论文的“隐形助手”在当前学术写作中,随着AI技术的广泛应用,越来越多的论文被系统

2026/06/30 13:49:07

住房城乡建设部网站沧州网站建设

LMMs-Eval是一个专门用于评估多模态大语言模型性能的开源工具库,为研究者和开发者提供高效、可靠的模型测试解决方案。本指南将详细介绍项目的核心功能、使用方法以及最佳实践。【免费下载链

2026/06/30 10:10:48

网站建设报价小企业网站建设

说明因为25年ciscn新加入了ai的题目,特地找了个简单的靶场来上手;这个ai好像会不断升级之前有些输入可能就无法使用了,有些方法我也没写完后面慢慢加&#x

2026/06/30 14:04:38

免费企业网站建设长沙网站建设

图像编码器微调:CLIP ViT结构适配新领域在医学影像分析的日常工作中,医生常常需要从一张肺部X光片中判断是否存在肺炎迹象,并生成结构化的诊断报告。传统流程

2026/06/30 13:46:07

网站建设项目西安网站建设公司

2025研究生必备9个降AI率工具测评榜单2025研究生必备9个降AI率工具测评榜单随着人工智能技术在学术领域的广泛应用,论文的AIGC检测标准也日益严格。2025年,许多

2026/06/30 12:14:00

静安网站建设广东网站建设

Equalizer APO音频调校全攻略:从零基础到专业配置【免费下载链接】equalizerapoEqualizer APO mirror项目地址: https://gitcode.c

2026/06/30 13:17:35

长沙市网站建设公司泰州网站建设

评测大模型不再难:EvalScope接入100+数据集自动化打分在大模型研发的日常中,你是否也经历过这样的场景?刚训练完一个Qwen变体,

2026/06/30 11:51:27