Snowflake のデータをモバイル開発のUnifinity で利用する方法

クロスプラットフォームモバイルアプリ開発ができるUnifinity から Snowflake のデータに接続する方法

杉本和也
リードエンジニア

最終更新日:2022-05-19

この記事で実現できるSnowflake 連携のシナリオ

こんにちは!リードエンジニアの杉本です。

Unifinity は、iOS / Android / Windows のマルチOS 向けのモバイルアプリ開発が可能なプラットフォームです。Unifinity Studio という専用のツールで、UIをベースにアプリ画面をデザインしたり、DB・APIなどと連動した処理・ロジックを作成することができます。Unifinity では、REST API への接続ができるため、CData の製品を組み合わせることで対応データソースを増やすことができます。この記事では CData API Server と ADO.NET Provider for Snowflake を使って、Unifinity でSnowflake にデータ連携するモバイルアプリを開発する方法を説明します。
Unifinity モバイルアプリからSnowflake にデータ連携。

API Server の設定

次のステップに従い、セキュアな REST API サービスを立ち上げます

デプロイ

API Server はサーバー上で稼働します。Windows 版は、製品に組み込まれているスタンドアロンのサーバーかIIS に配置して稼働させることができます。Java 版では、Java servlet コンテナにAPI Server のWAR ファイルを配置します。 デプロイの詳細は製品ヘルプを参照してください。API Server を Microsoft AzureAmazon EC2Heroku にデプロイする方法はKB に記事があります。

Snowflake への接続

API Server の管理コンソールで[設定]→[接続]から新しい接続を追加してSnowflake を追加します。

Snowflake のアイコンがデフォルトのAPI Server の接続先にない場合には、API Server がJava 版の場合はJDBC Drivers、API Server がWindows 版の場合はADO.NET Data ProvidersからSnowflake ドライバーをAPI Server と同じマシンにインストールして、API Server を再起動します。

Snowflake への接続に必要な認証情報を入力します。接続のテストを行い、接続を確認して、設定を保存します。

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(オプション):によって公開されるテーブルとビューを、特定のSnowflake データベースのものに制限します。
  • Schema(オプション):本製品によって公開されるテーブルとビューを、特定のSnowflake データベーススキーマのものに制限します。

Snowflake への認証

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

キーペア

ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成することにより、キーペア認証を使用して認証できます。この方法で接続するには、AuthSchemePRIVATEKEY に設定し、次の値を設定します。

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

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

接続を確立後、[設定]→[リソース]の画面で からREST API として公開するエンティティを選択します。

API Server のユーザー設定

[設定]→[ユーザー]からAPI にアクセスできるユーザーの認証設定を行います。API Server はトークンでの認証を行うことができます。 IP アドレスでAPI へのアクセスを制限することも可能です。デフォルトではローカルマシンからのアクセスのみが許可されています。SSL の設定も可能です。

オンプレミスDB やファイルからのAPI Server 使用(オプション)

オンプレミスRDB やExcel/CSV などのファイルのデータを使用する場合には、API Server のCloug Gateway / SSH ポートフォワーディングが便利です。是非、Cloud Gatway の設定方法 記事を参考にしてください。

Unifinity でSnowflake のREST サービスに接続

Unifinity プロジェクトの作成

Unifinity から APIServer への接続設定をしていきます。

  1. Unifinity Studioを立ち上げてます。
  2. 新しくプロジェクトを作成します。今回は「inquiriesProject」としました。
  3. 次に画面を作る前に、データを格納するためのDBを作ってしまいます。 DBタブを選んで、「+」ボタンでDBを追加します。名前は「inquiries」です。
  4. Unifinity
  5. 画面を作成します。一覧画面に表示している「表」は先程作成したDBの「inquiries」と紐付けています。
  6. Unifinity
  7. 画面本体のオープン時の処理として後ほど解説するデータ取得ロジックを指定しています。これによって、表にデータが表示されるようになります。
  8. Unifinity
  9. アプリの要となるロジック部分を構成します。
  10. 一覧画面を表示するための「データ取得ロジック」を作成します。登録・更新のロジック作成も可能です。
  11. データ取得ロジックは以下のような処理で構成されています。Cdata API Serverにリクエストを送り、そのデータをデータベースに書き込むことで一覧表示を実現しています。
  12. Unifinity
  13. API Serverへのリクエストには、ヘッダーで認証情報を指定する必要があります。そのため、ディクショナリー作成コンポーネントを使って、ContentTypeとともに、「x-cdata-authtoken」というプロパティで先程API Serverのユーザー作成画面で構成したToken情報を設定するようにします。
  14. Unifinity
  15. HTTPリクエストには「ネットワーク/GET2」のコンポーネントを使用し、URIにAPI Serverのinquiriesリソースエンドポイント「例:http://localhost:8387/api.rsc/sakila_inquiries」を指定し、ヘッダーオプションに先程作成したディクショナリを指定します。
  16. Unifinity
  17. あとはJSON構造をディクショナリに格納し、配列構造を持っている「value」の部分を読み込んだ上で、データベースに書き込みます。
  18. Unifinity Unifinity
  19. データベースに書き込む際には、予めデータクリアーをするように指定しておきます。
  20. Unifinity

    このように Snowflake 内のデータを簡単にUnifinity で作成するモバイルアプリで使用することができるようになります。

    CData API Server の無償版およびトライアル

    CData API Server は、無償版および30日の無償トライアルがあります。是非、API Server ページ から製品をダウンロードしてお試しください。

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。