Creating a Session for Snowpark Java (original) (raw)

To use Snowpark in your application, you need to create a session. For convenience in writing code, you can also import the names of packages and objects.

Importing Names from Packages for Snowpark

The Snowpark API provides a number of classes in different packages. For convenience, you can import these packages to avoid having to use qualified names for classes.

For example:

Creating a Session for Snowpark

The first step in using the library is establishing a session with the Snowflake database. To create a session, use the methods in the SessionBuilder class. You can access a SessionBuilder object by calling the static builder method in the Session class:

import com.snowflake.snowpark_java.*;

... // Get a SessionBuilder object. SessionBuilder builder = Session.builder();

To provide the details to establish a session with a Snowflake database (for example, the account identifier, user name, etc.), either create a properties file (a text file) or programmatically build a Map containing the properties.

In the properties file or Map, set the following properties:

To authenticate, you can use the same mechanisms that the JDBC Driver supports. For example, you can use:

For key-pair authentication, you can either:

To create the session:

  1. Set the properties in the SessionBuilder object.
    • If you created a properties file, pass the path to the properties file to the configFile method of theSessionBuilder object.
    • If you programmatically built a Map of the properties, pass the Map to the configs method of theSessionBuilder object.
      Both methods return a SessionBuilder object that has these properties.
  2. Call the create method of the SessionBuilder object to establish the session.

The following is an example of a properties file that sets the basic parameters for connecting to a Snowflake database. The example is set up to use key-pair authentication. Set PRIVATE_KEY_FILE to the path to the private key file. In addition, if the private key is encrypted, you must set PRIVATE_KEY_FILE_PWD to the passphrase for decrypting the private key:

profile.properties file (a text file)

URL = https://.snowflakecomputing.com USER = PRIVATE_KEY_FILE = </path/to/private_key_file.p8> PRIVATE_KEY_FILE_PWD = <if the private key is encrypted, set this to the passphrase for decrypting the key> ROLE = WAREHOUSE = DB = SCHEMA =

As an alternative, you can set the PRIVATEKEY property to the unencrypted private key from the private key file.

profile.properties file (a text file)

URL = https://.snowflakecomputing.com USER = PRIVATEKEY = ROLE = WAREHOUSE = DB = SCHEMA =

The following example uses this properties file to create a new session:

// Create a new session, using the connection properties // specified in a file. Session session = Session.builder().configFile("/path/to/properties/file").create();

The following example uses a Map to set the properties:

import com.snowflake.snowpark_java.*; import java.util.HashMap; import java.util.Map; ... // Create a new session, using the connection properties // specified in a Map. // Replace the below. Map<String, String> properties = new HashMap<>(); properties.put("URL", "https://.snowflakecomputing.com:443"); properties.put("USER", ""); properties.put("PRIVATE_KEY_FILE", "</path/to/private_key_file.p8>"); properties.put("PRIVATE_KEY_FILE_PWD", "<if the private key is encrypted, set this to the passphrase for decrypting the key>"); properties.put("ROLE", ""); properties.put("WAREHOUSE", ""); properties.put("DB", ""); properties.put("SCHEMA", ""); Session session = Session.builder().configs(properties).create();

Closing a Session

If you no longer need to use a session for executing queries and you want to cancel any queries that are currently running, callclose method of the Session object. For example:

// Close the session, cancelling any queries that are currently running, and // preventing the use of this Session object for performing any subsequent queries. session.close();