更新时间:2026-01-06 GMT+08:00
分享

查询Session状态并取消查询

本示例演示查询Session状态、取消一个查询的操作。

前提条件

  • Fabric SQL服务正常运行。
  • 用户提供有效的IAM认证凭据。
  • 用户已开通Fabric SQL服务并拥有访问OBS服务权限。

示例代码

from fabricsql.SQLClient import FabricSQLClient
from fabricsql.SQLRequests import SessionRequest, QueryRequest
# 本示例程序演示查询Session状态、取消查询的功能

# 如果是临时AK/SK,还需要提供SecurityToken
ak = 'xxxxxxxxxx'
sk = 'xxxxxxxxxx'
fabric_endpoint = 'xxxxxxxxxx'
endpoint_id = 'xxxxxxxxxx'
workspaceId = 'xxxxxxxxxx'
instance_id = 'xxxxxxxxxx'
catalog = 'xxxxxxxxxx'
# 本示例代码演示用户创建一个Session,并使用该Session下发一个多条语句请求,然后获取每个语句的结果集
# 创建一个FabricSQL客户端
client = FabricSQLClient(fabric_endpoint, ak, sk)
# 创建一个Session请求,填入必要信息
s = SessionRequest()
s.endpoint_id = endpoint_id
s.instance_id = instance_id
s.catalog = catalog
# 创建一个Session,获取session_id
session = client.createSession(workspaceId, s)
session_id = session.session_id
# 查询Session状态
# Session状态为一个字符串
status = client.getSessionStatus(workspaceId, session_id)
print(status)
# 创建一个SQL请求
q = QueryRequest()
q.statement = "select * from table1;select * from table2;select * from table3"
q.session_id = session_id
# 下发请求,返回一个请求响应
query_resp = client.executeQuery(workspaceId, q)
# 取消SQL查询,该接口执行成功会返回空返回体
client.cancelExecute(workspaceId, query_resp)
# 关闭一个Session
client.closeSession(workspaceId, session_id)

相关文档