RESTful API 与客户端

REST API v1

师成师成· 更新于 2026-09-29· 阅读 29 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

请注意:当前 api 版本为 v1,基础 URI 为 /api/v1。

会话资源

GET /sessions

获取所有存活会话的列表

响应体

名称描述类型
identifier会话标识符String
user创建会话的用户名String
ipAddr创建会话的客户端 IP 地址String
conf会话的配置Map
createTime会话创建的时间戳Long
duration最后访问时间减去创建时间的时间间隔Long
idleTime空闲(无操作)的时间间隔Long

GET /sessions/${sessionHandle}

获取一个会话事件

响应体

KyuubiSessionEvent。

GET /sessions/${sessionHandle}/info/${infoType}

获取会话的某项信息详情

请求参数

名称描述类型
infoTypeHive Thrift GetInfo 的 IDInt

响应体

名称描述类型
infoType会话信息的类型String
infoValue会话信息的值String

GET /sessions/count

获取当前已打开的会话数量

响应体

名称描述类型
openSessionCount已打开会话的数量Int

GET /sessions/execPool/statistic

获取后台执行器的统计信息

响应体

名称描述类型
execPoolSize线程池中当前的线程数量Int
execPoolActiveCount正在活跃执行任务的线程的大致数量Int

POST /sessions

创建一个会话

请求参数

名称描述类型
configs会话的配置Map

响应体

名称说明类型
identifier会话句柄标识符String
kyuubiInstance持有该会话、并在会话中执行后续操作时需要调用的 Kyuubi 实例String

DELETE /sessions/${sessionHandle}

关闭一个会话。

POST /sessions/${sessionHandle}/operations/statement

创建一个类型为 EXECUTE_STATEMENT 的操作

请求体

名称说明类型
statement要执行的 SQL 语句String
runAsync指示查询是同步执行还是异步执行的标志Boolean
queryTimeout查询超时的时间间隔Long
confOverlay仅针对当前操作生效的配置覆盖Map of key=val

响应体

名称说明类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/typeInfo

创建一个类型为 GET_TYPE_INFO 的操作

响应体

名称说明类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/catalogs

创建一个类型为 GET_CATALOGS 的操作

响应体

名称说明类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/schemas

创建一个类型为 GET_SCHEMAS 的操作

请求体

名称说明类型
catalogNamecatalog 名称String
schemaNameschema 名称String

响应体

名称说明类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/tables

请求体

名称说明类型
catalogNamecatalog 名称String
schemaNameschema 名称String
tableName表名String
tableTypes表的类型,例如:TABLE 或 VIEWString

响应体

名称描述类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/tableTypes

请求参数

响应体

名称描述类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/columns

请求体

名称描述类型
catalogName目录名称String
schemaName模式名称String
tableName表名称String
columnName列名称String

响应体

名称描述类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/functions

请求体

名称描述类型
catalogName目录名称String
schemaName模式名称String
functionName函数名称String

响应体

名称描述类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/primaryKeys

请求参数

名称描述类型
catalogName目录名称String
schemaName模式名称String
tableName表名称String

响应体

名称描述类型
identifier操作的标识符String

POST /sessions/${sessionHandle}/operations/crossReference

名称描述类型
identifier操作的标识符String

请求体

名称描述类型
primaryCatalog主目录名称String
primarySchema主模式名称String
primaryTable主表名称String
foreignCatalog外部目录名称String
foreignSchema外部模式名称String
foreignTable外部表名称String

响应体

名称描述类型
identifier操作的标识符String

操作资源

GET /operations/${operationHandle}/event

通过指定的操作句柄获取该操作的当前事件。

响应体

KyuubiOperationEvent。

PUT /operations/${operationHandle}

对处于待执行或运行中的操作执行一个动作。

请求体

名称 描述 类型

action 对该操作执行的动作。目前支持的动作有 'cancel' 和 'close'。

  • Cancel:取消该操作,即操作及其对应的后台任务将被停止,其状态将切换为 CANCELED。处于 CANCELED 状态的操作仍可通过客户端请求获取其状态。
  • Close:关闭该操作,即操作及其对应的后台任务将被停止,其状态将切换为 CLOSED。处于 CLOSED 状态的操作将在服务端被移除,且无法再获取。

String

GET /operations/${operationHandle}/resultsetmetadata

通过指定的操作句柄获取该操作的结果集 schema。

响应体

名称描述类型
columns各列的描述ColumnDesc 列表

GET /operations/${operationHandle}/log

通过指定的操作句柄获取运行中操作的日志行列表。

请求参数

名称描述类型
maxrows每次拉取的最大行数Int

响应体

名称描述类型
logRowSet日志集合字符串列表
rowCount日志行数Int

GET /operations/${operationHandle}/rowset

通过指定的操作句柄以行列表的形式获取操作结果。

请求参数

名称描述类型
maxrows每次拉取的最大行数Int
fetchorientation拉取方向,例如 FETCH_NEXT、FETCH_PRIOR、FETCH_FIRST、FETCH_LAST、FETCH_RELATIVE、FETCH_ABSOLUTEString

响应体

名称描述类型
rows行的列表行列表
rowCount行数Int

批处理资源

GET /batches

返回所有的批处理。

请求参数

名称 描述 类型

batchType 批处理类型,例如 spark/flink,如果未指定 batchType,将返回所有类型 String

batchState 有效的批次状态可以是以下之一:
PENDING、RUNNING、FINISHED、ERROR、CANCELED String

batchUser 创建该批次的用户名 String

createTime 返回在此时间戳之后创建的批次 Long

endTime 返回在此时间戳之前结束的批次 Long

from 获取批次的起始索引 Int

size 获取的批次数量,默认为 100 Int

响应体

名称描述类型
from获取批次的起始索引Int
total获取的批次总数Int
batchesBatch 列表List

POST /batches

创建一个新的批次。

请求体

  • 媒体类型:application-json
  • JSON 结构:
名称描述类型
batchType批次类型,例如 Spark、FlinkString
resource包含要执行的应用程序的资源文件路径Path(必填)
className应用程序主类String(必填)
name该批次的名称String
conf配置属性key=val 的 Map
args应用程序的命令行参数字符串 List

响应体

创建的 Batch 对象。

POST /batches(上传资源)

通过上传资源文件创建一个新的批次。

以下是使用 curl 命令以 multipart-formdata 媒体类型向 /v1/batches 发送 POST 请求,并从本地路径上传资源文件的示例。

curl --location --request POST 'http://localhost:10099/api/v1/batches' \
--form 'batchRequest="{\"batchType\":\"SPARK\",\"className\":\"org.apache.spark.examples.SparkPi\",\"name\":\"Spark Pi\"}";type=application/json' \
--form 'resourceFile=@"/local_path/example.jar"'

请求体

  • 媒体类型:multipart-formdata
  • 请求体以多部分(multipart)形式组织:
名称描述媒体类型
batchRequestPOST /batches 所需的 JSON 格式批处理请求作为请求体application/json
resourceFile需要上传并执行的资源,它将在服务端被缓存,并在执行完成后清理File

响应体

已创建的 Batch 对象。

GET /batches/${batchId}

返回批处理信息。

响应体

B​​atch 对象。

DELETE /batches/${batchId}

如果批处理仍在运行,则终止该批处理。

响应体

名称描述类型
success是否成功终止了批处理Boolean
msg终止批处理的消息String

GET /batches/${batchId}/localLog

获取该批处理的本地日志行。

请求参数

名称描述类型
from偏移量Int
size返回的最大日志行数,默认为 100Int

响应体

名称描述类型
logRowSet日志行字符串列表
rowCount日志行数Int

管理资源

POST /admin/refresh/hadoop_conf

刷新 Kyuubi 服务端的 Hadoop 配置。

POST /admin/refresh/user_defaults_conf

从默认属性文件中刷新键格式为 ___{username}___.{config key} 的用户默认配置。

POST /admin/refresh/kubernetes_conf

从默认属性文件中刷新键以 kyuubi.kubernetes 为前缀的 Kubernetes 配置。

当你需要支持多个 Kubernetes 上下文和命名空间时,该功能会很有用,参见 KYUUBI devlive-community/knowforge#4843。

DELETE /admin/engine

删除指定的引擎。

请求参数

名称说明类型
type引擎类型String(可选)
sharelevel引擎共享级别String(可选)
subdomain引擎子域String(可选)
proxyUser要模拟的代理用户String(可选)
hive.server2.proxy.user要模拟的代理用户String(可选)

proxyUser 是 hive.server2.proxy.user 的替代参数,当前行为与 hive.server2.proxy.user 一致。当两个参数同时设置时,以 proxyUser 为准。

GET /admin/engine

获取满足条件的引擎列表。

请求参数

名称说明类型
type引擎类型String(可选)
sharelevel引擎共享级别String(可选)
subdomain引擎子域String(可选)
proxyUser要模拟的代理用户String(可选)
hive.server2.proxy.user要模拟的代理用户String(可选)

proxyUser 是 hive.server2.proxy.user 的替代参数,当前行为与 hive.server2.proxy.user 一致。当两个参数同时设置时,以 proxyUser 为准。

响应体

Engine 列表。

REST 对象

Batch

名称描述类型
id批处理 IDString
user创建该批处理的用户String
batchType批处理类型String
name批处理名称String
appStartTime批处理应用启动时间Long
appId批处理应用 IdString
appUrl批处理应用的追踪 URLString
appState批处理应用状态String
appDiagnostic批处理应用诊断信息String
kyuubiInstance创建该批处理的 Kyuubi 实例String
stateKyuubi 批处理操作状态String
createTime批处理创建时间Long
endTime批处理结束时间,若尚未终止,则值为 0Long

KyuubiSessionEvent

名称描述类型
sessionId会话 IDString
clientVersion客户端版本Int
sessionType会话类型String
sessionName会话名称,如果用户未指定,则使用空字符串String
user会话用户名String
clientIP客户端 IP 地址String
serverIP唯一的 Kyuubi 服务器 ID,例如 Kyuubi 服务器的 IP 地址和端口;当存在多实例 Kyuubi Server 时非常有用String
conf会话配置Map
startTime会话创建时间Long
remoteSessionId远程引擎会话 IDString
engineId引擎 ID。对于运行在 YARN 上的引擎,即为 applicationIdString
openedTime会话打开时间Long
endTime会话结束时间Long
totalOperations查询和元数据调用的总次数Int
exception会话异常,例如打开会话时发生的异常Throwable
eventType会话事件类型String

KyuubiOperationEvent

名称说明类型
statementId单个操作的唯一标识符String
remoteId单个操作在引擎侧的唯一标识符String
statement你所执行的 SQLString
shouldRunAsync指示查询是同步运行还是异步运行的标志Boolean
state当前操作状态String
eventTime事件创建并记录的时间Long
createTime转换为当前操作状态的时间Long
startTime查询开始的时间Long
completeTime查询结束的时间Long
exception捕获到的异常(如有)Throwable
sessionId父会话的标识符String
sessionUser已认证的客户端用户String

ColumnDesc

名称说明类型
columnName列的名称String
dataType该列的类型描述符String
columnIndex该列在 schema 中的索引Int
precision列的精度Int
scale列的小数位数Int
comment列的注释String

Row

名称说明类型
fields行中的字段字段列表

Field

名称说明类型
dataType列的类型String
value列的值Object

Engine

名称描述类型
version创建该引擎实例的 Kyuubi 服务器版本String
user创建该引擎的用户String
engineType引擎类型String
sharelevel引擎共享级别String
subdomain引擎子域String
instance引擎节点的 host:portString
namespace用于将引擎暴露给 KyuubiServer 的命名空间String

评论

登录后参与评论

正在加载评论…