Servoy でSpark に接続されたWeb アプリを構築

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

Apache Spark JDBC Driver

Apache Spark 連携のパワフルなJava アプリケーションを素早く作成して配布。



Servoy Developer を使用して手軽にSpark データに接続し、ライブSpark データに接続できるWeb アプリケーションを構築。

Servoy は、迅速なアプリケーション開発とデプロイのためのプラットフォームです。CData JDBC Driver for Spark と組み合わせることで、ユーザーはSpark に接続してライブSpark データを使用できるアプリケーションを構築できます。この記事では、Servoy からSpark に接続し、Spark データを表示、検索するための簡単なWeb アプリケーションを構築する方法を説明します。

ビルトインの最適化されたデータ処理により、CData JDBC Driver は、ライブSpark データとやり取りする際に圧倒的なパフォーマンスを提供します。Spark に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をSpark に直接プッシュし、サポートされていない操作(主にSQL 関数とJOIN 操作)は組み込みのSQL エンジンを利用してクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータソース型を使用してSpark データを操作できます。

Servoy Developer からSpark に接続する

Spark に接続するアプリケーションを構築するには、まず、Servoy Developer からCData JDBC Driver for Spark を使用してデータプロバイダを作成する必要があります。

  1. JDBC Driver をインストールします。
  2. JDBC Driver JAR ファイル(cdata.jdbc.sparksql.jar)を、Servoy のインストールディレクトリの/application_server/drivers/ ディレクトリにコピーします。
  3. Servoy Developer を開きます。
  4. Solution Explorer で「Resources」の下の「Database Server」を右クリックし、「Connect to existing database」->「empty」を選択します。
    1. サーバーに名前を付けます。
    2. クリックすると、サーバーの詳細設定が表示されます。
      • 次のようにURL を設定します。例:jdbc:sparksql:Server=127.0.0.1;

        組み込みの接続文字列デザイナー

        JDBC URL の構築については、Spark JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインからjar ファイルを実行します。

        java -jar cdata.jdbc.sparksql.jar

        接続プロパティを入力し、接続文字列をクリップボードにコピーします。

        SparkSQL への接続

        SparkSQL への接続を確立するには以下を指定します。

        • Server:SparkSQL をホストするサーバーのホスト名またはIP アドレスに設定。
        • Port:SparkSQL インスタンスへの接続用のポートに設定。
        • TransportMode:SparkSQL サーバーとの通信に使用するトランスポートモード。有効な入力値は、BINARY およびHTTP です。デフォルトではBINARY が選択されます。
        • AuthScheme:使用される認証スキーム。有効な入力値はPLAIN、LDAP、NOSASL、およびKERBEROS です。デフォルトではPLAIN が選択されます。

        Databricks への接続

        Databricks クラスターに接続するには、以下の説明に従ってプロパティを設定します。Note:必要な値は、「クラスター」に移動して目的のクラスターを選択し、 「Advanced Options」の下にある「JDBC/ODBC」タブを選択することで、Databricks インスタンスで見つけることができます。

        • Server:Databricks クラスターのサーバーのホスト名に設定。
        • Port:443
        • TransportMode:HTTP
        • HTTPPath:Databricks クラスターのHTTP パスに設定。
        • UseSSL:True
        • AuthScheme:PLAIN
        • User:'token' に設定。
        • Password:個人用アクセストークンに設定(値は、Databricks インスタンスの「ユーザー設定」ページに移動して「アクセストークン」タブを選択することで取得できます)。

      • コピーしたDriver クラスを選択します。例:cdata.jdbc.sparksql.SparkSQLDriver

Sparkに接続するWeb アプリを構築する

Servoy Developer リソースでSpark への接続を設定すると、ライブSpark へのアクセス権を持つアプリケーションを構築することができます。

新しいソリューションを作成する

  1. Server Explorer で、「All solutions」を右クリックし、「Create new solution」を選択します。
  2. ソリューションに名前を付けます。
  3. 「search」モジュールを含むチェックボックスを選択します。
  4. 「Finish」をクリックします。

新しいフォームを作成する

「Forms」を右クリックし、「Create new form」を選択します。

  1. フォームに名前を付けます。
  2. データソースを選択します。
  3. タイプ(Simple など)を設定し、「Finish」をクリックします。

フォームにData Grid を追加する

  1. Servoy NG-Grids からData Grid コンポーネントをフォームにドラッグします。
  2. カラムコンポーネントをData Grid にドラッグし、各カラムコンポーネントの「dataprovider」プロパティをSpark 「table」のカラム(例:Customers テーブルのCity)に設定します。

    必要に応じてカラムを追加します。

アプリケーションに検索を追加する

検索機能を追加するには、「svySearch」拡張機能が必要です。(新しいソリューションを作成する際にデフォルトで含まれます。)ソリューションの作成時に拡張機能を追加しなかった場合、または、既存のソリューションを変更する場合は、ソリューション内のModules を右クリックして「Add Module」を選択することで検索モジュールを追加できます。「svySearch」を選択し、「OK」をクリックします。

  1. Text Field コンポーネントをForm にドラッグします。
  2. Form を右クリックし、「Open in Script Editor」を選択します。
  3. 検索値を保持する新しい変数(JavaScript)を作成します。
    var searchText = '';
    
  4. Text Field プロパティでForm に戻ります。
    1. 「dataprovider」プロパティを作成したForm 変数に設定します。
    2. ダブルクリックしてonAction イベントのメソッドを追加します。
    3. クリックして「Form」でメソッドを作成し、名前を付けて(例:onEnter)、「Create private」をクリックします。
    4. 「OK & Show」をクリックします。
  5. 以下のJavaScript をJavaScript ファイルに追加することで、Servoy フレームワークを使用してText Field のテキストを使ったバインドデータの検索を実装します。
    var search = scopes.svySearch.createSimpleSearch(foundset).setSearchText(searchText);
    search.setSearchAllColumns();
    search.loadRecords(foundset);
    

アプリを保存して起動する

フォームとJavaScript ファイルを保存し、「Run」->「Launch NGClient」とクリックしてWeb アプリケーションを起動します。

CData JDBC Driver for Spark の30日間無償トライアルをダウンロードし、Servoy でSpark に接続されたアプリケーションの構築を開始します。ご不明な点があれば、サポートチームにお問い合わせください。