CData JDBC Driver for SQL Analysis Services で Ignition SCADA と連携

Somya Sharma
Somya Sharma
Technical Marketing Engineer
CData JDBC Driver を使って、Ignition SCADA からリアルタイムの SQL Analysis Services データに接続。ETL やレプリケーションは不要です。

Ignition は、Inductive Automation 社が提供する産業用の SCADA(監視制御およびデータ収集)および IIoT(産業用モノのインターネット)プラットフォームです。中核となる Gateway サービスが、デバイス接続やタグ、データベース接続を一元的に管理します。ただし、Ignition には SQL Analysis Services 用のコネクタが標準で用意されていません。そのため、SQL Analysis Services のデータを扱うには、独自のミドルウェアを用意するか、手作業でデータをエクスポートするのが一般的です。

CData JDBC Driver for SQL Analysis Services を使えば、この課題を解消できます。このドライバーは、SQL Analysis Services を標準的な JDBC(Java Database Connectivity)データソースとして利用できるようにするものです。Ignition はどの JDBC ドライバーも標準のデータベース接続として扱えるため、Gateway にドライバーを登録するだけで、Script Console や SQL Bridge、タグ、Perspective / Vision の画面からリアルタイムの SQL Analysis Services データをクエリできます。レプリケーションや独自コネクタ、ETL(抽出・変換・ロード)パイプラインは必要ありません。

この記事では、Ignition のインストールとコミッショニングから、CData JDBC Driver for SQL Analysis Services の登録、接続の作成、リアルタイムクエリによる動作確認までの流れを順を追って紹介します。

前提条件

  • Windows 版 Ignition(Windows 10/11 または Windows Server)と、Windows サービスをインストールするための管理者権限
  • CData JDBC Driver for SQL Analysis Services
  • 有効な認証情報を持ち、API アクセスが有効化された SQL Analysis Services アカウント
  • Gateway の Web インターフェースを開くための対応デスクトップブラウザ(Google Chrome、Mozilla Firefox、Microsoft Edge、Safari のいずれか)

ステップ 1:Ignition のインストールとセットアップ

Ignition をすでにインストールして稼働させている場合は、ステップ 2 に進んでください。

Ignition のダウンロード

  1. Inductive Automation のダウンロードページにアクセスし、Windows 版の Ignition をダウンロードします。 Ignition のダウンロード
  2. このファイルひとつで Ignition Gateway のフルインストーラーになっています。Gateway サービスと Designer Launcher の両方が含まれているので、Designer を別途ダウンロードする必要はありません。

Ignition のインストール

  1. インストーラーを実行し、ライセンス契約に同意してインストール先を選択します。
  2. Windows の起動時に Gateway も自動で起動するよう、Install as a Windows Service にはチェックを入れたままにしておきます。
  3. インストールを完了すると Gateway サービスが起動し、ブラウザで http://localhost:8088 が開いてコミッショニングウィザードが表示されます。Browser Not Supported と表示された場合は、Chrome、Firefox、Edge、Safari のいずれかで同じアドレスを開いてください。

Gateway のコミッショニング

  1. Commission Ignition Gateway ウィザードで Gateway Name を設定し、管理者のユーザー名とパスワードを作成します。
  2. エンドユーザー使用許諾契約に同意し、トライアルを開始するか、購入済みの Ignition ライセンスをアクティベートします。
  3. コミッショニングが完了したら、管理者アカウントでログインします。Gateway の Home ページが表示されます。 ログイン後の Gateway Home ページ

注意: トライアル版では Gateway の各ページにカウントダウンタイマーが表示され、Gateway サービスを再起動するとタイマーがリセットされます。テスト用途であれば問題ありませんが、本番環境で利用する場合はライセンスが必要です。

ステップ 2:Ignition への CData JDBC Driver の登録

Ignition では、サードパーティ製の JDBC ドライバーを Gateway の Web インターフェースからアップロードできます。ファイルシステムを直接操作する必要はありません。

  1. 管理者として Gateway にログインします。
  2. Connections > Databases > Settings に移動して Drivers タブを開き、Create JDBC Driver をクリックします。
  3. ダイアログで次の内容を入力します。
    • Name: SQL Analysis Services
    • Classname: cdata.jdbc.ssas.SSASDriver
    • Driver Type: Generic
    • Default Validation Query: SELECT Fiscal_Year FROM Adventure_Works LIMIT 1
    JDBC ドライバーの作成(画面は Salesforce の例)
  4. Create JDBC Driver をクリックします。現行の Ignition 8.3 では作成ダイアログに JAR(Java アーカイブ)ファイルのアップロード欄がないため、JAR ファイルは次の手順で追加します。
  5. 作成したドライバーの行の右端にあるメニューを開いて Manage JAR files を選択し、ドライバーのインストールディレクトリ内の lib フォルダにある cdata.jdbc.ssas.jar をアップロードして保存します。
  6. ドライバー一覧で、ドライバーのステータスが INSTALLED になっていることを確認します。 ステータスが INSTALLED のドライバー(画面は Salesforce の例)

ステップ 3:SQL Analysis Services への接続の作成

  1. Connections > Databases > Connections に移動し、Create Database Connection をクリックします。
  2. Driver Selection ステップで SQL Analysis Services を選択し、Next をクリックします。 ドライバーの選択(画面は Salesforce の例)
  3. Database Setup ステップで、Name に SQL Analysis Services を設定します。認証情報は接続 URL に含めるため、Username は空欄のままにし、Password は None を選択します。
  4. Connect URL に接続文字列を入力します。
    jdbc:ssas:User=myuseraccount;Password=mypassword;URL=http://localhost/OLAP/msmdpump.dll;
    接続情報の入力(画面は Salesforce の例)
  5. Create Database Connection をクリックし、Database Connections ページで接続のステータスが VALID になっていることを確認します。 ステータスが VALID の接続(画面は Salesforce の例)

SQL Analysis Services の接続プロパティ

接続するには、Url プロパティを有効なSQL Server Analysis Services エンドポイントに設定して認証を提供します。XMLA アクセスを使用して、HTTP 経由でホストされているSQL Server Analysis Services インスタンスに接続できます。 Microsoft ドキュメント configure HTTP access を参照してSQL Server Analysis Services に接続してください。

SQL Server Analysis Services に対してSQL を実行するには、ヘルプドキュメントの「Analysis Services データの取得」を参照してください。接続ごとにメタデータを取得する代わりに、CacheLocation を設定できます。

  • HTTP 認証

    AuthScheme を"Basic" または"Digest" に設定してUser とPassword を設定します。CustomHeaders に他の認証値を指定します。

  • Windows (NTLM)

    Windows のUser とPassword を設定して、AuthScheme をNTLM に設定します。

  • Kerberos およびKerberos Delegation

    Kerberos を認証するには、AuthScheme をNEGOTIATE に設定します。Kerberos 委任を使うには、AuthScheme をKERBEROSDELEGATION に設定します。必要があれば、User、Password およびKerberosSPN を設定します。デフォルトでは、CData 製品は指定されたUrl でSPN と通信しようと試みます。

  • SSL/TLS:

    デフォルトでは、CData 製品はサーバーの証明書をシステムの信頼できる証明書ストアと照合してSSL/TLS のネゴシエーションを試みます。別の証明書を指定するには、利用可能なフォーマットについてヘルプドキュメントの「SSLServerCert」プロパティを参照してください。

接続を設定したら、その後はあらゆるキューブを二次元テーブルとして扱えます。データに接続する際にCData 製品がSSAS のメタデータを取得して、動的にテーブルスキーマを更新します。 「CacheLocation」プロパティを設定すれば自動でファイルにキャッシュを作成するので、接続時に毎回メタデータを取得する必要もなくなります。

詳細は、ヘルプドキュメントの「Retrieving Analysis Services Data」を参照してください。

注意: パスワードやトークンにセミコロンが含まれていると接続 URL が正しく解釈されません。その場合は、セミコロンを含まない値に再設定してください。

ステップ 4:Ignition からリアルタイムの SQL Analysis Services データをクエリ

接続が有効になったら、Designer からリアルタイムの SQL Analysis Services データをクエリしてみましょう。

  1. Ignition Designer Launcher を開き、使用する Gateway を選択して Open Designer をクリックします(一覧に Gateway が表示されていない場合は、Add Designer をクリックして http://localhost:8088 を入力します)。Gateway の管理者アカウントでログインしてください。 Designer Launcher から Designer へのログイン
  2. プロジェクトを開くか、新規に作成します。Designer が開き、Project Browser、Tag Browser、Component Palette の各パネルが表示されます。 Ignition Designer のメインウィンドウ
  3. Designer で Tools > Script Console に移動します。Multiline Buffer にテストクエリを入力し、Execute をクリックします。Adventure_Works の部分は、SQL Analysis Services 接続で利用可能な任意のテーブルに置き換えてください。
    print system.db.runQuery(
        "SELECT Fiscal_Year, Sales_Amount FROM Adventure_Works LIMIT 10",
        "SQL Analysis Services")
    Script Console でのテストクエリの実行(画面は Salesforce の例)
  4. クエリが成功すると、Interactive Interpreter パネルに PyDataset rows:10 cols:2 と出力されます。これで、Ignition が CData JDBC Driver を介して SQL Analysis Services からリアルタイムデータを取得できたことを確認できます。

注意: スクリプト内の接続名は、ステップ 3 で設定した接続名と一致させる必要があります。

ステップ 5:結果の検証

  1. 取得した行を出力し、SQL Analysis Services 上の同じレコードと値を照合します。
    ds = system.db.runQuery("SELECT Fiscal_Year, Sales_Amount FROM Adventure_Works LIMIT 10", "SQL Analysis Services")
    for row in ds:
        print row["Fiscal_Year"], row["Sales_Amount"]
  2. 必要に応じて、別のテーブルへのクエリやフィルタ付きのクエリも実行し、スキーマの検出とフィルタリングが正しく機能することを確認します。
  3. 必要に応じて Gateway サービスを再起動し、接続のステータスが VALID に戻ることを確認します。

トラブルシューティング

症状 考えられる原因と対処法
ドライバーのステータスが ERROR になるクラス名が間違っているか、Manage JAR files から JAR ファイルがアップロードされていません。
接続のステータスが FAULTED になる認証情報が間違っている、外部への Web 通信(HTTPS)がブロックされている、または CData のライセンスが見つからないことが考えられます。ステータスをクリックしてエラー内容を確認してください。
「Could not find a valid license」エラーが表示されるGateway は Windows サービスとして実行されているため、ユーザープロファイルに保存されたライセンスを読み取れません。管理者権限のコマンドプロンプトでドライバーの lib フォルダに移動して java -jar cdata.jdbc.ssas.jar --license を実行し、生成された .lic ファイルを C:\Windows\system32\config\systemprofile\.CData\ にコピーしてから、Gateway サービスを再起動してください。
データベース接続が見つからないスクリプト内の接続名が、Gateway の接続名と完全には一致していません。

Ignition 以外の環境でのドライバーのテスト

Gateway とは切り離してドライバー単体の動作を確認したい場合は、次のスタンドアロンの Java サンプルを実行してみてください。cdata.jdbc.ssas.jar と cdata.jdbc.ssas.lic は同じディレクトリに配置し、クラスパスに含めておく必要があります。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class CDataExample {
    public static void main(String[] args) throws Exception {
        Class.forName("cdata.jdbc.ssas.SSASDriver");
        String connectionString = "jdbc:ssas:User=myuseraccount;Password=mypassword;URL=http://localhost/OLAP/msmdpump.dll;";
        try (Connection conn = DriverManager.getConnection(connectionString)) {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT Fiscal_Year, Sales_Amount FROM Adventure_Works LIMIT 10");
            while (rs.next()) {
                System.out.println(rs.getString("Fiscal_Year") + ", " + rs.getString("Sales_Amount"));
            }
        }
    }
}

CData で Ignition にリアルタイムかつガバナンスの効いた SQL Analysis Services 連携を

CData JDBC Driver for SQL Analysis Services を登録すれば、ETL 基盤や手作業でのエクスポート、独自の連携コードを用意することなく、Ignition からリアルタイムの SQL Analysis Services データをクエリできます。同じ接続をタグや SQL Bridge、Perspective / Vision の画面でも再利用できます。

無料トライアルで、CData を使って Ignition から数百もの外部システムへリアルタイムかつセキュアにアクセスできることを、ぜひお確かめください。

はじめる準備はできましたか?

SQL Analysis Services Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

SQL Server Analysis Services Icon SQL Analysis Services JDBC Driver

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