CData JDBC Driver for Stripe で Ignition SCADA と連携

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

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

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

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

前提条件

  • Windows 版 Ignition(Windows 10/11 または Windows Server)と、Windows サービスをインストールするための管理者権限
  • CData JDBC Driver for Stripe
  • 有効な認証情報を持ち、API アクセスが有効化された Stripe アカウント
  • 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: Stripe
    • Classname: cdata.jdbc.stripe.StripeDriver
    • Driver Type: Generic
    • Default Validation Query: SELECT Email FROM Customers LIMIT 1
    JDBC ドライバーの作成(画面は Salesforce の例)
  4. Create JDBC Driver をクリックします。現行の Ignition 8.3 では作成ダイアログに JAR(Java アーカイブ)ファイルのアップロード欄がないため、JAR ファイルは次の手順で追加します。
  5. 作成したドライバーの行の右端にあるメニューを開いて Manage JAR files を選択し、ドライバーのインストールディレクトリ内の lib フォルダにある cdata.jdbc.stripe.jar をアップロードして保存します。
  6. ドライバー一覧で、ドライバーのステータスが INSTALLED になっていることを確認します。 ステータスが INSTALLED のドライバー(画面は Salesforce の例)

ステップ 3:Stripe への接続の作成

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

Stripe の接続プロパティ

Stripeへの接続

それでは、Stripe への接続について説明していきましょう。Stripe では、本番API キーまたはOAuth のいずれかによる認証をサポートしています。

本番API キー

本番API キーで接続するには、以下の2つの設定パラメータを設定する必要があります。

  • AuthScheme = APIKey
  • LiveAPIKey = 本番API キーの値

本番API キーの値を取得するには、以下の手順で確認できます:

  1. Stripe ダッシュボードにログインします
  2. 開発者 → API キー → シークレットキー → 本番環境のキーを表示 に移動します

Stripe では、テストモードで作成されたシークレットキーを使用して、'StripeV2' データモデルのエンティティにはアクセスできませんのでご注意ください。ライブモードまたはサンドボックスモードで作成されたシークレットキーをご利用ください。 さらに、制限付きキーを使用して'StripeV2' データモデルのエンティティにアクセスすることも許可されていません。

OAuth については、ヘルプドキュメントの「接続の確立」をご確認ください。

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

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

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

  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 をクリックします。Customers の部分は、Stripe 接続で利用可能な任意のテーブルに置き換えてください。
    print system.db.runQuery(
        "SELECT Email, Discount FROM Customers LIMIT 10",
        "Stripe")
    Script Console でのテストクエリの実行(画面は Salesforce の例)
  4. クエリが成功すると、Interactive Interpreter パネルに PyDataset rows:10 cols:2 と出力されます。これで、Ignition が CData JDBC Driver を介して Stripe からリアルタイムデータを取得できたことを確認できます。

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

ステップ 5:結果の検証

  1. 取得した行を出力し、Stripe 上の同じレコードと値を照合します。
    ds = system.db.runQuery("SELECT Email, Discount FROM Customers LIMIT 10", "Stripe")
    for row in ds:
        print row["Email"], row["Discount"]
  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.stripe.jar --license を実行し、生成された .lic ファイルを C:\Windows\system32\config\systemprofile\.CData\ にコピーしてから、Gateway サービスを再起動してください。
データベース接続が見つからないスクリプト内の接続名が、Gateway の接続名と完全には一致していません。

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

Gateway とは切り離してドライバー単体の動作を確認したい場合は、次のスタンドアロンの Java サンプルを実行してみてください。cdata.jdbc.stripe.jar と cdata.jdbc.stripe.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.stripe.StripeDriver");
        String connectionString = "jdbc:stripe:OAuthClientId=MyOAuthClientId;OAuthClientSecret=MyOAuthClientSecret;CallbackURL=http://localhost:33333;";
        try (Connection conn = DriverManager.getConnection(connectionString)) {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT Email, Discount FROM Customers LIMIT 10");
            while (rs.next()) {
                System.out.println(rs.getString("Email") + ", " + rs.getString("Discount"));
            }
        }
    }
}

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

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

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

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

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

 ダウンロード

詳細:

Stripe Icon Stripe JDBC Driver

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