JRuby からSnowflake にデータ連携

加藤龍彦
加藤龍彦
デジタルマーケティング
リアルタイムSnowflake に連携するシンプルなJRuby アプリケーションを作成します。

JRuby はRuby プログラミング言語の高性能で安定した、完全にスレッド化されたJava 実装です。CData JDBC Driver for Snowflake を使用すると、JRuby からリアルタイムSnowflake へのデータ連携を簡単に実装できます。ここでは、Snowflake に接続し、クエリを実行して結果を表示する簡単なJRuby アプリを作成する方法を説明します。

Snowflake のデータにJDBC で接続

アプリを作成する前に、JDBC Driver のJAR ファイルのインストール場所をメモします。 (通常はC:\Program Files\CDatat\CData JDBC Driver for Snowflake\libにあります。)

JRuby は、JDBC をネイティブにサポートしているため、簡単にSnowflake に接続してSQL クエリを実行できます。java.sql.DriverManager クラスのgetConnection 関数を使用してJDBC 接続を初期化します。

それでは、Snowflake データベースに接続していきましょう。認証に加えて、以下の接続プロパティを設定します。

  • Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
    • Legacy URL を使用する場合:https://myaccount.region.snowflakecomputing.com
    • ご自身のURL は以下のステップで確認できます。
      1. Snowflake UI の左下にあるユーザー名をクリックします
      2. Account ID にカーソルを合わせます
      3. Copy Account URL アイコンをクリックして、アカウントURL をコピーします
  • Database(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベースのものに制限したい場合に設定します
  • Schema(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベーススキーマのものに制限したい場合に設定します

Snowflakeへの認証

CData 製品では、Snowflake ユーザー認証、フェデレーション認証、およびSSL クライアント認証をサポートしています。認証するには、UserPassword を設定し、AuthScheme プロパティで認証方法を選択してください。

キーペア認証

ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成し、キーペア認証で接続することも可能です。この方法で接続するには、AuthSchemePRIVATEKEY に設定し、以下の値を設定してください。

  • User:認証に使用するユーザーアカウント
  • PrivateKey:プライベートキーを含む.pem ファイルへのパスなど、ユーザーに使用されるプライベートキー
  • PrivateKeyType:プライベートキーを含むキーストアの種類(PEMKEY_FILE、PFXFILE など)
  • PrivateKeyPassword:指定されたプライベートキーのパスワード

その他の認証方法については、ヘルプドキュメントの「Snowflakeへの認証」セクションをご確認ください。

ビルトイン接続文字列デザイナー

JDBC URL の構成については、Snowflake JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

java -jar cdata.jdbc.snowflake.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

以下はSnowflake の一般的なJDBC 接続文字列です。

jdbc:snowflake:User=Admin;Password=test123;Server=localhost;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;

Snowflake のデータへの接続性を持つJRuby アプリを作成

新しいRuby ファイル(例: SnowflakeSelect.rb) を作成してテキストエディタで開き、次のコードをファイルにコピーします。

require 'java'
require 'rubygems'
require 'C:/Program Files/CData/CData JDBC Driver for Snowflake 2018/lib/cdata.jdbc.snowflake.jar'

url = "jdbc:snowflake:User=Admin;Password=test123;Server=localhost;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;"
conn = java.sql.DriverManager.getConnection(url)
stmt = conn.createStatement
rs = stmt.executeQuery("SELECT Id, ProductName FROM Products")
while (rs.next) do
  puts rs.getString(1) + ' ' + rs.getString(2)
end

ファイルが完成したら、コマンドラインからファイルを実行するだけでJRuby でSnowflake を表示できるようになります。

jruby -S SnowflakeSelect.rb

SQL-92 クエリをSnowflake に書き込むと、Snowflake を独自のJRuby アプリケーションに素早く簡単に組み込むことができます。今すぐ無料トライアルをダウンロードしましょう。

はじめる準備はできましたか?

Snowflake Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Snowflake Enterprise Data Warehouse Icon Snowflake JDBC Driver お問い合わせ

驚くほど簡単にJDBC でJava アプリケーションからSnowflake にデータ連携!