创建Session
- 功能介绍:Session(会话)表示一个连接,用户可以通过一个Session执行SQL请求,并通过该Session查询请求结果。该方法可以通过用户提供的工作空间id和端点id创建一个Session,可以设置Session连接的lakeformation实例信息和catalog名称。
- 方法定义:createSession(workspaceId, request, timeout)
- 参数说明:
表1 createSession参数说明 参数名称
参数类型
是否必选
描述
workspaceId
str
必选
用户创建的Fabric的工作空间的ID。
request
SessionRequest
必选
Session请求信息。
timeout
float
可选
请求超时时间。
表2 SessionRequest 参数名称
参数类型
是否必选
描述
endpoint_id
str
必选
执行端点ID。
instance_id
str
必选
LakeFormation实例ID。
catalog_name
str
必选
LakeFormation Catalog名称。
wait_timeout
str
可选
创建Session排队等待时间,单位秒,取值范围[300,7200],有值则为异步创建,不填则为同步创建。
- 响应体说明:返回SessionResponse
表3 SessionResponse 参数名称
参数类型
描述
session_id
str
创建的Session的ID。
status
str
该Session的状态。
表4 status取值 状态值
描述
RUNNING
运行中
CLOSED
已关闭
WAITING
等待中
CREATING
创建中
FAIL
失败
- 示例代码:
import os from fabricsql.SQLClient import FabricSQLClient from fabricsql.SQLRequests import SessionRequest, QueryRequest from fabricsql.response.SessionResponses import SessionResponse if __name__ == "__main__": # AK/SK属于敏感信息,推荐通过环境变量方式获取,避免直接明文编码在程序中 endpoint = 'xxxxxxxxxxxxxx' accessKey = 'xxxxxxxxxxxxxx' secretKey = 'xxxxxxxxxxxxxxx' workspace_id = 'xxxxxxxxxxxxx' client = FabricSQLClient(endpoint, accessKey, secretKey) # 创建一个Session request = SessionRequest() request.endpoint_id = 'xxxxx' request.instance_id = 'xxxxxx' request.catalog = 'xxxxxxxxx' response = client.createSession(workspace_id, request) print(response.session_id) print(response.status)