Anypoint Studio を使用した Snowflake Connector 1.2 の設定 - Mule 4

Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。

Studio でコネクタを追加および設定する手順は、次のとおりです。

「アプリケーションログの表示」​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。

Studio で初めてコネクタを設定する場合は、​「Anypoint Studio を使用したコネクタの設定」​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​「Snowflake Connector リファレンス」​を参照してください。

Mule プロジェクトを作成する

Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。

  1. Studio で、​[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. Mule プロジェクトの名前を入力して、​[Finish (完了)]​ をクリックします。

コネクタを Mule プロジェクトに追加する

Snowflake Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​pom.xml​ ファイルに必須の連動関係を追加します。

  1. [Mule Palette (Mule パレット)]​ で、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  2. [Add Dependencies to Project (連動関係をプロジェクトに追加)]​ で、検索項目に「​snowflake​」と入力します。

  3. [Available modules (使用可能なモジュール)]​ で ​[Snowflake Connector]​ をクリックします。

  4. [Add (追加)]​ をクリックします。

  5. [Finish (完了)]​ をクリックします。

Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。

ソースの設定

ソースは、指定された条件が満たされたときにフローを開始します。 次のソースのいずれかを Snowflake Connector で使用するように設定できます。

  • Snowflake > On Table Row
    一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。

  • HTTP Listener (HTTP リスナー)
    設定されたホストとポートで要求を受信するたびにフローを開始する

  • スケジューラー
    時間ベースの条件が満たされたときにフローを開始する

たとえば、​[On Table Row (テーブルの行)]​ ソースを設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ で、​[Snowflake] > [On Table Row]​ を選択します。

  2. [On Table Row (テーブルの行)]​ を Studio キャンバスにドラッグします。

  3. [On Table Row]​ 設定画面で、必要に応じて ​[Display Name (表示名)]​ の値を変更します。

  4. [Connector configuration (コネクタ設定)]​ の横にある ​+​ をクリックして、アプリケーション内の ​On Table Row​ ソースのすべてのインスタンスで使用できるグローバル要素を設定します。

  5. [Snowflake Config (Snowflake 設定)]​ ウィンドウの ​[Required Libraries (必須のライブラリ)]​ で、​[Configure (設定)] > [Add recommended libraries (推奨されるライブラリを追加)]​ または ​[Configure (設定)] > [Add Maven dependency (Maven 連動関係を追加)]​ を選択し、アーティファクト ID ​snowflake-jdbc​ を追加することで、必須の Snowflake JDBC ドライバーを追加します。

  6. [Connection (接続)]​ セクションで、コネクタのデータベース接続情報を指定します。

  7. [Advanced (詳細)]​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。

  8. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定された Snowflake データベースに接続できることを確認します。

  9. [OK]​ をクリックして、ウィンドウを閉じます。

  10. [On Table Row]​ 設定画面の ​[Table (テーブル)]​ で、選択元のテーブルの名前を選択します。

  11. [On Table Row]​ 設定画面の ​[Watermark Column (ウォーターマーク列)]​ で、ウォーターマークに使用する列の名前を選択します。この列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、ウォーターマークより日付が後の行のみが処理されます。

  12. [On Table Row]​ 設定画面の ​[Id Column (ID 列)]​ で、行 ID とみなす列の名前を選択します。このパラメーターを使用することで、同じ行が同時ポーリングによって 2 回処理されないようになります。

たとえば、HTTP Listener ソースを設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ で、​[HTTP] > [Listener]​ を選択します。

  2. [Listener]​ を Studio キャンバスにドラッグします。

  3. [Listener (リスナー)]​ 設定画面で、必要に応じて ​[Display Name (表示名)]​ の値を変更します。

  4. [Path (パス)]​ 項目の値を指定します。

  5. [Connector configuration (コネクタ設定)]​ の横にある ​+​ をクリックして、アプリケーション内の HTTP Listener ソースのすべてのインスタンスで使用できるグローバル要素を設定します。

  6. [General (一般)]​ タブで、コネクタの接続情報を指定します。

  7. [TLS]​ タブで、必要に応じてコネクタの TLS 情報を指定します。

  8. [Advanced (詳細)]​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。

  9. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。

  10. [OK]​ をクリックします。

フローにコネクタの操作を追加する

フローにコネクタの操作を追加するときは、そのコネクタで実行するアクションを指定しています。

Snowflake Connector の操作を追加する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ で ​[Snowflake]​ を選択し、目的の操作を選択します。

  2. その操作を Studio キャンバスの入力元の右にドラッグします。

コネクタのグローバル要素を設定する

コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定します。グローバル要素を設定するには、コネクタが対象の Snowflake システムにアクセスするために必要な認証ログイン情報を指定する必要があります。Snowflake Connector では、Snowflake に接続するための Snowflake 接続種別がサポートされています。

Snowflake Connector のグローバル要素を設定する手順は、次のとおりです。

  1. Studio キャンバスで操作を選択します。

  2. 操作の設定画面で、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックし、グローバル要素設定項目にアクセスします。

  3. [General (一般)]​ タブの ​[Required Libraries (必須のライブラリ)]​ で、​[Configure (設定)]​ をクリックし、次のオプションから選択して、必要な JDBC ドライバーをインストールします。

    • Add recommended libraries (推奨されるライブラリを追加)

    • Use local file (ローカルファイルを使用)

    • Add Maven dependency (Maven 連動関係を追加)

  4. [General (一般)]​ タブで、次の必須情報を入力して認証を設定します。

    • Account name (アカウント名)
      Snowflake アカウントの登録時に指定されたアカウント名。

    • Warehouse (ウェアハウス)
      使用する仮想 Snowflake ウェアハウスの名前。指定されたアカウントに権限のある既存のウェアハウスを指定する必要があります。

    • データベース
      接続する Snowflake データベース。指定されたアカウントに権限のある既存のデータベースを指定する必要があります。

    • Schema (スキーマ)
      使用する Snowflake データベーススキーマ。指定されたアカウントに権限のある既存のスキーマを指定する必要があります。

      ANT スタイルのプロパティプレースホルダーを含む設定ファイルを参照するか (推奨)、グローバル設定プロパティに認証ログイン情報を入力します。プロパティプレースホルダーを使用する利点とその設定方法については、​「Anypoint Connector 設定」​を参照してください。

  5. [Advanced (詳細)]​ タブで、必要に応じて再接続戦略を含む再接続情報を指定します。

  6. [Test Connection (接続をテスト)]​ をクリックして、Mule が指定されたサーバーに接続できることを確認します。

  7. [OK]​ をクリックします。

その他のコネクタ項目の設定

Snowflake Connector のグローバル要素を設定したら、コネクタの他の必須項目を設定します。必須項目は、使用するコネクタ操作によって異なります。

アプリケーションログの表示

問題があるかどうかを確認するには、アプリケーションログを表示します。

  • アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。

  • コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力は OS コンソールに表示されます。

アプリケーションのログファイル (​log4j2.xml​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​MULE_HOME/logs/<app-name>.log​ でアプリケーションログを表示することもできます。ログパスは、アプリケーションログファイル ​log4j2.xml​ で設定できます。

暗号化キーペア認証用に Bouncy Castle を設定する

暗号化された非公開鍵で​「キーペア接続」​を使用する場合は、Bouncy Castle セキュリティプロバイダーを設定し、BCPKIX (Bouncy Castle Public Key Infrastructure (X.509)) 号ライブラリを設定して、CloudHub または Runtime Fabric のセキュリティプロバイダーを有効にする必要があります。

Bouncy Castle セキュリティプロバイダーを設定する

Bouncy Castle セキュリティプロバイダーを設定する手順は、次のとおりです。

  1. AnypointStudio.ini​ ファイルを開いて、Java VM が保存されている場所を特定します。詳細については、 「How to find the Anypoint Studio .ini file (Anypoint Studio .ini ファイルの見つけ方)」Leaving the Site​を参照してください。​-vm​ コマンドを使用して、`JAVA_VM_FOLDER などのパスをセットアップします。

  2. https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18onLeaving the Site and https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk18onLeaving the Site から ​bcprov-jdk18on-<VERSION>.jar​ ファイルと ​bcpkix-jdk18on-<VERSION>.jar​ ファイルをダウンロードします。

  3. ダウンロードしたファイルを ​JAVA_VM_FOLDER/jre/lib/ext​ フォルダーに保存します。

  4. JAVA_VM_FOLDER/jre/lib/security/java.security​ ファイルを開きます。

  5. 対応する番号 ​N​ を次の行に挿入して、Bouncy Castle セキュリティプロバイダーをセキュリティプロバイダーのリストの最後に追加します。

    security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider

BCPKIX 暗号化ライブラリを設定する

BCPKIX 暗号化ライブラリを設定する手順は、次のとおりです。

  1. Anypoint Studio で ​[Snowflake Config (Snowflake の設定)]​ ウィンドウを開きます。

  2. [Connection (接続)]​ で ​[Key-pair Connection (キーペア接続)]​ を選択します。

  3. [Required Libraries (必須のライブラリ)]​ セクションで、次のいずれかを選択して、必要な Bouncy Castle BCPKIX ​.jar​ ファイルを追加します。

    • [Configure (設定)] > [Add recommended libraries (推奨されるライブラリを追加)]

    • [Configure (設定)] > [Add Maven dependency (Maven 連動関係を追加)]

  1. アーティファクト ID の ​snowflake-jdbc​ を追加します。

  2. [OK]​ をクリックします。

FIPS 環境で Mule アプリケーションを実行する場合は、​bcpkix-fips​ ライブラリを追加します。

CloudHub と Runtime Fabric の Bouncy Castle セキュリティプロバイダーを有効にする

Cloudhub および Runtime Fabric の ​[Key-pair Connection (キーペア接続)]​ で暗号化された非公開鍵を使用するには、​mule.security.provider​ プロパティを ​BC​ に設定します。例:

mule.security.provider=BC

FIPS 環境で Mule アプリケーションを実行する場合は、​mule.security.provider​ プロパティを ​BCFIPS​ に設定してください。

設定の詳細については、ナレッジベース記事の https://help.mulesoft.com/s/article/Enabling-the-Bouncy-Castle-security-providerLeaving the Site [「Bouncy Castle セキュリティプロバイダーの設定」] を参照してください。