Comment se connecter à Snowflake avec JDBC

Comment se connecter à Snowflake avec JDBC


Merci d’avoir lu notre message précédent #10 Ensembles de résultats de requête disponible pour les utilisateurs via l’historique.

Comme promis dans mon original Publiervoici une plongée plus profonde dans une autre des 10 fonctionnalités les plus intéressantes de Snowflake :

#9 Possibilité de se connecter avec JDBC

Cela semble être une évidence, mais c’est très important. Si vous êtes intéressé à connecter n’importe quel Douane ou emballé Applications basées sur Java pour Snowflake, JDBC est ce dont vous avez besoin. La technologie JDBC vous permet d’accéder aux informations des bases de données SQL à l’aide de requêtes SQL standard.

Alors pourquoi est-ce cool? Parce que toutes les applications modernes écrites en Java peuvent profiter de notre entrepôt de données basé sur le cloud élastique via une connexion JDBC.

Et nous avons beaucoup de clients qui le font aujourd’hui avec des outils de pointe.

Applications JDBC

Vous pouvez facilement connecter divers outils ETL, BI et de visualisation à Snowflake à l’aide du pilote JDBC, tout comme ils se connectent à de nombreuses bases de données héritées.

Simple à utiliser

Vous pouvez télécharger et installer le pilote Snowflake JDBC via notre interface utilisateur. Pour ce faire, connectez-vous à votre compte Snowflake, accédez à l’aide en ligne et sélectionnez le pilote JDBC dans le menu des téléchargements. Cliquez sur le lien fourni pour plus de détails sur l’installation et la configuration.

Une fois que vous avez installé le pilote, vous avez plusieurs façons d’en tirer parti. Si vous possédez ou construisez un Douane Application Java, vous pouvez connecter cette application directement à Snowflake assez facilement. Cet exemple montre à quel point il est simple de se connecter et d’interroger des données dans Snowflake avec un programme Java, à l’aide du pilote JDBC pour Snowflake.

/*
 * Copyright (c) 2012, 2013 Snowflake Computing Inc. All right reserved.
 */
package com.snowflake.client;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class SnowflakeDriverExample
{
  public static void main(String[] args) throws Exception
  {
    // get connection
    System.out.println("Create JDBC connection");
    Connection connection = getConnection();
    System.out.println("Done creating JDBC connectionn");
    // create statement
    System.out.println("Create JDBC statement");
    Statement statement = connection.createStatement();
    System.out.println("Done creating JDBC statementn");
    // create a table
    System.out.println("Create demo table");
    statement.executeUpdate("create or replace table demo(C1 STRING)");
    statement.close();
    System.out.println("Done creating demo tablen");
    // insert a row
    System.out.println("Insert 'hello world'");
    statement.executeUpdate("insert into demo values ('hello world')");
    statement.close();
    System.out.println("Done inserting 'hello world'n");
    // query the data
    System.out.println("Query demo");
    ResultSet resultSet = statement.executeQuery("SELECT * FROM demo");
    System.out.println("Metadata:");
    System.out.println("================================");
    // fetch metadata
    ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
    System.out.println("Number of columns=" +
                       resultSetMetaData.getColumnCount());
    for (int colIdx = 0; colIdx < resultSetMetaData.getColumnCount();
                         colIdx++)
    {
      System.out.println("Column " + colIdx + ": type=" +
                         resultSetMetaData.getColumnTypeName(colIdx+1));
    }
    // fetch data
    System.out.println("nData:");
    System.out.println("================================");
    int rowIdx = 0;
    while(resultSet.next())
    {
      System.out.println("row " + rowIdx + ", column 0: " +
                         resultSet.getString(1));
    }
    statement.close();
  }
   private static Connection getConnection()
          throws SQLException
  {
    try
    {
      Class.forName("net.snowflake.client.jdbc.SnowflakeDriver");
    }
    catch (ClassNotFoundException ex)
    {
     System.err.println("Driver not found");
    }
    // build connection properties
    Properties properties = new Properties();
    properties.put("user", "");     // replace "" with your username
    properties.put("password", ""); // replace "" with your password
    properties.put("account", "");  // replace "" with your account name
    properties.put("db", "");       // replace "" with target database name
    properties.put("schema", "");   // replace "" with target schema name
    //properties.put("tracing", "on");

    // create a new connection
    String connectStr = System.getenv("SF_JDBC_CONNECT_STRING");
    // use the default connection string if it is not set in environment
    if(connectStr == null)
    {
     connectStr = "jdbc:snowflake://accountName.snowflakecomputing.com"; // replace accountName with your account name
    }
    return DriverManager.getConnection(connectStr, properties);
  }
}

Si, en revanche, vous avez une application packagée à connecter, vous pouvez le faire tout aussi facilement. Par exemple, vous pouvez vous connecter à des applications basées sur Java comme Oracle SQL Developer Data Modeler (SDDM), qui peuvent être utilisées pour rétroconcevoir la conception de toutes les tables et vues auxquelles vous avez été autorisé à accéder dans Snowflake. Pour plus de détails sur la configuration de SDDM pour parler à Snowflake, voir ceci blog détaillé. (NB : Les spécificités de configuration de chaque outil varient, mais cela Blog vous donnera un exemple de ce qu’il faut rechercher)

Continuez à garder un œil sur ce site de blog, notre flux Twitter Snowflake (@SnowflakeDB), (@kentgraziano), et (@cloudsommelier) pour plus Top 10 des choses cool à propos du flocon de neige ainsi que tous les autres événements et actualités de Snowflake Computing.

Kent Graziano et Saqib Mustafa

Liens supplémentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.