データを Data Cloud に接続するための実装手順など

[Data Cloudのまとめに戻る](https://qiita.com/Keiji_otsubo/items/ce366c02186b6bb5b39b)

---------------

https://trailhead.salesforce.com/content/learn/modules/data-cloud-connectors-and-integrations/learn-about-connection-steps?trail_id=model-data-in-customer-data-platform


+ [Data Cloud のデータオブジェクト](https://help.salesforce.com/s/articleView?id=sf.c360_a_data_lake_objects.htm&type=5)

|オブジェクト	|説明	|注意|
|:------------------------------|:-------------------------------|:-------------------|
|データレークオブジェクト (DLO)	|Data Cloud に取り込まれるデータのコンテナ。	|DLO は、Data Cloud に取り込まれたデータから自動的に作成されますが、手動で作成することもできます。|
|非構造化データレイクオブジェクト (UDLO)	|Data Cloud で参照される非構造化データのコンテナ。	|エイリアムLO は手動で作成されます。|
|データモデルオブジェクト (DMO)	|データストリーム、インサイト、その他のソースから作成されたデータのハーモナイズされたグルーピング。|	DLO は DMO にマッピングされます。|
|非構造化データモデルオブジェクト (UDMO)	|非構造化データソースから作成されたデータのグループ。	|1 つの ID は、既存の ID または新しい ID に自動的にマッピングされます。|
|外部データレイクオブジェクト	|外部データソースから統合されたデータのメタデータを含むストレージコンテナ。	|外部 DLO は参照として機能し、外部データソースに物理的に保存されているデータにポイントします。|


# データ入力

Salesforce コネクタ、コネクタ サービス、またはサードパーティ コネクタからのデータは、ストリーミング データまたはバッチ データとして取り込まれます。ほぼリアルタイムの Web エンゲージメント データは、ストリーミング データの一例です。データを取り込むと、データ ストリームを使用して生のデータが Data Cloud に追加されます。データは変更されないため、元の構造とデータ タイプはそのまま維持されます。データ ストリームによって、接続を確立する頻度とタイミングが決まります。データが Data Cloud に保存される場合、生のデータはデータ レイク オブジェクト (DLO) としてシステムに保存されます。

ただし、データを Data Cloud に取り込む必要はありません。Data Federation または Zero Copy や Bring Your Own Lake (BYOL) と呼ばれることもある外部ソースに接続することもできます。Data Cloud の Data Federation を使用すると、外部データ ソースとの接続を設定し、そのデータを Data Cloud のデータ レイクに保存せずに接続できます。メタデータを保存する外部データ レイク オブジェクト (DLO) を作成するデータ ストリームを作成してデプロイします。DLO は参照として機能し、外部データ ソースに物理的に保存されているデータを指します。

Data Cloud でデータを使用する前に、DLO のフィールドが標準データ モデルである Customer 360 データ モデルにマッピングされ、セグメンテーション、インサイト、またはアクティベーションでの下流での使用が可能になります

# データ出力

データクラウドでデータが操作、調整、またはセグメント化された後、データはセキュアファイル転送（SFTP）（2）などのターゲット（1）に送信したり、データ共有を使用してSnowflakeなどの外部統合と共有したりできます。

ターゲットは、Marketing Cloud Engagement や、Meta や Google 広告などの広告プラットフォームに対してセグメントをアクティブ化するために使用されます。ターゲットは、Sales Cloud または Service Cloud でタスクを実行するためのデータアクションで使用できます。または、データ共有を使用して、Google BigQuery または Snowflake でデータを外部で使用することもできます。このモジュールでは、コネクタを使用してデータソース経由で Data Cloud に取り込まれるデータに焦点を当てます。

# 手順の概要

データ ソースを Data Cloud に接続する方法 (Data Cloud を使い始めるためのコアな実装手順も) に関する大まかな手順について説明します。

1. **接続を作成します。** ソースから Data Cloud にデータを取得するには、ソースと Data Cloud の間で接続が確立されます。システム管理者は、コネクタのタイプに応じて Data Cloud セットアップの手順に従います。データ バンドルをインストールし、データ ソースに関する構成情報と認証情報を追加したり、イベント定義を作成してソースと Data Cloud 間の接続を確立したりします。
2. **データ ストリームを作成します。** 管理者が接続を設定すると、接続ごとにデータ ストリームを作成できます。これにより、データ、メタデータ、またはその両方を保存するデータ レイク オブジェクト (DLO) が作成されます。 
3. **データを変換します。** データ ストリームが作成されると、キー修飾子を追加したり、簡単な数式を使用して名前を更新したり行ベースの計算を実行したり、データに対してストリーミングまたはバッチ データ変換を作成したりすることで、データを変更できます。関連するバッジでバッチ データ変換とストリーミング変換について学習します。 
4. **データをマッピングします。** データを調和させて理解しやすくするために、 **Data Cloud の標準データ モデルであるCustomer 360 データ モデル**にマッピングする必要があります。コネクタのタイプに応じて、一部のフィールドは事前にマッピングされています。そうでない場合は、フィールドを Customer 360 データ モデルに手動でマッピングします。ID 解決ルールセットを使用したデータ統合には、データの適切なマッピングが必要です。 

Customer 360 データ モデルは、データの相互運用性を実現する Data Cloud の標準データ モデルです。簡単に言うと、このモデルはさまざまな種類のデータとそれらの相互関係を整理します。しかし、このモデルはそれ以上のことを行います。Customer 360 データ モデルは、データ ソースにマップできる標準オブジェクトを提供します。これらの標準オブジェクトは、データ モデルに存在できるデータの種類と、そのデータを説明および概説するために使用される属性を正確に記述します。ソース データは人によって異なるため、このモデルはデータを自動的にマップするものではありません。ただし、Customer 360 データ モデルは、データ モデルがデータ モデル オブジェクトを相互に関連付ける方法と、使用できる情報について説明します。Customer 360 データ モデルを地図上の凡例と考えてください。そうすれば、地図を読もうとする人は誰でも、何について話しているのかを正確に理解できます。

Customer 360 データ モデルには、データ モデル内の情報の種類を記述するために使用されるさまざまなデータ モデル オブジェクト(DMO) が含まれています。これらのデータ モデル オブジェクトを記述するために使用される情報は、属性(Data Cloud アプリのフィールドに含まれる) です。 

|DMO|説明|セグメンテーションで使用される属性の例 |
|:--------------------------|:------------------------------|:--------------------------|
|**Contact Point Email**|個人の電子メール アドレスと、そのアドレスに関連する追加情報 (配信ステータス、目的、タイム ゾーン、設定など)。|メールアドレス|
|**Contact Point Phone**|個人の電話番号と、その番号に関連する追加情報（目的、タイムゾーン、SMS メッセージを受信できるかどうかなど）。||
|**Contact Point Address**|個人の実際の郵送先住所とその住所に関連する追加情報（ビジネスまたは個人での使用、国、地域、設定など）。||
|**Individual**|名、姓、誕生日、データおよびプライバシーの設定など、個人を表す属性。|顧客の名|
|**Party Identification**|情報を強調表示するために使用されるチャネルまたは方法に応じて、個人または組織を識別する方法を定義します。この情報を使用して、通常は何らかの ID を使用する顧客などの個人を識別します。 |運転免許証、顧客 ID、ロイヤルティ番号、または Salesforce CRM 連絡先 ID 値 (0033000000D8cuIQAA など)|
|Product Catalog|内部 ID と外部 ID、最終更新日など、販売する予定のものや、サービス目的で追跡する製品の一部を定義します。||
|Sales Order|購入合計、ID、配送情報など、収益、購入、販売注文を定義します。||
|Email Engagement|特定の日時に人がメッセージを開くなど、特定のアクションに関する詳細を定義します。|メールは2022年3月1日に公開されます|
|Case|関連するアカウントまたはユーザー、問題が作成された日時、および説明を含む、ログに記録された問題またはサポート チケットを定義します。|過去 1 年間のオープンチケット数 >1|

Data Cloud では、すべてのデータ モデルにindividual, party identification, contact point email, contact point phone, contact point addressが含まれている必要があります。

# 考慮事項と重要な用語

+ [データ クラウドの 3 つのデータ ストリーム カテゴリとは何ですか?](https://qiita.com/Keiji_otsubo/items/6bef2dc981772956c72a)

+ Immutable(不変):変更されないデータ。
+ Normalized data(正規化されたデータ):冗長性を減らし、データの整合性を向上させるために整理および構造化されたデータ。これにより、システム全体で標準化されたデータ形式を作成しやすくなります。
+ Harmonization(調和):複数のソースから生データを取得して正規化するプロセス。
+ 主キー:データセット内の各レコードを一意に識別するフィールドまたは属性。たとえば、ロイヤルティ データ ソースでは、顧客 ID が一意の識別子または主キーになります。主キーを割り当てると、データが一意で取得可能になります。
+ 外部キー:ソース内のこれらの補助キーは、別のデータセットの主キーにリンクできます。たとえば、販売注文データセットには、購入したアイテムに対応する製品 ID があります。この製品 ID は、色やサイズなど、その製品の詳細を含む別のテーブル全体にリンクします。販売注文の詳細データセットの製品 ID のインスタンスは外部キーであり、製品データセットの製品 ID のインスタンスは主キーです。

接続するためのデータの整理の例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/63c2de08-39d9-91fe-7c61-4a5855b97ad3.png)

# 利用可能なデータソースとコネクタ

+ Salesforce コネクタ
CRM ソース (営業、サービス、業種など)、B2C コマース、Marketing Cloud Engagement からの Salesforce データには、事前構築されたソリューションまたはカスタム実装を選択できる柔軟なコネクタが用意されています。

+ コネクタサービス

また、Ingestion API、MuleSoft、SDK、Web およびモバイル アプリ コネクタを介してデータを Data Cloud に接続することもできます。Ingestion API コネクタは、プログラムでデータを Data Cloud にロードするためのストリーミングおよび一括インタラクション パターンをサポートする RESTful インターフェイスを提供します。Ingestion API 上に構築された MuleSoft Anypoint Connector for Salesforce Data Cloud は、一括およびストリーミングの取り込みパターンをサポートし、サードパーティ システムやビジネス アプリケーションからのデータ取り込みを自動化します。

Web 行動データを追跡して Data Cloud に接続するには、Salesforce Interactions SDK を使用するか、イベント キャプチャを通じて Web データとモバイル データを直接接続します。Data Cloud では、Web インスタンスとモバイル インスタンスの定義済みデータ マッピングが提供されており、取り込みが容易になります。その後、モバイルとメール全体でクエリを実行してアクティブ化できます。Web コネクタとモバイル コネクタの詳細については、バッジ、Web エンゲージメント、Data Cloud のデータを参照してください。

+ サードパーティ統合

利用可能なコネクタと統合は数百種類あり、ここにすべてを挙げることはできません。クラウド ストレージ、データ レイク、ストリーミング コンテンツ、広告ソース用のコネクタがあります。コネクタの種類ごとに設定手順が異なるため、ドキュメントを確認して、接続を開始するために必要な情報を確認してください。一般提供されているかベータ版であるかにかかわらず、Data Cloud は Adob​​e から Zendesk まで、さまざまな企業向けの新しいコネクタを追加し続けています。

# データを接続してデータストリームを作成する

データ ストリームを作成する前に、システム管理者がまず Data Cloud セットアップでデータ ソースに接続する必要があります。[データクラウドの設定](https://trailhead.salesforce.com/content/learn/modules/customer-360-audiences-for-admins/set-up-customer-360-audiences)

接続が確立されると、適切な権限セットを持つユーザーはデータ ストリームの作成を開始できます。


データの接続を開始する前に、次の要素を考慮してください。

+ データ モデル オブジェクトは、それにマップされる最初のデータ ソース オブジェクトからカテゴリを継承します。データ モデル オブジェクトにカテゴリが設定されると、それにマップされる後続のすべてのデータ ソース オブジェクトは同じカテゴリを持つ必要があります。
+ データ ストリームと取り込みに関しては、従うべき制限とガイドラインがいくつかあります。詳細については、 データ クラウドの制限とガイドラインを確認してください。
+ テキスト、数値、日付など、同様のデータ型のフィールドを接続してマッピングするようにしてください。それ以外の場合は、マッピングする前にデータ変換機能または数式フィールドを使用して形式を標準化します。
+ エンゲージメント カテゴリを使用してデータ オブジェクトをマップする場合は、イベント時間フィールドもマップする必要があります。

# データマッピング

すべてのデータ ストリームがシステムに取り込まれると、Customer 360 データ モデルを使用してデータ ソースを正規化するソースからターゲットへのマッピング エクスペリエンスがあることを説明しました。Customer 360 データ モデルは、多数のサブジェクト領域をカバーする複数のオブジェクトで構成されています。これらのサブジェクト領域には、パーティ、製品、販売注文、電子メール エンゲージメントなどが含まれます (ただし、これらに限定されません)。このモデルは拡張可能またはカスタマイズ可能で、標準オブジェクトにカスタム属性を追加したり、まったく新しいカスタム オブジェクトを作成したりできます。

標準オブジェクトを使用する場合、DLO 内のマップされたオブジェクト間でキー フィールドが共有されると、オブジェクト間の関係が自動的に入力されます。関係は、DMO レコードの [関係] タブ (1) でも追加できます。

What type of relationship would a DMO have between a loyalty program and a marketing email campaign with email engagement data?

DMO は、ロイヤルティ プログラムと、電子メール エンゲージメント データを備えたマーケティング電子メール キャンペーンとの間にどのような関係を築くのでしょうか。

Many-to-one. 多対一 ? 意味が分からん

# 数式

+ [フロー: 要素の丸めを変換しますか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000KflMy0AJ)

:::note
これはTransform変数の問題だと思います。あるいは、 

数値型 (小数点 2) の新しい変数をもう 1 つ作成し、割り当てによって SD と sd_total の両方を追加できます。
または、数値型で数式変数を作成し、SD と sd_total の両方を追加します。
:::