Informatica Intelligent Cloud Services（IICS）におけるSnowflakeの利用方法

この記事は [Snowflake Advent Calendar 2020](https://adventar.org/calendars/5085) の6日目の記事です。

## 概要
Informatica Intelligent Cloud Services（IICS）にて、Snowflakeコネクターの設定手順を紹介します。
IICSは、マルチクラウドで実行可能なETLツールであり、IPaaS（Integration Platform as a Service）として提供されております。

Informatica Intelligent Cloud Services（IICS）を紹介したうえで、簡単なパイプラインを作成する手順を提示します。

## なぜをInformatica Intelligent Cloud Services（IICS）利用すべきなのか
### 1. グローバルで評価されているツールであること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ea80886c-f067-e023-7923-1eb6d3f7e39b.png)


### 2. IICSだけでなくデータマネジメント全般をソリューションとして提供していること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c56c2dc6-cbba-03f6-55fe-acdf9a88aa44.png)
引用元：[What‘s New | Informatica Japan](https://www.informatica.com/jp/whats-new.html)

### 3. マルチクラウドで実行が可能であること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d3acb366-d481-6493-f319-70b1c95e1fb3.png)
引用元：[クラウド／ハイブリッド：お好みの方法でクラウドに移行 | Informatica Japan](https://www.informatica.com/jp/solutions/move-to-the-cloud.html)

## 簡単なデータ同期の実施
### 事前準備
下記のアカウントを作成してください。

- Snowflake
- Informatica Cloud Data Integration

Informatica Cloud Data Integrationの環境構築の手順については、クラスメソッド様が紹介しております。
[Informatica Cloud Data Integrationの環境をAWS上で構築してみた | Developers.IO (classmethod.jp)](https://dev.classmethod.jp/articles/informatica-cloud-data-integration-first-setting/)

### 1. Snowflakeにて、データベースとテーブルを作成

```sql
CREATE OR REPLACE DATABASE IICS;

USE IICS;

Create or replace table REGION (
  R_REGIONKEY	NUMBER(38,0)
  ,R_NAME	VARCHAR(255)
  ,R_COMMENT	VARCHAR(255)
);
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e50ada06-1041-b1e5-9d53-523a06e5dc20.png)


### 2. IICS管理者にて、"アドオン" -> "Informatica for Snowflake Cloud Data Warehouse" -> "無料トライアルを開始する"を選択する。"利用可能なライセンス"となることを確認。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/076af721-857c-7afa-4bd2-b352085a0063.png)

### 3. （オプション）Secure Agent環境を構築します。たまたま、私の環境にて、SnowflakeコネクタがInformatica Cloud Hosted Agentで動作しなかったので、構築しました。先述のクラスメソッド様の記事にて、AWSでの構築手順も紹介されておりますが、Azureで実施しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e4128094-1c5b-e33f-6209-c67ea6e99f5d.png)
[Informatica Cloud Data Integrationの環境をAWS上で構築してみた | Developers.IO (classmethod.jp)](https://dev.classmethod.jp/articles/informatica-cloud-data-integration-first-setting/)

### 4. "接続" -> "新しい接続"を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/5321dd8a-2d34-1fec-01cc-6d066e77c8cf.png)

### 5. 必要な項目を入力後、"接続のテスト"を選択。接続確認完了後、"保存"を選択。

| 項目           | 入力項目                                                     | サンプル                                          |
| -------------- | ------------------------------------------------------------ | ------------------------------------------------- |
| 接続名         | 接続の名称                                                   | conn_snowflake_01                                 |
| 説明:          | 接続の説明                                                   | Snowflakeへのコネクター                           |
| タイプ         | Informatica for Snowflake Cloud Data Warehouse V2            | Informatica for Snowflake Cloud Data Warehouse V2 |
| ランタイム環境 | 実行環境。3の手順で作成した環境。                            | bap-smm-vm-01                                     |
| Authentication | 認証方法                                                     | 標準                                              |
| Username       | ユーザー名                                                   | adfuser                                           |
| Password       | パスワード                                                   | saaaa123344                                       |
| Account        | Snowflakeアカウント名。URLの"snowflakecomputing.com"の前の部分 | hp54177.west-us-2.azure                           |
| Warehouse      | 仮想ウェアハウス名                                           | COMPUTE_WH                                        |
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/333a7512-0873-c135-c162-2f97ff796010.png)

### 6. IICSデータ統合に移動後、"新規..." -> "マッピング" -> "マッピング"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f0015f70-0838-f9c0-cb22-499e4399a5ff.png)

### 7. ソースを選択後、"プロパティ" -> "ソース" -> "接続"にて作成済みの接続を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1a327737-e074-7ca2-51f3-02841158df5d.png)

### 8. ”オブジェクト" -> "選択"を選択後、Snowflakeサンプルデータベースの"REGION"を選択し、"OK"を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/8ab31b63-e0ff-4789-d486-4507c9b4d16d.png)

### 9. "フィールド"タブをクリックして、スキーマがただしいことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/ea3967d1-1b67-3014-bf49-43ca020e6683.png)

### 10. "ターゲット"を選択し、"プロパティ" -> "ターゲット"  -> "接続"にて作成済みの接続を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2a6c137e-eb85-e2a4-5590-021406e0f248.png)

### 11.  ”オブジェクト" -> "選択"を選択後、1の手順にて作成した"REGION"を選択し、"OK"を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/67b276e5-6584-4fb4-dfd5-59eb550a6008.png)

### 12. "フィールドマッピング"タブにて、"オートマッチ" -> "正確なフィールド名"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f2ca0f49-17fe-6475-2794-7615d6dad5ab.png)

### 13. "マッピングされてフィールド"にて、"マッピングされてフィールド"に項目が入力されたことを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/51f5434e-3191-1b32-bb75-1a3ce269aaf4.png)

### 14. 右上の"保存"ボタンを選択後、"実行"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d18cf42b-fcb4-16e1-d7eb-e43056657b4f.png)

### 15. "ランタイム環境"を作成済みの環境に設定し、"実行"を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/b5e24394-8950-2688-46f3-9dd6b5117d9b.png)

### 16. IICSモニタ画面にて、実行完了を確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/90c3bf30-90db-50f8-1537-59543bed080f.png)

### 17. Snowflakeにて、データが挿入されていることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/02ff496a-df1a-12fa-0aa5-1c98f752f60a.png)