UI/UX 特化ローコード開発ツール NEXACRO BEYOND を使ってBigQuery と連携したアプリを開発する方法
NEXACRO BEYOND は UI/UX に特化したローコード開発ツールおよびその実行基盤です。この記事では、CData API Server を経由して NEXACRO BEYOND からBigQuery に連携し、アプリを開発する方法を紹介します。
CData API Server は、BigQuery のデータの仮想OData インターフェースを提供し、NEXACRO BEYOND からリアルタイムにBigQuery データへ連携することができます。
BigQuery データ連携について
CData は、Google BigQuery のライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:
- OAuth、OAuth JWT、GCP インスタンスなど、すぐに使える幅広い認証スキームのサポートにより、BigQuery へのアクセスを簡素化します。
- BigQuery と他のアプリケーション間の双方向データアクセスにより、データワークフローを強化します。
- SQL ストアドプロシージャを通じて、ジョブの開始・取得・キャンセル、テーブルの削除、ジョブロードの挿入など、主要な BigQuery アクションを実行できます。
多くの CData のお客様は、Google BigQuery をデータウェアハウスとして使用しており、CData ソリューションを使用して、別々のソースからビジネスデータを BigQuery に移行し、包括的な分析を行っています。また、BigQuery データの分析やレポート作成に当社の接続機能を使用するお客様も多く、両方のソリューションを使用しているお客様も多数います。
CData が Google BigQuery 体験をどのように向上させるかについての詳細は、ブログ記事をご覧ください:https://jp.cdata.com/blog/what-is-bigquery
はじめに
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなBigQuery OData サービスを作成していきましょう。
BigQuery への接続
Nexacro からBigQuery のデータを操作するには、まずBigQuery への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「BigQuery」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、BigQuery への接続設定を行っていきましょう!
-
BigQuery 接続プロパティの取得・設定方法
Google BigQuery はOAuth 認証標準を使用します。個々のユーザーとしてGoogle API にアクセスするには、組み込みクレデンシャルを使うか、OAuth アプリを作成します。
OAuth では、Google Apps ドメインのユーザーとしてサービスアカウントを使ってアクセスすることもできます。サービスカウントでの認証では、OAuth JWT を取得するためのアプリケーションを登録する必要があります。
OAuth 値に加え、DatasetId、ProjectId を設定する必要があります。詳細はヘルプドキュメントの「はじめに」を参照してください。
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
BigQuery 接続プロパティの取得・設定方法
Google BigQuery はOAuth 認証標準を使用します。個々のユーザーとしてGoogle API にアクセスするには、組み込みクレデンシャルを使うか、OAuth アプリを作成します。
OAuth では、Google Apps ドメインのユーザーとしてサービスアカウントを使ってアクセスすることもできます。サービスカウントでの認証では、OAuth JWT を取得するためのアプリケーションを登録する必要があります。
OAuth 値に加え、DatasetId、ProjectId を設定する必要があります。詳細はヘルプドキュメントの「はじめに」を参照してください。
API Server のユーザー設定
次に、API Server 経由でBigQuery にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
BigQuery 用のAPI エンドポイントの作成
ユーザーを作成したら、BigQuery のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でBigQuery への接続を設定してユーザーを作成し、API Server でBigQuery データのAPI を追加しました。これで、OData 形式のBigQuery データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
プロジェクトの作成
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 API Server で定義したリソースのエンドポイントを指定します。その際にクエリパラメータでの認証も入力しておきましょう。
- 併せて、今回はアプリケーションを実行したときに通信が行われるように「preload」を「true」に指定しておきました。
Dataset を構成する
今回は最終的に一覧画面を作るわけですが、一覧画面のコンポーネントはJSON のように不定形なオブジェクトだとバインディングすることができません。
そこで、一度DataObject を「Dataset」という画面上で利用できるオブジェクトにマッピングしてあげた上で、UI 上で表示できるようにします。
- 「Dataset」を先ほどと同じように画面に配置します。
- 作成したDataset の「binddataobject」で先ほど作成したDataObject を選択し、次に「dataobjectpath」を編集します。
- 以下のようなData Path Editor という画面で、JSON のオブジェクト構造をどのようにマッピングするかを構成できます。
- CData API Server で作成されたWeb API「$.value」というJSON Path でレコードに分解できます。そのため DataObject Path に「$.value [*]」と入力して、リロードし、各カラムをマッピングさせます。
Grid の作成
最後に一覧表示用のGrid を配置して、取得したデータを表示してみましょう。
- Grid をキャンパス上に配置します。
- Grid を配置後、先ほど定義したDataset をGrid 上にドラッグ・アンド・ドロップで持っていくと、以下のよう一覧画面が表示されます。
このように、CData API Server を経由することで、API 側の複雑な仕様を意識せずにAPI 連携アプリをNEXACRO BEYOND で開発できます。他にも多くのデータソースに対応するCData API Server の詳細をこちらからご覧ください。