MicroStrategy でCData JDBC Driver を使ってSnowflake に接続
MicroStrategy は、データ主導のイノベーションを可能にする、モビリティプラットフォームです。MicroStrategy をCData JDBC Driver for Snowflake とペアリングすると、MicroStrategy からリアルタイムSnowflake へのデータベースのようなアクセスが得られ、レポート機能と分析機能が拡張されます。この記事では、MicroStrategy Developer でSnowflake のデータベースインスタンスを作成し、Snowflake のWarehouse Catalog を作成します。
CData JDBC ドライバーは、ドライバーに組み込まれた最適化されたデータ処理により、MicroStrategy でリアルタイムSnowflake と対話するための圧倒的なパフォーマンスを提供します。MicroStrategy からSnowflake に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をSnowflake に直接プッシュし、組み込みSQL エンジンを利用して、サポートされていない操作(一般的にはSQL 関数とJOIN 操作) をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブのMicroStrategy データタイプを使用してSnowflake を視覚化および分析できます。
MicroStrategy Developer のSnowflake に接続
CData JDBC Driver for Snowflake に基づくデータベースインスタンスを追加することにより、MicroStrategy Developer のSnowflake に接続できます。* 開始する前に、MicroStrategy Developer のインスタンスが接続されているMicroStrategy Intelligence Server をホストとするマシンにJDBC Driver for Snowflake をインストールする必要があります。
- MicroStrategy Developer を開き、[Project Source]を選択します。
- [Administration]->[Configuration Managers]->[Database Instances]と進み、右クリックして新しいインスタンスを追加します。

- インスタンスに名前を付け、データベース接続タイプとしてGeneric DBMS を選択し、新しいデータベース接続を作成します。

- データベース接続ウィザードで接続に名前を付け、新しいデータベースログイン名を作成してSnowflake のユーザーとパスワードを設定します。

- 接続ウィザードの[Advanced]タブで、追加の接続文字列パラメータを以下のように設定します。
- JDBC キーワードを接続文字列に追加します。
- MSTR_JDBC_JAR_FOLDER をJDBC ドライバーのJAR ファイルを含むディレクトリのパスに設定します。(C:\Program Files\CData JDBC Driver for Snowflake\lib\ on Windows.)
- DRIVER をドライバークラスであるcdata.jdbc.snowflake.SnowflakeDriver に設定します。
- URL を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
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
JDBC URL を構成する際に、Max Rows プロパティを定めることも可能です。これによって戻される行数を制限するため、可視化・レポートのデザイン設計時のパフォーマンスを向上させるのに役立ちます。
- Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
以下は、一般的な追加の接続文字列プロパティです。
JDBC;MSTR_JDBC_JAR_FOLDER=PATH\TO\JAR\;DRIVER=cdata.jdbc.snowflake.SnowflakeDriver;URL={jdbc:snowflake:User=Admin;Password=test123;Server=localhost;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;};
- ODBC データソースが選択されていないことを確認し、(これによりMicroStrategy がトリガーされ、追加の接続文字列パラメータを使用してデータベースインスタンスが構築されます)[OK]をクリックします。
- [OK]をクリックし、データベースインスタンスウィザードを閉じます。
- [Project Source]でプロジェクトを右クリックし、[Project configuration]を開きます。
- [Database Instances]に移動し、新しく作成したデータベースインスタンスを選択して[OK]をクリックします。
- MicroStrategy Developerを閉じ、接続されたMicroStrategy Intelligence Server を再起動してデータベースインスタンスの作成を完了します。
データベースインスタンスを構成すると、Warehouse Catalog およびData Import からSnowflake に接続できるようになります。
Warehouse Catalog からSnowflake のデータに接続する
JDBC Driver for Snowflake に基づいてデータベースインスタンスを作成すると、Warehouse Catalog のデータに接続できます。
- プロジェクトを選択し、[Schema]->[Warehouse Catalog]をクリックします。

- [Read Settings for the Catalog]で[Settings]をクリックし、スキーマを取得するためのクエリを設定します。
- テーブルのリストを取得するには、以下のクエリを使用します。
SELECT * FROM SYS_TABLES - 選択したテーブルの例のリストを取得するには、以下のクエリを使用します。
SELECT DISTINCT CatalogName NAME_SPACE, TableName TAB_NAME, ColumnName COL_NAME, DataTypeName DATA_TYPE, Length DATA_LEN, NumericPrecision DATA_PREC, NumericScale DATA_SCALE FROM SYS_TABLECOLUMNS WHERE TableName IN (#TABLE_LIST#) ORDER BY 1,2,3
- テーブルのリストを取得するには、以下のクエリを使用します。
- プロジェクトで使用するテーブルを選択します。

MicroStrategy のCData JDBC Driver for Snowflake を使用すると、Snowflake で安定したビジュアライズとレポートを簡単に作成できます。詳細については、MictroStrategy でのSnowflake への接続やMicroStrategy Desktop でのSnowflake への接続 に関するほかの記事をお読みください。
NoteJDBC Driver を使用して接続するには、3層から4層のアーキテクチャが必要です。