製品をチェック

製品の詳細・30日間の無償トライアルはこちら

CData API Server

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

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

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

最終更新日:2022-05-19
snowflake ロゴ

CData

apiserver ロゴ画像
Unifinity ロゴ

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

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 にデータ連携。

Snowflake とのデータ連携について

CData は、Snowflake のライブデータへのアクセスと連携を容易にします。CData のコネクティビティを活用することで、次のようなことを実現できます。

  • Snowflake のデータを迅速かつ効率的に読み書き。
  • 指定したウェアハウス、データベース、スキーマのメタデータを動的に取得。
  • OAuth、OKTA、Azure AD、Azure Managed Service Identity、PingFederate、秘密鍵など、さまざまな方法による認証。

多くのCData ユーザーは、CData のソリューションを使用して好みのツールやアプリケーションからSnowflake にアクセスしたり、さまざまなシステムからSnowflake にデータをレプリケートして包括的なウェアハウスや分析を実現したりしています。

Snowflake とCData ソリューションの連携についての詳細は、ブログを参照してください: パフォーマンス低下で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 への接続には以下の情報が必要となります。

  1. User およびPassword をSnowflake ユーザーに設定し、AuthScheme をPASSWORD もしくはOKTA に設定します。
  2. URL をSnowflake インスタンスのURL に設定します(i.e.: https://myaccount.snowflakecomputing.com)。
  3. Warehouse をSnowflake warehouse に設定します。
  4. (Optional) Account URL が上記の形式に当てはまらない場合、Snowflake のアカウントに設定します。
  5. (Optional) Database およびSchema は、参照できるテーブルやビューを制限する場合に指定します。

詳細はヘルプドキュメントを参照してください。

接続を確立後、[設定]→[リソース]の画面で から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 のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。