JDBC
JDBCコネクターを使用すると、JDBCドライバーとWorkatoのオンプレミスエージェントを使用して、ANSI準拠の任意のデータベースに接続できます。 JDBCおよびSQLをサポートするシステムと連携するために使用できます。
サポートされるデータベース
JDBCコネクターは、ANSI SQL標準に準拠し、互換性のあるJDBCドライバーを提供する任意のデータベースをサポートします。 これには、SnowflakeやSAP HANAなどのデータベースが含まれます。 INSERTなどの一部のアクションを使用するには、データベースがバインド変数をサポートしている必要があります。
WorkatoでJDBCに接続する方法
WorkatoでJDBCソースに接続するには、オンプレミスエージェントを使用する必要があります。 エージェントにより、ローカルデータベースとWorkatoの間のセキュアな通信が可能になります。
JDBC準拠データベースに接続する方法については、オンプレミスエージェントプロファイルガイドを参照してください。
JDBCコネクションを作成するには、次の手順を実行します。
JDBCコネクションを識別する一意のコネクション名を指定します。
JDBCに接続
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
使用する予定のコネクションプロファイルを選択するには、オンプレミスグループドロップダウンメニューを使用します。
JDBCコネクションURLを入力します。
JDBCドライバークラス名を入力します。
ユーザー名フィールドにデータベースユーザー名を入力します。
データベースでユーザー名/パスワード認証が必要な場合は、パスワードを指定します。
データベースへのオープンコネクション数を制御するには、プーリング設定を構成します。
JDBCドライバーまたはデータベースで、テーブルとビューにアクセスするための特定のスキーマが必要な場合は、スキーマを入力します。
詳細設定フィールドを表示するには、JDBCコネクションの追加プロパティセクションを展開します。 このセクションを使用して、認証キーまたはその他のカスタムJDBCパラメーターを追加します。
接続をクリックします。
キーペア認証を使用したSnowflakeコネクション
この方法を使用すると、オンプレミスエージェントとキーペア認証を使用して、JDBCコネクター経由でSnowflakeに接続できます。
前提条件
キーペア認証を使用してSnowflake JDBCコネクションを作成する前に、次のタスクを完了する必要があります。
- オンプレミスエージェントがインストールされ、接続されていることを確認します。 詳細については、オンプレミスエージェントガイドを参照してください。
- Snowflakeユーザーに秘密鍵を登録します。 詳細については、Snowflakeの秘密鍵認証の構成セクションを参照してください。
Snowflakeキーペア認証でJDBCコネクターを構成するには、次の手順を実行します。
公式MavenリポジトリからJDBCドライバーバージョン3.22.0をダウンロードします。 これは、SnowflakeコネクションについてWorkatoで現在サポートされているバージョンです。
ドライバーファイルをオンプレミスエージェントのlib_ext/フォルダに移動します。
ターミナルを開き、作業ディレクトリをオンプレミスエージェントフォルダに設定します。
必要なJavaオプションを指定してエージェントを再起動するには、次のコマンドを実行します。
JAVA_OPTIONS="-Dnet.snowflake.jdbc.enableBouncyCastle=TRUE --add-opens=java.base/java.nio=ALL-UNNAMED" bin/run.shWorkatoに移動し、JDBC経由でSnowflakeに接続する予定のレシピを選択します。
新規コネクションページでJDBCを検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
JDBCに接続
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
使用する予定のコネクションプロファイルを選択するには、オンプレミスグループドロップダウンメニューを使用します。
JDBCコネクションURLフィールドに次の内容を入力します。
jdbc:snowflake://<your_domain>.snowflakecomputing.com/?warehouse=COMPUTE_WH&db=TESTING_DB&schema=PUBLIC&JDBC_QUERY_RESULT_FORMAT=JSON<your_domain>をSnowflakeアカウントドメインに置き換えます。 JDBC_QUERY_RESULT_FORMAT=JSONフラグが必要であることに注意してください。
COMPUTE_WH、TESTING_DB、PUBLICをウェアハウス、データベース、スキーマ名に置き換えます。
JDBCドライバークラス名フィールドにnet.snowflake.client.jdbc.SnowflakeDriverを入力します。
ユーザー名フィールドにSnowflakeユーザー名を入力します。
パスワードフィールドは空白のままにします。
JDBCコネクションの追加プロパティセクションを展開します。
private_key_base64コネクションプロパティを追加します。 この値は、PKCS#8秘密鍵ファイルのbase64エンコードされた内容です。
追加プロパティを追加
次のコマンドで生成できます。
cat rsa_key.p8 | base64秘密鍵が暗号化されている場合は、private_key_pwdプロパティを追加します。 それ以外の場合は、このプロパティを省略します。
接続をクリックします。
JDBCコネクターの操作
テーブルとビュー
JDBCコネクターは、コネクションの確立に使用する認証情報で利用可能なすべてのテーブルおよびビューで機能します。 これらは各トリガー/アクションのピックリストで利用できます。または、正確な名前を指定できます。
ピックリストからテーブル/ビューを選択
テキストフィールドに正確なテーブル/ビュー名を指定
テーブル/ビュー名の大文字と小文字の区別は、データベース実装によって異なります。
単一行とバッチ行
JDBCコネクターは、単一行またはバッチとしてデータベースの読み取りまたは書き込みを実行できます。 バッチトリガー/アクションを使用する場合は、操作するバッチサイズを指定する必要があります。 バッチサイズには1~100の任意の数値を指定でき、最大バッチサイズは100です。
バッチトリガー入力
入力フィールドの違いに加えて、この2種類の操作の出力にも違いがあります。 行を1行ずつ処理するトリガーには、その単一行からデータをマッピングできる出力データツリーがあります。
単一行出力
ただし、行をバッチで処理するトリガーは、行の配列として出力します。 行データピルは、出力がそのバッチ内の各行のデータを含むリストであることを示します。
バッチトリガー出力
そのため、バッチトリガー/アクションの出力は異なる方法で処理する必要があります。 トリガーの出力は、行データピルをソースリストにマッピングする必要があるバッチ操作を含むアクション(SalesforceのCreate objects in bulkアクションなど)で使用できます。 Workatoでリストを操作する方法を学習します。
バッチトリガー出力の使用
WHERE条件
この入力フィールドは、アクションを実行する行をフィルタリングして識別します。 WHERE条件は、複数のトリガーおよびアクションで次のように使用できます。
- トリガーで取得する行をフィルタリング
- Select rowsアクションで行をフィルタリング
- Delete rowsアクションで削除する行をフィルタリング
この句は、各リクエストでWHEREステートメントとして使用されます。 基本的なSQL構文に従う必要があります。
単純なステートメント
文字列値は単一引用符('')で囲みます。 使用する列は、テーブル/ビューに存在する必要があります。
単一列の値に基づいて行をフィルタリングする単純なWHERE条件は次のようになります。
currency = 'USD'Select rowsアクションで使用する場合、このWHERE条件は、currency列の値が'USD'であるすべての行を返します。 入力内のデータピルを単一引用符で囲むことを忘れないでください。

WHERE条件でのデータピルの使用
スペースを含む列名は、二重引用符("")または角括弧([])で囲みます。 たとえば、currency codeを識別子として使用するには、角括弧で囲みます。
[currency code] = 'USD'
囲まれた識別子を含むWHERE条件
複雑なステートメント
WHERE条件にはサブクエリを含めることもできます。 次の例では、compensationテーブルから非アクティブな従業員を選択します。
id in (select compensation_id from users where active = 0)Select rowsアクションで使用する場合、これにより、アクティブでなくなったユーザー(active = 0)に関連するcompensationテーブル内のすべての行が選択されます。
WHERE条件でのサブクエリの使用
Last updated: