JDBI からSnowflake データのデータアクセスオブジェクトを作成
JDBI は、Fluent スタイルとSQL オブジェクトスタイルという2つの異なるスタイルAPI を公開する、Java 用のSQL コンビニエンスライブラリです。CData JDBC Driver for Snowflake は、Java アプリケーションとリアルタイムSnowflake のデータ のデータ連携を実現します。これらの技術を組み合わせることによって、Snowflake のデータ へのシンプルなコードアクセスが可能になります。ここでは、基本的なDAO(Data Access Object )とそれに付随するSnowflake のデータ の読み書きのためのコードの作成について説明します。
Snowflake Products Entity のDAO を作成
以下のインターフェースは、実装されるSQL ステートメントごとに単一のメソッドを作成するためのSQL オブジェクトの正しい動作を宣言します。
public interface MyProductsDAO {
//insert new data into Snowflake
@SqlUpdate("INSERT INTO Products (Id, ProductName) values (:id, :productName)")
void insert(@Bind("id") String id, @Bind("productName") String productName);
//request specific data from Snowflake (String type is used for simplicity)
@SqlQuery("SELECT ProductName FROM Products WHERE Id = :id")
String findProductNameById(@Bind("id") String id);
/*
* close with no args is used to close the connection
*/
void close();
}
Snowflake への接続を開く
必要な接続プロパティを収集し、Snowflake に接続するための適切なJDBC URL を作成します。
それでは、Snowflake データベースに接続していきましょう。認証に加えて、以下の接続プロパティを設定します。
- Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
- Legacy URL を使用する場合:https://myaccount.region.snowflakecomputing.com
- ご自身のURL は以下のステップで確認できます。
- Snowflake UI の左下にあるユーザー名をクリックします
- Account ID にカーソルを合わせます
- Copy Account URL アイコンをクリックして、アカウントURL をコピーします
- Database(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベースのものに制限したい場合に設定します
- Schema(オプション):CData 製品によって公開されるテーブルとビューを、特定のSnowflake データベーススキーマのものに制限したい場合に設定します
Snowflakeへの認証
CData 製品では、Snowflake ユーザー認証、フェデレーション認証、およびSSL クライアント認証をサポートしています。認証するには、User とPassword を設定し、AuthScheme プロパティで認証方法を選択してください。
キーペア認証
ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成し、キーペア認証で接続することも可能です。この方法で接続するには、AuthScheme をPRIVATEKEY に設定し、以下の値を設定してください。
- User:認証に使用するユーザーアカウント
- PrivateKey:プライベートキーを含む.pem ファイルへのパスなど、ユーザーに使用されるプライベートキー
- PrivateKeyType:プライベートキーを含むキーストアの種類(PEMKEY_FILE、PFXFILE など)
- PrivateKeyPassword:指定されたプライベートキーのパスワード
その他の認証方法については、ヘルプドキュメントの「Snowflakeへの認証」セクションをご確認ください。
ビルトイン接続文字列デザイナー
JDBC URL の構成については、Snowflake JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.snowflake.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
Snowflake の接続文字列は、通常次のようになります。
jdbc:snowflake:User=Admin;Password=test123;Server=localhost;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;
構成済みのJDBC URL を使用して、DAO インターフェースのインスタンスを取得します。以下に示す特定のメソッドはインスタンスにバインドされたハンドルを開くため、ハンドルとバインドされたJDBC 接続を開放するには、インスタンスを明示的に閉じる必要があります。
DBI dbi = new DBI("jdbc:snowflake:User=Admin;Password=test123;Server=localhost;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;");
MyProductsDAO dao = dbi.open(MyProductsDAO.class);
//do stuff with the DAO
dao.close();
Snowflake データについて
Snowflake への接続を開いた状態で以前定義したメソッドを呼び出すだけで、Snowflake のProducts エンティティからデータを取得できます。
//disply the result of our 'find' method
String productName = dao.findProductNameById("1");
System.out.println(productName);
Snowflake データの書き方
以前定義した方法を使用すれば、Snowflake にデータを書き込むことも簡単になります。
//add a new entry to the Products entity dao.insert(newId, newProductName);
JDBI ライブラリはJDBC 接続を処理できるため、CData JDBC Driver for Snowflake と統合することで、SQL Object API for Snowflake を簡単に作成できます。今すぐ無料トライアルをダウンロードし、Java アプリケーションでリアルタイムSnowflake を操作しましょう。