CData API Server を使って Power Automate で Presto タスクを自動化

Stanley Liu
Stanley Liu
Associate Technical Product Marketer
CData API Server を使ってPresto のデータのOData エンドポイントを作成し、Power Automate で自動メール送信やCRM・ERP 同期などの複雑なワークフローを自動化できます。

Microsoft Power Automate は、クラウドベースのローコード/ノーコードプラットフォームで、さまざまなアプリケーションやサービス間で反復タスクの自動化やビジネスプロセスの効率化を簡単に実現できます。

CData API Server は、オンプレミスやクラウドを問わず、複数のソースやアプリケーションからデータへのアクセスを可能にし、Power Automate の機能を拡張します。API Server の Presto コネクタ(または 250 種類以上の他のコネクタ)を使用すると、OData や Swagger などの業界標準のデータアクセスプロトコルを使用して、Power Automate でアクションや複雑なワークフローをネイティブに作成し、トリガーできます。

この記事では、Power Automate と CData API Server をセットアップし、Presto テーブルのリードが特定の条件に一致したときにメールや通知を送信するシンプルなトリガーを作成します。

それでは始めましょう!

前提条件

  1. CData API Server: こちらから無料トライアルをダウンロードできます。
  2. Microsoft Power Automate: こちらから無料トライアルにサインアップできます。
  3. データにアクセスできるアクティブな Presto アカウント。

概要

以下の手順で進めていきます。

  1. CData API Server をインストールし、Presto への接続を設定して、API Server 内で Presto のデータ の OData API エンドポイントを作成します。
  2. これらのエンドポイントを Power Automate で使用し、Presto テーブルから特定の条件が満たされたときにトリガーに基づいて自動的にメールを送信するフローを構築します。

Presto データ連携について

CData を使用すれば、Trino および Presto SQL エンジンのライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:

  • Trino v345 以降(旧 PrestoSQL)および Presto v0.242 以降(旧 PrestoDB)のデータにアクセスできます。
  • Trino または Presto インスタンスの基盤となるすべてのデータに対して読み取り・書き込みアクセスができます。
  • 最大スループットのための最適化されたクエリ生成。

Presto と Trino により、ユーザーは単一のエンドポイントを通じてさまざまな基盤データソースにアクセスできます。CData の接続と組み合わせることで、ユーザーはインスタンスへの純粋な SQL-92 アクセスを取得し、ビジネスデータをデータウェアハウスに統合したり、Power BI や Tableau などのお気に入りのツールからライブデータに直接簡単にアクセスしたりできます。

多くの場合、CData のライブ接続は、ツールで利用可能なネイティブのインポート機能を上回ります。あるお客様は、レポートに必要なデータセットのサイズが大きいため、Power BI を効果的に使用できませんでした。同社が CData Power BI Connector for Presto を導入したところ、DirectQuery 接続モードを使用してリアルタイムでレポートを生成できるようになりました。


はじめに


ステップ 1:API Server のインストールと Presto への接続設定

1.1 API Server のインストール

まだインストールしていない場合は、CData API Server ページからお使いの OS 用のインストーラーをダウンロードしてください。インストールウィザードに従ってセットアップを完了します。

インストールが完了したら、以下の方法でサーバーを起動できます。

  • Windows: CData API Server はデフォルトでサービスとして実行されます。サービスが実行されていることを確認し、ブラウザで http://localhost:8080/ を開いて API Server 管理コンソールにアクセスします。
  • Linux/Mac: サーバーを手動で実行するか、サービスとして実行できます。手動で起動するには、インストールディレクトリに移動して java -jar apiserver.jar を実行します。
  • また、root 権限で service.sh を実行して、API Server を Linux システムサービスとしてセットアップすることもできます。

1.2 CORS の有効化

Microsoft Power Automate と CData API Server が異なるドメインでホストされている場合、シームレスなクロスドメイン通信を可能にするために CORS(Cross-Origin Resource Sharing)を有効にする必要があります。API Server で CORS を有効にするには:

  1. 「Settings」に移動し、 アイコンをクリックして CORS 設定を編集します。
  2. Cross-Origin Resource Sharing (CORS) を有効にします。
  3. Allow all domains without '*' を有効にして、すべてのオリジンを許可します。
  4. Access-Control-Allow-Origin に Presto のオリジンドメインを入力するか、* を使用してすべてのドメインを許可します(パブリック API に適しています)。
  5. Access-Control-Allow-Credentials を有効にして、Cookie と認証ヘッダーを許可します。
  6. Access-Control-Allow-MethodsGET, PUT, POST, OPTIONS を入力します。
  7. Access-Control-Allow-HeadersAuthorization, Content-Type を入力します。
  8. Access-Control-Max-Age(デフォルト:3600 秒)を設定して、プリフライトリクエストをキャッシュします。
  9. 「Save」をクリックします。

1.3 API Server で Presto 接続を追加

  1. 「Settings」に移動し、右上の Add Connection をクリックします。
  2. Presto を選択します。表示されない場合は、Only Installed をオフにしてすべてのコネクタを表示します。
  3. Install Connector をクリックして自動インストールします。手動セットアップの場合は、Manual Install を選択してダウンロードした ZIP ファイルをアップロードします。
  4. インストールが完了したら、Presto を再度クリックして接続設定を開き、以下の詳細を使用して設定します。
  5. Presto への接続には、まずはServer およびPort を接続プロパティとして設定します。それ以外の追加項目は接続方式によって異なります。

    TLS/SSL を有効化するには、UseSSL をTRUE に設定します。

    LDAP で認証

    LDAP で認証するには、次の接続プロパティを設定します:

    • AuthScheme: LDAP に設定。
    • User: LDAP で接続するユーザー名。
    • Password: LDAP で接続するユーザーのパスワード。

    Kerberos 認証

    KERBEROS 認証を使う場合には、以下を設定します:

    • AuthScheme: KERBEROS に設定。
    • KerberosKDC: 接続するユーザーのKerberos Key Distribution Center (KDC) サービス。
    • KerberosRealm: 接続するユーザーのKerberos Realm 。
    • KerberosSPN: Kerberos Domain Controller のService Principal Name。
    • KerberosKeytabFile: Kerberos principals とencrypted keys を含むKeytab file。
    • User: Kerberos のユーザー。
    • Password: Kerberos で認証するユーザーのパスワード。
  6. 「Save & Test」をクリックして接続設定を検証し完了します。

1.4 ユーザーの追加と設定

作成した OData エンドポイントへの安全なアクセスを許可するために、CData API Server でユーザーを作成・設定します。各ユーザーには認証情報とロールベースのアクセス制御があり、適切なロールを持つ承認されたユーザーのみが接続されたデータをクエリできるようになります。

  1. ナビゲーションペインから「Users」に移動し、右上の Add User をクリックします。
  2. Username を入力し、ユーザーの安全な Password を設定します。
  3. Role を選択します:
    • Admin: 設定や接続を含むすべての機能へのフルアクセス。
    • Query: API エンドポイント経由のデータアクセスに限定(Power Automate での使用に適しています)。
  4. (オプション)レート制限を設定:
    • Requests Per Hour: 1 時間あたりの許可される API コール数(デフォルト:1000)。
    • Max Concurrent Requests: 許可される並列 API リクエスト数(デフォルト:10)。
  5. ユーザーの Privileges を定義:
    • GET: データの取得を許可。
    • POST: 新しいレコードの作成を許可。
    • PUT, MERGE, PATCH: 既存レコードの更新を許可。
    • DELETE: レコードの削除を許可。
  6. 「Add User」をクリックしてユーザーアカウントを保存し、有効化します。

ユーザーを追加すると、Authtoken が自動的に生成されます。このトークンは、パスワードの代わりに安全な認証方法として API リクエストで使用できます。

また、Authtoken を更新したり、無効にしたり、ユーザー設定で Token Expiration オプションを有効にして有効期限ルール(例:有効期限までの日数)を設定することもできます。


1.5 エンドポイント用のテーブルを追加

Presto のデータを OData 経由で Power Automate で利用できるようにするには、API Server を通じて目的のテーブルを公開する必要があります。手順は以下のとおりです。

  1. CData API Server で、左側のナビゲーションから「API」に移動し、右上の Add Table をクリックします。
  2. 先ほど設定した Presto 接続を選択し、「Next」をクリックします。
  3. Tables セクションを展開して、利用可能なエンティティとスキーマを参照します。個々のテーブルを選択するか、上部の TABLE NAME チェックボックスをクリックしてすべてを選択します。次に「Confirm」をクリックします。

1.6 Power Automate でエンドポイントにアクセス

API の設定が完了したので、Power Automate から OData エンドポイントに接続してタスクを自動化できます。以下は使用できる OData エンドポイントの URL 形式です。

エンドポイント   URL
エンティティ一覧 http://address:port/api.rsc/
テーブルメタデータ(例:albums) http://address:port/api.rsc/albums/$metadata?@json
テーブルデータ(例:albums) http://address:port/api.rsc/albums

これらの OData エンドポイントは、URL を使用して Power Automate で直接利用できるようになりました。Power Automate は OData をサポートしているため、ワークフローの自動化、アクションのトリガー、Presto からのライブデータを自動化プロセスに統合することが簡単にできます。

CData API Server は完全な OData フィルタリング機能をサポートしています。カスタムクエリやフィルターされたビジュアライゼーションには、$select$filter$orderby$top$skip などの標準 OData クエリパラメータをリクエストに追加できます。


ステップ 2:Power Automate でメールトリガーを自動化

CData API Server が起動し、Presto データから利用可能な OData エンドポイントができました。次に、条件に基づいてメールトリガーを自動化する Power Automate フローを構築しましょう。

この例では、PrestoOpportunity テーブルからリードと商談データを読み取るフローを構築します。このフローは ExpectedRevenue カラムで最も高い値を持つリードを特定し、そのリードの詳細を含むメールを自動的に送信します。

ここでは、Windows 11 上の Outlook アプリと Power Automate Desktop を使用します。Windows マシンに Outlook がインストールされていない場合は、Microsoft 365 公式サイトからダウンロードするか、Microsoft Store からインストールできます。


2.1 API OData エンドポイントのフィルタリング

CData API Server は OData URL フィルター (OData ABNF) を完全にサポートしているため、URL でテーブル (リソース) を直接フィルターして、フローに取り込む前に結果を制限・ソートできます。これにより、読み込み時間が短縮され、効率が向上します。サポートされているフィルターオプションの完全なリストは こちらで確認できます。

この例では、フィルターされた URL は次のようになります: http://localhost:8080/api.rsc/public_Opportunity?$top=1&$orderby=ExpectedRevenue desc

このようにエンドポイント URL を構築できます。各部分の意味は以下のとおりです:

URL パート 説明
http://localhost:8080 CData API Server がホストされているホスト名とポートを含むベース URL
/api.rsc/ CData が API リソースを公開するために使用するデフォルトのエンドポイントパスプレフィックス
public_Opportunity クエリするテーブル名(リソース)— この場合は public_Opportunity テーブル
? フィルタリングやソートなどに使用されるクエリ文字列パラメータの開始を示す
$top=1 フィルターされた結果セットから最初のレコードのみを返す
$orderby=ExpectedRevenue desc 結果を ExpectedRevenue カラムで降順にソート

2.2 Power Automate Desktop でフローを構築

  1. Power Automate Desktop を起動し、左上の New をクリックして新しいフローを追加します。
  2. フローに名前を付け(例:Email-Trigger)、「Create」をクリックします。
  3. フローデザイナーダッシュボードで、Actions ペインの下から Region を検索し、ダブルクリックして追加します。わかりやすい名前を付けて「Save」をクリックします。
  4. Invoke Web Service を検索し、ダブルクリックして追加して、以下を設定します:
    • URL: 先ほど作成したフィルター済み OData URL を入力します。
    • Method: GET
    • Accept: application/json
    • Content-Type: application/json
    • Save response: Get text into variable (for web pages)
    • 「Save」をクリックします。
  5. Convert JSON to Custom Object を検索し、ダブルクリックして追加します。
    • 青い {x} アイコンをクリックし、変数 %WebServiceResponse% を選択します。
    • 「Save」をクリックします。
  6. Outlook を検索し、Launch Outlook を選択します。ダブルクリックしてフローに追加し、「Save」をクリックします。
  7. Outlook を検索し、Send email message through Outlook を選択します。ダブルクリックして追加し、以下を設定します:
    • Outlook instance: %OutlookInstance%
    • Account: Outlook メールアドレスを入力します。
    • Send email message from: Account
    • To: 受信者のメールアドレスを入力します。
    • Subject: メールの件名を追加します(例:New Opportunity with Highest Expected Revenue
    • Body: 以下のシンプルな HTML コードを貼り付けます。ラベルとテーブル名は自分のものに置き換えてください:
              Top Lead Details:
              Account ID: %JsonAsCustomObject['value'][0]['AccountId']%
              Name: %JsonAsCustomObject['value'][0]['Name']%
              Expected Revenue: %JsonAsCustomObject['value'][0]['ExpectedRevenue']%
              Close Date: %JsonAsCustomObject['value'][0]['CloseDate']%
            
    • Body is HTML: このオプションをオンにします。
    • 「Save」をクリックします。
  8. Outlook を検索し、Close Outlook を選択します。ダブルクリックしてフローに追加し、「Save」をクリックします。
  9. End region を検索し、ダブルクリックしてフローに追加します。
  10. 最終的なフローは次のようになります:
  11. 上部の「Run」をクリックしてフローを開始します。プロセスは自動的に Outlook を開き、フローで指定された受信者にメールを送信します。メールは次のようになります:

2.3 フローのスケジュールと改善

これで、最も高い ExpectedRevenue を持つ新しいリードが見つかったときにメールを送信するフローができました。Power Automate Desktop には組み込みのスケジュール機能がないため、Windows タスク スケジューラまたは Power Automate(クラウド)を使用して、設定した間隔で継続的に実行する必要があります。

重複メールを避けるには、Power Automate の Write text to file アクションを使用して Id フィールドをファイル(例:lastLead.txt)に保存します。実行するたびに、Read text from file アクションを使用して現在の Id と比較します。一致した場合はメールをスキップし、新しいリードに対してのみアラートが送信されるようにします。

このフローは始まりにすぎません。CRM レコードの更新高価値リードの Excel へのログ記録リアルタイム Slack アラートの送信など、リード管理プロセスのさらに多くのステップを自動化するように拡張できます。


CData API Server を 30 日間無料でお試しください

ローコード/ノーコードプラットフォームで OData REST API を構築し、ライブデータとのシームレスな統合を実現しましょう。CData API Server を 30 日間無料でお試しいただき、Presto(または 250 種類以上の他のコネクタ)からのライブデータを使用して Power Automate でタスクを自動化する方法を体験してください。

こちらから無料トライアルを開始できます。

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

詳細はこちら、または無料トライアルにお申し込みください:

CData API Server お問い合わせ