今回のブログでは、XplentyのRest APIコンポーネントを使用し、ZendeskのSupport APIにアクセスし、チケットデータをIncrementalでロードする手順について解説します。
#Zendesk側での設定
管理メニューから「API」を選択する
#Xplenty側の設定
##Step1: Rest API Componentの設定
Rest API コンポーネントでBasic認証を選択し、ユーザー名とパスワードを入力する
今回は、Support APIのIncremental Exportを使用するので、ドキュメントのルールに従い、URLを入力。
URL: https://サブドメイン名.zendesk.com/api/v2/incremental/tickets.json?start_time=1601768082&include=metric_sets
start_time: UnixTimeの数値を指定
Data Previewで結果が正しく取得できるのを確認したら、必要な列を選択し、Saveボタンをクリック。
##Step2: Selectコンポーネントで入れ子になっているJSON部分の値を取得する式をセット
##Step3: ロード先のDBもしくはDWHを設定(今回はRedshiftへロード)
Redshiftへの接続を設定し、テーブル名の入力および差分更新の設定(Merge with existing data using delete and insert)を選択する。
##Step4: 自動で差分更新を行うための変数設定
最初の設定では、URLのパラメータ「start_time」を固定値で実装しましたが、今後自動的に前回取り込み分からの差分を取得できるよう変数を利用したリクエストURLが生成できるよう設定します。
###1. 差分更新のため、前回実行時間を取得する変数をセットします。
- 変数名:start_date
- 式:ToUnixTime(CASE WHEN $_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP == '' THEN ToDate('2000-01-01T00:00:00.000Z') ELSE ToDate($_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP) END)
式で使用しているシステム変数「$_PACKAGE_LAST_SUCCESSFUL_JOB_SUBMISSION_TIMESTAMP」には、自動的に前回ジョブ実行日時がセットされる。
###2. URLのstart_timeの値に変数をセットします。(太字部分は変数)
URL: https://サブドメイン名.zendesk.com/api/v2/incremental/tickets.json?start_time=**$start_date**&include=metric_sets
これで簡単に差分だけを更新するDataflowパッケージの完成です。
もし、自社でお使いのSaaSサービスをクラウドに接続して取得したい場合は、XplentyのHPからオンラインデモをリクエストし、相談してみてはいかがでしょうか?