2025年1月末、CData Connect AI に新しい機能 スケジュールクエリ が追加されました。
スケジュールクエリは、Connect AI がサポートする170種類以上のSaaS やDB から任意のデータを取得し、DB やデータウェアハウスに書き込みます。この処理は指定したスケジュールに従って定期的に実行することができます。例えば一日一回、Salesforce の取引先データをGoogle BigQuery に書き込むといった同期処理をブラウザだけで、ノーコードで構築することができます。
2025年1月31日現在でサポートしている書き込み先は以下の通りです。
- Google BigQuery
- Databricks
- PostgreSQL
- Redshift
- Smartsheet
- Snowflake
製品ドキュメントはこちらをご覧ください。
それではConnect AI でのスケジュールクエリの作成方法を紹介します。今回は例としてSalesforce の取引先(Account オブジェクト)の、取引先名と取引先番号をGoogle BigQuery に書き込む処理を構築します。また、この処理は毎日10:00に実行されるようスケジュールします。
1.1 コネクションの作成
はじめにデータ取得元と書き込み先のコネクションを作成します。コネクションの作成方法を既に知っている方はこの章は読み飛ばしてください。
新しいコネクションを追加するにはメニューの[Connections] を開いて[+Add Connection] をクリックします。
Salesforce 接続設定
コネクションのリストからSalesforce を選択するとコネクションの設定画面が開きます。この画面では主にSalesforce に接続する際の認証方法を設定します。Salesforce コネクションはブラウザでログインを行うOAuth 認証や、ユーザ名やパスワードによるBasic 認証などをサポートしています。
今回はBasic 認証を使います。[Auth Scheme] (認証方法) にBasic を設定すると[User], [Password], [Security Token] 欄が表示されますので、それぞれ認証に必要な情報を設定します。Salesforce のセキュリティトークンの取得方法はこちらをご覧ください。
設定が完了したら右上の[Save & Test] ボタンをクリックします。設定した認証情報でテスト接続が行われ、成功すると画面に「Connection successfully saved」と表示され設定が保存されます。
Google BigQuery 接続設定
同じくConnections 画面で[+Add Connection] をクリックし、リストからGoogle BigQuery を選択するとGoogle BigQuery コネクションの設定画面が開きます。今回、Google BigQuery への接続には OAuth 接続を利用します。[Auth Scheme] がOAuth になっていることを確認し、[Sign in with Google] ボタンをクリックします。Google Cloud のログイン画面に遷移しますので、お手持ちのGoogle Cloud アカウントでログインします。ログインに成功すると画面に「Your authentication was successful」と表示されます。認証後は[Project Id] 欄でGoogle BigQuery のプロジェクトを選択することができますので、データ書き込み先のテーブルを作成するプロジェクトを選択(もし選択できない場合は入力)します。
設定が完了したら右上の[Save & Test] ボタンをクリックします。
1.2 クエリの作成
続いてSalesforce のデータを取得するクエリを作成します。
データ取得クエリを作成するにはメニューの[Data Explorer] を開きます。Data Explorer はクエリの作成方法として以下の二つを提供します。
- Query Builder : SQL を記述せず、画面上でテーブルやカラムを選択してデータ取得クエリを作成する。SQL 未経験者向け。
- SQL Editor : SQL を直接記述してデータ取得クエリを作成する。SQL 経験者向け。
今回はノーコードでクエリを作成する[Query Builder] を使います。
テーブルの選択
Query Builder を開いた後、データ取得元のテーブルを追加するために[+Add Table] をクリックします。
テーブルを選択するダイアログが開きますので、データ取得元のコネクション、スキーマ、テーブルをそれぞれ選択します。今回はSalesforce の取引先データを取得するため、前章で作成したSalesforce コネクションを選択します。コネクションを選択するとスキーマ (Schema) やテーブル (Table) が選択できるようになります。Salesforce ではスキーマが一つしかないため自動的に選択されています。テーブル一覧からは取引先オブジェクトにあたるAccount テーブルを選択します。
テーブルを選択したら[Confirm] をクリックしてダイアログを閉じます。
カラムの選択
デフォルトでは指定したテーブルのすべてのカラムが取得対象となります。今回のシナリオでは取引先オブジェクトの取引先名と取引先番号のみを取得するため、クエリで取得する項目を選択します。項目を選択するにはQuery Builder の[+Add Dimentions] をクリックします。
カラムを選択するダイアログが開きますので、[Column Name] に取引先名「Name」と取引先番号「AccountNumber」を選択します。Account テーブルのカラム一覧はこちらの製品ドキュメントをご覧ください。
カラムを選択したら[Confirm] をクリックしてダイアログを閉じます。これでクエリの作成は完了です。
データ取得クエリの確認
Query Builder に戻って[Execute] をクリックするとQuery Builder が開きクエリが実行されます。実行が完了すると取得したデータが表示されますので、期待した結果になっているか確認してください。もし違っていたらQuery Builder やSQL Editor でクエリを編集してください。
1.3 スケジュールクエリの作成
続いて作成したクエリからスケジュールクエリを作成します。クエリ実行画面で表示されたQuery Builder の右上にある[Save] メニューを開き、[Save as Scheduled Query] をクリックします。
ジョブ設定画面に遷移します。はじめに[Name] に任意のジョブ名を入力し、スケジュール、書き込み方式を設定します。書き込み方式は書き込み先テーブルの既存データの扱い方について、上書き (Overwrite table)、または追記 (Append table) から選択します。
スケジュールは以下のように時間 (Hours)、日付 (Days)、週 (Weeks)、月 (Months) 単位で実行時刻を設定することができます。今回は開始日を2025年2月1日 10時 (Feb 1, 2025 10:00:00) とし、1日ごとに実行する設定としました。ここで設定する時刻はUTC であることにご注意ください。
続いて書き込み先の設定を行います。以下のように書き込み先のコネクションとスキーマを選択し、テーブル名を入力します。今回は1.1節で作成したGoogle BigQury コネクションを選択し、スキーマとして「demo」スキーマを選択しました。書き込み先のテーブルは既存または新規のテーブルを指定することができます。今回はsalesforce_accounts というテーブルを指定しました。
設定が完了したら右上の[Save Changes] ボタンをクリックします。スケジュールクエリの作成が成功すると画面右の[Status] がQueued になり、[Next Run] にスケジュールされた次の実行予定時刻が表示されます。
これでスケジュールクエリの作成は完了です。
2. スケジュールクエリの実行
作成したスケジュールクエリによってデータが書き込まれるかどうかを確認するためにクエリを任意実行してみます。メニューの[Job] からジョブのリストを開きます。
実行するジョブをチェックし、[Run] をクリックすると確認ダイアログが表示され、[Confirm] をクリックするとジョブが実行されます。
実行中は以下のように[Status] がRunning となります。
実行が完了すると[Status] がSuccess となります。
これでSalesforce からGoogle BigQuery へのデータの書き込みは完了です。
Google BigQuery を開くとsalesforce_accounts というテーブルが作成され、取引先データが書き込まれていることが確認できました。
3. おわりに
本記事ではCData Connect AI 上でクエリを自動的に実行してDB やデータウェアハウス にデータを書き込むScheduled Query の使い方を説明しました。Connect AI は30日間の無償トライアルが可能です。 さまざまなSaaS とノーコードでデータ連携を行いたい!という方はぜひお試しください