Scala – Création d’une table Snowflake

Dans ce tutoriel Snowflake, nous allons voir comment faire en Scala pour :

  • Créer une base de données Snowflake
  • Comment créer une table Snowflake grâce à la dépendance JDBC de Snowflake
  • Comment s’y connecter

Prérequis

  • Avoir un compte Snowflake
  • Avoir des connaissances de base en Scala et d’un IDE pour lancer les programmes Scala

Installation du pilote JDBC Snowflake

Il est possible de récupérer le pilote JDBC Snowflake via le référentiel Maven, ou en récupérant la dépendance Maven comme indiqué ci-dessous. Sélectionnez la dernière version disponible du référentiel Maven.

<dependency>
     <groupId>net.snowflake</groupId>
     <artifactId>snowflake-jdbc</artifactId>
     <version>3.12.0</version>
</dependency>

Créer une base de données Snowflake depuis la console Web

Pour créer une base de données :

  • Connectez-vous sur la console Web de Snowflake
  • Cliquez sur “Databases” à partir du menu, puis l’option “Create Database”
  • Dans le champs “Name”, entrez le nom souhaité
  • Cliquez sur le bouton “Finish”

Créer une table Snowflake en Scala

Il est possible de créer une table Snowflake de deux manières : En utilisant la console Web Snowflake, ou via du code Scala. Pour cette deuxième solution, les étapes à suivre ci-dessous vous permettent d’exécuter une instruction LDD (Langage de Définition de Données) “create table” en Scala.

Paramètres de connexion

Pour se connecter à la table Snowflake depuis le code Scala, il est nécessaire de fournir un minimum de propriétés :

  • account : nom du compte, récupérable depuis l’url. Ex : “oea82”
  • user : nom d’utilisateur Snowflake, typiquement le nom de compte utilisé pour l’authentification
  • password : mot de passe associé à l’utilisateur
  • warehouse : nom du data warehouse Snowflake
  • db : nom de la base de données Snowflake
  • schema : schema de la base de données auxquelles appartiennent les tables
  • role : rôle utilisateur Snowflake
val properties = new java.util.Properties()
  properties.put("user", "user")
  properties.put("password", "#########")
  properties.put("account", "oea82")
  properties.put("warehouse", "mywh")
  properties.put("db", "EMP")
  properties.put("schema", "public")
  properties.put("role","ACCOUNTADMIN")

Chaîne de connexion JDBC

Pour se connecter via le driver JDBC, il est nécessaire de fournir la chaîne de connexion à Snowflake. Il s’agit de l’URL du compte Snowflake qui contient le nom du compte, suivi du nom de la région et se terminant par snowflakecomputing.com.

val jdbcUrl = "jdbc:snowflake://oea82.us-east-1.snowflakecomputing.com/"

Etablir la connexion avec la base de données Snowflake

Afin d’établir la connexion avec Snowflake, utilisez Java DriverManager.getConnection(). Cette méthode prend en paramètre l’URL de connexion JDBC ainsi que les propriétés ci-dessus.

val connection = DriverManager.getConnection(jdbcUrl, properties)

Création d’une instruction & exécution d’une requête pour créer une table

Tout comme ANSI SQL, vous pouvez utiliser la syntaxe CREATE TABLE ou CREATE OR REPLACE TABLE.

val statement = connection.createStatement
statement.executeUpdate("create or replace table EMPLOYEE(name VARCHAR, department VARCHAR, salary number)")
statement.close

Example final de la création d’une table Snowflake en Scala

import java.sql.DriverManager

object CreateSnowflakeTable extends App{

  val properties = new java.util.Properties()
  properties.put("user", "username")
  properties.put("password", "######1")
  properties.put("account", "oea82")
  properties.put("warehouse", "mywh")
  properties.put("db", "EMP")
  properties.put("schema", "public")
  properties.put("role","ACCOUNTADMIN")

  // Chaîne de caractères de connexion JDBC
  val jdbcUrl = "jdbc:snowflake://oea82.us-east-1.snowflakecomputing.com/"

  println("Création de la connection JDBC")
  val connection = DriverManager.getConnection(jdbcUrl, properties)
  println("Fin de la création de la connexion JDBC")

  println("Création d'une instruction JDBC")
  val statement = connection.createStatement

  // Créer une table
  println("Création de la table EMPLOYEE")
  statement.executeUpdate("create or replace table EMPLOYEE(name VARCHAR, department VARCHAR, salary number)")
  statement.close
  println("Création de la table EMPLOYEE terminée")

  connection.close()
  println("Clôture de la connexion")
}

Cet example de Snowflake avec Scala est également disponible sur GitHub pour référence.

Conclusion

Dans ce tutoriel, nous avons vu comment créer une base de données Snowflake et exécuter une instruction LDD, dans notre cas l’exécution d’une requête SQL pour créer une table Snowflake.

Référence:

Bon apprentissage !!

Leave a Reply