为 Snowpark Python 创建会话

要在应用程序中使用 Snowpark,您需要创建一个会话。为了方便编写代码,您还可以导入包和对象的名称。

本主题内容:

创建会话

使用该库的第一步是与 Snowflake 数据库建立会话。

导入会话类。

from snowflake.snowpark import Session
Copy

要进行身份验证,请使用与 Snowflake Connector for Python 支持的机制相同的机制。

使用您在 Snowflake Connector for Python 中的 connect 函数中使用的相同参数(例如,账户名、用户名等),与 Snowflak 数据库建立会话。有关更多信息,请参阅 Python Connector API 文档中的“connect 函数的参数”。

使用 connections.toml 文件建立连接

要在连接配置文件中添加凭据,请执行以下操作:

  1. 在文本编辑器中,打开 connections.toml 文件进行编辑。例如,要在 Linux vi 编辑器中打开该文件,请执行以下命令:

    $ vi connections.toml
    
    Copy
  2. 添加新的 Snowflake 连接定义。

    例如,要添加一个名为 myconnection 的 Snowflake 连接,并在其中包含账户 myaccount、用户 johndoe 和密码凭据以及数据库信息,请在配置文件中添加以下行:

    [myconnection]
    account = "myaccount"
    user = "jdoe"
    password = "******"
    warehouse = "my-wh"
    database = "my_db"
    schema = "my_schema"
    
    Copy

    连接定义支持的配置选项与 snowflake.connector.connect 方法中提供的配置选项相同。

  3. 可选:添加更多连接,如下所示:

    [myconnection_test]
    account = "myaccount"
    user = "jdoe-test"
    password = "******"
    warehouse = "my-test_wh"
    database = "my_test_db"
    schema = "my_schema"
    
    Copy
  4. 保存对文件所做的更改。

  5. 在 Python 代码中,将连接名称提供给 snowflake.connector.connect,然后将其添加到 session,如下所示:

    session = Session.builder.config("connection_name", "myconnection").create()
    
    Copy

有关更多信息,请参阅 配置文件

通过指定连接参数建立连接

构造一个字典 (dict),其中包含这些参数(例如 accountuserrolewarehousedatabaseschema 等)的名称和值。

要创建会话,请执行以下操作:

  1. 创建一个 Python 字典 (dict),其中包含用于连接到 Snowflake 的参数的名称和值。

  2. 将此字典传递给 Session.builder.configs 方法,以返回具有这些连接参数的生成器对象。

  3. 调用 buildercreate 方法来建立会话。

以下示例使用包含连接参数的 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()
Copy

对于 account 参数,请使用 账户标识符。请注意,账户标识符不包含 snowflakecomputing.cn 后缀。

备注

此示例向您展示了创建会话的一种方式,但还有几种其他连接方式,包括:默认身份验证器、单点登录 (SSO)、多重身份验证 (MFA)、密钥对身份验证、使用代理服务器以及 OAuth。有关更多信息,请参阅 使用 Python Connector 连接到 Snowflake

通过 Web 浏览器使用单点登录 (SSO)

如果您已 将 Snowflake 配置为使用单点登录 (SSO),则可以将客户端应用程序配置为使用基于浏览器的 SSO 进行身份验证。

构造一个字典 (dict),其中包含这些参数(例如 accountuserrolewarehousedatabaseauthenticator 等)的名称和值。

要创建会话,请执行以下操作:

  1. 创建一个 Python 字典 (dict),其中包含用于连接到 Snowflake 的参数的名称和值。

  2. 将此字典传递给 Session.builder.configs 方法,以返回具有这些连接参数的生成器对象。

  3. 调用 buildercreate 方法来建立会话。

以下示例使用包含连接参数的 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()
Copy

结束会话

如果您不再需要使用会话执行查询并且想要取消当前正在运行的任何查询,请调用该会话对象的 close 方法。例如:

new_session.close()
Copy
语言: 中文