UI/UX 特化ローコード開発ツール NEXACRO BEYOND を使ってSnowflake と連携したアプリを開発する方法
NEXACRO BEYOND は UI/UX に特化したローコード開発ツールおよびその実行基盤です。この記事では、CData Connect AI を経由して NEXACRO BEYOND からSnowflake に連携し、アプリを開発する方法を紹介します。
CData Connect AI は、Snowflake のデータのクラウド to クラウドの仮想OData インターフェースを提供し、NEXACRO BEYOND からリアルタイムにSnowflake データへ連携することができます。
Snowflake データ連携について
CData は、Snowflake のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:
- Snowflake データを迅速かつ効率的に読み書きできます。
- 指定された Warehouse、Database、Schema のメタデータを動的に取得できます。
- OAuth、OKTA、Azure AD、Azure マネージド サービス ID、PingFederate、秘密鍵など、さまざまな方法で認証できます。
多くの CData ユーザーは、CData ソリューションを使用して、お気に入りのツールやアプリケーションから Snowflake にアクセスし、さまざまなシステムからデータを Snowflake にレプリケートして、包括的なウェアハウジングと分析を行っています。
CData ソリューションとの Snowflake 統合についての詳細は、ブログをご覧ください:https://jp.cdata.com/blog/snowflake-integrations
はじめに
Connect AI を構成する
Snowflake Partner Connect を使って、Connect AI への接続を簡単に設定
Snowflake にログインした状態で「Snowflake Partner Connect」からCData Connect AI に直接サインアップして使用開始できます。
Snowflake のUI から「Data Products」 -> 「Partner Connect」の画面に移動し、「CData Software」をクリックすると、CData Connect AI にサインアップしてSnowflake への接続を自動作成してくれます。
この方法でサインアップした場合、Snowflake への接続設定の必要なくツールからご利用を開始いただけます。
NEXACRO BEYOND でSnowflake のデータをリアルタイムで操作するには、Connect AI からSnowflake に接続し、コネクションにユーザーアクセスを提供してSnowflake のデータのOData エンドポイントを作成する必要があります。
(オプション)新しいConnect AI ユーザーの追加
必要であれば、Connect AI 経由でSnowflake に接続するユーザーを作成します。
- ユーザーページに移動し、 Invite Users をクリックします。
- 新しいユーザーのE メールアドレスを入力して、 Send to invite the user をクリックします。
- ユーザーページからユーザーを確認および編集できます。
パーソナルアクセストークンの追加
MotionBoard への接続には、パスワードの代わりとしてパーソナルアクセストークンを利用します。セキュアなアクセス管理を実現するには、サービスごとに個別のPAT を作成するのがベストプラクティスです。
- Connect AI アプリの右上にある歯車アイコンをクリックします。
- Settings ページで「Access Tokens」タブに移動し、 Create PAT をクリックします。
- PAT の名前を入力して Create をクリックします。
- パーソナルアクセストークンは作成時にしか表示されないため、コピーして安全に保存してください。
Connect AI からSnowflake に接続
CData Connect AI では、簡単なクリック操作ベースのインターフェースでデータソースに接続できます。
- Connect AI にログインし、 Add Connection をクリックします。
- Add Connection パネルから「Snowflake」を選択します。
-
必要な認証プロパティを入力し、Snowflake に接続します。
それでは、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への認証」セクションをご確認ください。
- Url:お使いのSnowflake URL を指定します。例:https://orgname-myaccount.snowflakecomputing.com
- Create & Test をクリックします。
- Edit Snowflake Connection ページのPermissions タブに移動し、ユーザーベースのアクセス許可を更新します。
Connect AI にSnowflake OData エンドポイントを追加する
Snowflake に接続したら、目的のテーブルのOData エンドポイントを作成します。
- OData ページに移動し、 Add to create new OData endpoints をクリックします。
- Snowflake コネクション(例:Snowflake1)を選択し、Next をクリックします。
- 使用するテーブルを選択し、Confirm をクリックします。
コネクションとOData エンドポイントが構成されたら、NEXACRO BEYOND からSnowflake に接続できるようになります。
プロジェクトの作成
Web API の準備が整ったのでNEXACRO BEYOND によるアプリケーション開発を進めていきます。NEXACRO BEYOND のアプリケーションは NEXACRO Studio というツールを用いて開発します。
- まず、NEXACRO Studio を立ち上げて新しいプロジェクトを作成しましょう。
- 任意の名称でProject を作成します。
- 作成するアプリケーションの種類は今回はDesktop としました。
- Template から「Full」を選択して、「Finish」をクリックします。
Form の作成
プロジェクトを作成したら、一覧画面を表示するためのForm を作成しておきます。
- 「File」→「New」→「Form(.xfdl)」を選択し
- 任意の名称でEmpty Form を作成します。
- 以下のようにフォームが表示できればOKです。
DataObject の作成
続いてWeb API との通信の部分を作り込んでいきます。NEXACRO BEYOND ではDataObject という機能を用いて、JSON フォーマットのWeb API との通信やデータ制御を行うようになっています。
- まず「DataObject」を画面に配置します。
- DataObject を配置すると、Invisible Object の一覧に配置したDataObject が表示されるので右クリックから「Edit」を選択します。
- このJson Content Editor でJSON のオブジェクト構造を確認します。ここで先ほどCData Connect AI で定義したリソースのエンドポイントを指定します。その際にクエリパラメータでの認証も入力しておきましょう。
- 併せて、今回はアプリケーションを実行したときに通信が行われるように「preload」を「true」に指定しておきました。
Dataset を構成する
今回は最終的に一覧画面を作るわけですが、一覧画面のコンポーネントはJSON のように不定形なオブジェクトだとバインディングすることができません。
そこで、一度DataObject を「Dataset」という画面上で利用できるオブジェクトにマッピングしてあげた上で、UI 上で表示できるようにします。
- 「Dataset」を先ほどと同じように画面に配置します。
- 作成したDataset の「binddataobject」で先ほど作成したDataObject を選択し、次に「dataobjectpath」を編集します。
- 以下のようなData Path Editor という画面で、JSON のオブジェクト構造をどのようにマッピングするかを構成できます。
- CData Connect AI で作成されたWeb API「$.value」というJSON Path でレコードに分解できます。そのため DataObject Path に「$.value [*]」と入力して、リロードし、各カラムをマッピングさせます。
Grid の作成
最後に一覧表示用のGrid を配置して、取得したデータを表示してみましょう。
- Grid をキャンパス上に配置します。
- Grid を配置後、先ほど定義したDataset をGrid 上にドラッグ・アンド・ドロップで持っていくと、以下のよう一覧画面が表示されます。
このように、CData Connect AI を経由することで、API 側の複雑な仕様を意識せずにAPI 連携アプリをNEXACRO BEYOND で開発できます。他にも多くのデータソースに対応するCData Connect AI の詳細をこちらからご覧ください。