
CensusでSnowflake上の顧客データをSendGridのContactsとして連携してみた
さがらです。
CensusでSnowflake上の顧客データをSendGridのContactsとして連携してみたので、その内容について本記事でまとめてみます。
検証環境
- Snowflake:Enterprise(AWS東京リージョン)
 - Census:Enterprise
 - SendGrid:Free Trial
 
SnowflakeをSourceとして設定
まず、SnowflakeをCensusのSourceとして設定する必要があります。
この設定に関しては以下の記事が参考になると思います。
SnowflakeでSendGridに連携したいデータを定義
SendGridに連携するためのデータを、Snowflake上でテーブルとして定義します。
USE SCHEMA sagara_rawdata_db.sendgrid;
-- テーブルの定義
CREATE TABLE IF NOT EXISTS sendgrid_customers (
    "email" VARCHAR(255),
    "first_name" VARCHAR(255),
    "last_name" VARCHAR(255),
    "address_line_1" VARCHAR(255),
    "address_line_2" VARCHAR(255),
    "city" VARCHAR(255),
    "state_province_region" VARCHAR(255),
    "postal_code" VARCHAR(20),
    "country" VARCHAR(255),
    "phone_number_id" VARCHAR(20),
    "external_id" VARCHAR(255),
    "anonymous_id" VARCHAR(255)
);
-- 5レコードの日本仕様データを
INSERT INTO sendgrid_customers (
    "email",
    "first_name",
    "last_name",
    "address_line_1",
    "address_line_2",
    "city",
    "state_province_region",
    "postal_code",
    "country",
    "phone_number_id",
    "external_id",
    "anonymous_id"
) VALUES
('dummyuser1@example.com', '太郎', '山田', 'ダミー町1-2-3', 'ダミービル 101号室', 'ダミー市', 'ダミー県', '123-4567', 'Japan', '09012345671', 'ext_001', 'anon_001'),
('dummyuser2@example.com', '花子', '鈴木', '架空町4-5-6', '架空アパート 202', '架空市', 'ダミー県', '234-5678', 'Japan', '09012345672', 'ext_002', 'anon_002'),
('dummyuser3@example.com', '一郎', '佐藤', '見本町7-8-9', '見本マンション 303', '見本市', 'ダミー県', '345-6789', 'Japan', '09012345673', 'ext_003', 'anon_003'),
('dummyuser4@example.com', 'さくら', '高橋', 'テスト町10-11-12', 'テストハイツ 404', 'テスト市', 'ダミー県', '456-7890', 'Japan', '09012345674', 'ext_004', 'anon_004'),
('dummyuser5@example.com', '健太', '田中', 'サンプル町13-14-15', 'サンプルコーポ 505', 'サンプル市', 'ダミー県', '567-8901', 'Japan', '09012345675', 'ext_005', 'anon_005');
INSERT後にテーブルを確認すると、このようにデータが見えます。

SendGridをDestinationとして設定
次に、SendGridをCensusのDestinationとして設定していきます。
SendGridのAPIキーを取得
まず、SendGridのAPIキーを取得します。
左のメニューのSettingsからAPI Keysを押します。

右上のCreate API Keyを押します。

API Key Nameは任意のものを入れて、API Key PermissionsはFull Accessで、右下のCreate & Viewを押します。

APIキーが表示されるため、コピーして保持しておきます。(後のCensusの設定で利用します。)

Destinationの設定
Censusの左のメニューから、Destinationsを押します。

右上の+ New Destinationを押します。

SendGridを選択します。

Nameに任意の名称を入れて、API Tokenには先程SendGridで確認した内容を入れて、右下のConnectを押します。

次の画面で接続テストが行われます。問題なければ、右下のFinishを押します。

Syncの設定
SnowflakeからSendGridにデータを転送するための、Syncの設定を行います。
左のメニューからSyncsを押し、+ Create a syncを押します。

Select a Sourceでは、事前に作成したテーブルを選択します。(データベースなどが選択できるようになるまで、少し時間がかかるためご注意ください。)

Select a Destinationでは、先程Destinationとして作成したSendGridを設定し、ObjectはContactとします。

Select a Sync Behaviorは、Update or Createとします。

Select a Sync Keyでは、SendGridのContactのEmailとSyncさせるカラムを設定します。

Set Up SendGrid Field Mappingsでは、「Snowflakeのテーブルのカラム」と「SendGridのフィールド」をどうマッピングさせるか設定します。(下図は、Generate Mappingsで設定した内容です。)

Run a Test Syncでは、Run Testを押してテスト実行します。


テスト実行が問題なく終われば、下図のように表示されるため、Nextを押します。(ちなみにRun Testを行うと、画像2枚目のように、1件だけSendGridにデータがSyncされております。)


Select a Run Modeを必要なものに設定して、Createを押します。

Syncを手動実行
実際に作成したSyncを手動実行してみます。
作成したSyncのページに移動し、Run Nowを押します。

Syncが完了すると、下図のように表示されます。

この後、SendGridでContactsを確認すると、5レコード同期されていることが確認できました!

あるContactの詳細画面を見ると、下図のように表示されます。Snowflake上のデータが同期されていることがわかりますね。

最後に
CensusでSnowflake上の顧客データをSendGridのContactsとして連携してみました。
Censusを使うことで、SnowflakeからSendGridにとても簡単にデータを同期できますので、ぜひご活用ください!








