为 Snowpark Python 创建会话¶
要在应用程序中使用 Snowpark,您需要创建一个会话。为了方便编写代码,您还可以导入包和对象的名称。
本主题内容:
创建会话¶
使用该库的第一步是与 Snowflake 数据库建立会话。
导入会话类。
from snowflake.snowpark import Session
要进行身份验证,请使用与 Snowflake Connector for Python 支持的机制相同的机制。
使用您在 Snowflake Connector for Python 中的 connect
函数中使用的相同参数(例如,账户名、用户名等),与 Snowflak 数据库建立会话。有关更多信息,请参阅 Python Connector API 文档中的“connect 函数的参数”。
使用 connections.toml
文件建立连接¶
要在连接配置文件中添加凭据,请执行以下操作:
在文本编辑器中,打开
connections.toml
文件进行编辑。例如,要在 Linux vi 编辑器中打开该文件,请执行以下命令:$ vi connections.toml
添加新的 Snowflake 连接定义。
例如,要添加一个名为
myconnection
的 Snowflake 连接,并在其中包含账户myaccount
、用户johndoe
和密码凭据以及数据库信息,请在配置文件中添加以下行:[myconnection] account = "myaccount" user = "jdoe" password = "******" warehouse = "my-wh" database = "my_db" schema = "my_schema"
连接定义支持的配置选项与 snowflake.connector.connect 方法中提供的配置选项相同。
可选:添加更多连接,如下所示:
[myconnection_test] account = "myaccount" user = "jdoe-test" password = "******" warehouse = "my-test_wh" database = "my_test_db" schema = "my_schema"
保存对文件所做的更改。
在 Python 代码中,将连接名称提供给
snowflake.connector.connect
,然后将其添加到session
,如下所示:session = Session.builder.config("connection_name", "myconnection").create()
有关更多信息,请参阅 配置文件。
通过指定连接参数建立连接¶
构造一个字典 (dict
),其中包含这些参数(例如 account
、user
、role
、warehouse
、database
、schema
等)的名称和值。
要创建会话,请执行以下操作:
创建一个 Python 字典 (
dict
),其中包含用于连接到 Snowflake 的参数的名称和值。将此字典传递给
Session.builder.configs
方法,以返回具有这些连接参数的生成器对象。调用
builder
的create
方法来建立会话。
以下示例使用包含连接参数的 dict
来创建新会话:
connection_parameters = {
"account": "<your snowflake account>",
"user": "<your snowflake user>",
"password": "<your snowflake password>",
"role": "<your snowflake role>", # optional
"warehouse": "<your snowflake warehouse>", # optional
"database": "<your snowflake database>", # optional
"schema": "<your snowflake schema>", # optional
}
new_session = Session.builder.configs(connection_parameters).create()
对于 account
参数,请使用 账户标识符。请注意,账户标识符不包含 snowflakecomputing.cn 后缀。
备注
此示例向您展示了创建会话的一种方式,但还有几种其他连接方式,包括:默认身份验证器、单点登录 (SSO)、多重身份验证 (MFA)、密钥对身份验证、使用代理服务器以及 OAuth。有关更多信息,请参阅 使用 Python Connector 连接到 Snowflake。
通过 Web 浏览器使用单点登录 (SSO)¶
如果您已 将 Snowflake 配置为使用单点登录 (SSO),则可以将客户端应用程序配置为使用基于浏览器的 SSO 进行身份验证。
构造一个字典 (dict
),其中包含这些参数(例如 account
、user
、role
、warehouse
、database
、authenticator
等)的名称和值。
要创建会话,请执行以下操作:
创建一个 Python 字典 (
dict
),其中包含用于连接到 Snowflake 的参数的名称和值。将此字典传递给
Session.builder.configs
方法,以返回具有这些连接参数的生成器对象。调用
builder
的create
方法来建立会话。
以下示例使用包含连接参数的 dict
来创建新会话。请将 authenticator
选项设置为 externalbrowser
。
from snowflake.snowpark import Session
connection_parameters = {
"account": "<your snowflake account>",
"user": "<your snowflake user>",
"role":"<your snowflake role>",
"database":"<your snowflake database>",
"schema":"<your snowflake schema",
"warehouse":"<your snowflake warehouse>",
"authenticator":"externalbrowser"
}
session = Session.builder.configs(connection_parameters).create()
结束会话¶
如果您不再需要使用会话执行查询并且想要取消当前正在运行的任何查询,请调用该会话对象的 close 方法。例如:
new_session.close()