[IDMC]IDMCのレプリケーション機能”CDIR”でMarketoのデータをリアルタイムで簡単レプリケーション(差分も)


## はじめに
Informatica Intelligent Data Management Cloud(IDMC/旧称IICS)でのちょっとしたTipsを纏めていきます。日々の活動の中で検証した結果記録であり、忘れやすい自分のためのメモですが、少しでも皆様のお役に立てればと思い公開していきます。記述方法など試行錯誤しており随時更新するかもしれません。

## アプリケーションデータをDWHへコピー・レプリケートする
SAPやSalesforceのデータを活用する為にDatalakeやDWHへコピーしたいという場合、Informaticaの機能で簡単に実装出来ます。今回はMarketoのデータを”CDIR - Cloud Data Ingestion and Replication(旧名 Mass Ingestion)"を利用して簡単に実装してみます。

## 事前準備
利用するアプリケーションへの接続(コネクタ)を事前に設定しておきます。今回はデータ取得元(ソース)となるMarketo V3コネクタを設定しておきました。
管理者->接続
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/c72e4e76-06d0-7163-3b80-060312d2d521.png)

またデータ投入先(ターゲット)のSnowflake Data Cloudコネクタも設定済みです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/0f0ad78b-f9b7-81b1-58c8-2031af04268b.png)


## Cloud Data Ingestion and Replication Applicationでタスクを設定する
では早速レプリケーションのタスクを設定しましょう。
今回はMarketoのスマートキャンペーンのデータをSnowflakeへレプリケーションします。
初期ロードで全件レプリケーションした後、更新データがあれば定期的に差分レプリケーションを実施する「初期＋増分」ロードの設定でタスクを作成します。

データ統合 に移動し、画面左に見える”取り込み”->”アプリケーション取り込みおよびレプリケーションタスク”をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/9ddd5629-03ea-b086-7b5c-ef9e21908600.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/d3be2ad6-a23f-2490-a57c-7c4e4eaba477.png)

ご覧の通り4ステップで設定完了です。順に設定していきます。
- ステップ1：”定義”
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/431ab449-dbb9-6932-a854-d6a5d704a0fe.png)
名前：タスクの名称 わかりやすい名称を設定します
プロジェクト：このタスクを保存するプロジェクトを選択
ランタイム環境：このタスクを実行するSecureAgentを選択
ロードタイプ：今回は「初期ロードと増分ロード」を選択

- ステップ2：”ソース” 
その1：上段部
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/14af8ecc-6b70-2731-2dc8-b756243d0881.png)
接続：事前に設定済みのMarketo V3コネクタ設定を選択
オブジェクトルール：抽出対象とするMarketo側のオブジェクトを絞り込む条件。デフォルトのまま ＊(すべて) を含む設定でOK
->この設定で一度「ルールの適用」をクリックし、対象のテーブルをリストします。
その2：下段部
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/25af4943-9191-c7ab-6d14-8e8415102325.png)
ソースオブジェクト：右側↓▼をクリックして展開した後、抽出対象となるオブジェクトを選択します。今回はSmartCampaignのみを選択し、他はチェックを外しておきます。
詳細：右側↓▼をクリックして展開したあと、差分連携(Change Data Capture)間隔を設定します。今回はデフォルトのまま 5分間隔としておきます。

- ステップ3：”ターゲット”
その1：上段部
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/e3e3fbd8-af05-90b0-efd5-dacc8e98fb10.png)
接続：事前に設定済みのSnowflake Data Cloudコネクタ設定を選択
スキーマ：Snowflakeのスキーマを選択
他はデフォルトでOK。
その2：下段部
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/0cec08fd-47b5-f4b4-f648-e251b5b683e1.png)
(オプション)最終レプリケート時刻を追加：ターゲット側にデータがレプリケートされた時刻を記録する新規列を追加します。差分連携時のデータ判断に利用出来たり便利なのでチェックしておきます。
(オプション)Superpipe：Snowflakeの機能 Snowpipe Streamingを利用する場合はチェックします。この環境では諸般の理由によりSuperpipeが利用出来ないため泣く泣くチェックを外します。。
::: note info 
Superpipeについては @nttd-nagano 様の以下の記事に詳細が御座います。是非ご覧下さい。
[Informaticaのクラウドを使ってSQL ServerからSnowflakeにリアルタイムで増分ロードしてみた](https://qiita.com/nttd-nagano/items/cda8cb71dae884b665c8#mass-ingestion%E3%81%AEsuperpipe%E3%81%A8%E3%81%AF)
:::

その3：上段部2回目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/cae27777-fc79-98c7-e11f-95ed37b9cdd0.png)
Superpipeを利用しない場合、ステージングの場所を指定する必要があるため設定します。既にあるステージング領域を指定してもよいですし、存在しない名称を指定した場合は自動的に作成されます。
ここでは任意の名称として”RepMarketoSmartCampaign”と設定しました。

- ステップ4：”スケジュール及びランタイムオプション”
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/715493f4-a79c-e1f3-75b2-56e03c0c0dd7.png)
今回は手動で起動する予定でありスケジュール設定しない為、デフォルトのままでOK。このまま「保存」します。緑色のダイアログで正常に保存されたことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/ea3dfa03-46be-b1b7-02a8-9de8ab8cf800.png)

- 最終ステップ：デプロイ
実行出来るようにデプロイを実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/a96c5b55-ad96-6e8d-1f1f-04d57aac48f8.png)
デプロイをクリックするとデプロイ処理が実施されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/c78dbe7a-3871-df45-8d5e-0d8e0c6f3463.png)


## Cloud Data Ingestion and Replication Applicationタスクを実行(起動)する
デプロイが完了したらタスクを実行しましょう。
実行・監視はオペレーションインサイトから行います。

オペレーションインサイト に移動し、左側メニューから”データ取り込みおよびレプリケーション”をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/dd6537d9-4252-4553-2577-80ac3bdba24d.png)
すべてのジョブ タブをクリックすると、先ほどデプロイしたアプリケーション取込タスクがデプロイされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/44167271-c44c-974c-03a0-e9bfbdf88f35.png)
一番右端のメニューから”実行”をクリックすれば実行が開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/67d57a63-07fa-e0a6-f7b2-aed7d4fed4da.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/2e8ce410-ff0b-fd90-d212-e558cd9bab5f.png)
ジョブ名のリンクをクリックし、タスクサマリ画面へ移動しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/4ccd6451-02f7-b475-6751-9c0034dbe7ba.png)
キューへ格納 -> 開始 -> 実行中 と変化していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/3b5118c6-c47b-7980-e727-cb3c8fa68581.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/9dcf5e35-58b3-1e65-60da-5ada23f316e7.png)

画面下部では、現在どのような処理で何件レプリケーションされたかが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/965b5444-0e23-af1e-9bdf-1c222fc35af6.png)
上記はまず初期ロード(アンロード)で1357件処理が実施された事が分かります。

その後、Marketo側で新しいスマートキャンペーンが設定されたり、更新された場合、自動で差分データを取得して反映します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/4573fb25-b527-d6db-8e62-c3d15043222a.png)

以上で設定から実行まで、慣れれば10分もかからず実施可能となります。

### 補足：Snowflake側で確認
ちゃんとデータがレプリケーションされています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985453/50e15ea4-7223-2f2a-2f7c-d90c85f27cc3.png)


## まとめ
IDMCは単なるETLツールでは無く、上記のようなWizard形式による簡単レプリケーションも実装できます。簡単ですが以上です。

###### 検索用
Informatica / IDMC / Intelligent Data Management Cloud / IICS / Data Integration / CDI / CMI / CDIR / Mass Ingestion / CDQ / CDP / Profiling / CDGC / CDMP / CLAIRE / AI / SecureAgent / ランタイム / マスインジェスチョン / マルケト / Marketo / Snowflake