Azure Data Factory または Synapse Analytics を使用して Salesforce Marketing Cloud からデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure Data Factory または Synapse Analytics パイプラインで Copy アクティビティを使用して、Salesforce Marketing Cloud からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

サポートされる機能

この Salesforce Marketing Cloud コネクタは、次の機能でサポートされます。

サポートされる機能 IR
Copy アクティビティ (ソース/-) 1.1
Lookup アクティビティ 1.1

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

ソースおよびシンクとしてサポートされているデータ ストアの一覧については、「サポートされているデータ ストア」の表を参照してください。

Salesforce Marketing Cloud コネクタでは OAuth 2 認証がサポートされており、レガシ パッケージと拡張パッケージの両方の種類がサポートされています。 このコネクタは、Salesforce Marketing Cloud REST API の上に構築されています。

注意

このコネクタは、ビュー、カスタム オブジェクト、またはカスタム データ拡張機能の取得をサポートしていません。

作業の開始

コピー アクティビティを含むパイプラインは、.NET SDK、Python SDK、Azure PowerShell、REST API、または Azure Resource Manager テンプレートを使用して作成できます。 コピー アクティビティを含むパイプラインを作成するための詳細な手順については、コピー アクティビティのチュートリアルをご覧ください。

UI を使用して Salesforce Marketing Cloud のリンク サービスを作成する

次の手順を使用して、Azure portal UI で Salesforce Marketing Cloud のリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンク サービス] を選択して、[新規] をクリックします。

  2. Salesforce を検索し、Salesforce Marketing Cloud コネクタを選択します。

    Select the Salesforce Marketing Cloud connector.

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Configure a linked service to Salesforce Marketing Cloud.

Note

コネクタが成功するには、Salesforce Marketing Cloud 上の API 統合スコープを [ハブ] | [キャンペーン] | [読み取り] に設定する必要があります。

コネクタの構成の詳細

次のセクションでは、Salesforce Marketing Cloud コネクタに固有の Data Factory エンティティの定義に使用されるプロパティについて詳しく説明します。

リンクされたサービスのプロパティ

Salesforce Marketing Cloud のリンクされたサービスでは、次のプロパティがサポートされます。

プロパティ Description 必須
type type プロパティは、次のように設定する必要があります:SalesforceMarketingCloud はい
connectionProperties Salesforce Marketing Cloud への接続方法を定義するプロパティのグループ。 はい
connectionProperties の下:
authenticationType 使用する認証方法を指定します。 使用できる値は Enhanced sts OAuth 2.0 または OAuth_2.0 です。

Salesforce Marketing Cloud レガシ パッケージでは OAuth_2.0 のみがサポートされていますが、拡張パッケージでは Enhanced sts OAuth 2.0 が必要です。
2019 年 8 月 1 日以降、レガシ パッケージを作成する機能が Salesforce Marketing Cloud から削除されました。 新しいパッケージはすべて、拡張パッケージです。
はい
host 拡張パッケージの場合、ホストはサブドメインである必要があります。これは、"mc" という文字で始まる 28 文字の文字列で表されます (例: mc563885gzs27c5t9-63k636ttgm)。
レガシ パッケージの場合は、www.exacttargetapis.com を指定します。
はい
clientId Salesforce Marketing Cloud アプリケーションに関連付けられたクライアント ID。 はい
clientSecret Salesforce Marketing Cloud アプリケーションに関連付けられたクライアント シークレット。 このフィールドを SecureString としてマークしてサービスに安全に格納するか、Azure Key Vault にシークレットを格納し、データ コピーの実行時にサービスのコピー アクティビティでそこからプルするかを選択できます。詳しくは、Key Vault への資格情報の格納に関するページをご覧ください。 はい
useEncryptedEndpoints データ ソースのエンドポイントが HTTPS を使用して暗号化されるかどうかを指定します。 既定値は、true です。 いいえ
useHostVerification TLS 経由で接続するときに、サーバーの証明書内のホスト名がサーバーのホスト名と一致する必要があるかどうか指定します。 既定値は、true です。 いいえ
usePeerVerification TLS 経由で接続するときに、サーバーの ID を検証するかどうかを指定します。 既定値は、true です。 いいえ

例: 拡張パッケージに拡張 STS OAuth 2 認証を使用

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "connectionProperties": {
                "host": "<subdomain e.g. mc563885gzs27c5t9-63k636ttgm>",
                "authenticationType": "Enhanced sts OAuth 2.0",
                "clientId": "<clientId>",
                "clientSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

例: レガシ パッケージに OAuth 2 認証を使用

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "connectionProperties": {
                "host": "www.exacttargetapis.com",
                "authenticationType": "OAuth_2.0",
                "clientId": "<clientId>",
                "clientSecret": {
                     "type": "SecureString",
                     "value": "<clientSecret>"
            	},
                "useEncryptedEndpoints": true,
                "useHostVerification": true,
                "usePeerVerification": true
            }
        }
    }
}

以下のペイロードで Salesforce Marketing Cloud のリンクされたサービスを使用していた場合、これは現状のまま引き続きサポートされますが、今後は拡張パッケージがサポートされる新しいものを使用することをお勧めします。

{
    "name": "SalesforceMarketingCloudLinkedService",
    "properties": {
        "type": "SalesforceMarketingCloud",
        "typeProperties": {
            "clientId": "<clientId>",
            "clientSecret": {
                 "type": "SecureString",
                 "value": "<clientSecret>"
            },
            "useEncryptedEndpoints": true,
            "useHostVerification": true,
            "usePeerVerification": true
        }
    }
}

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Salesforce Marketing Cloud データセット でサポートされるプロパティの一覧を示します。

Salesforce Marketing Cloud からデータをコピーするには、データセットの type プロパティを SalesforceMarketingCloudObject に設定します。 次のプロパティがサポートされています。

プロパティ Description 必須
type データセットの type プロパティは、次のように設定する必要があります:SalesforceMarketingCloudObject はい
tableName テーブルの名前。 いいえ (アクティビティ ソースの "query" が指定されている場合)

{
    "name": "SalesforceMarketingCloudDataset",
    "properties": {
        "type": "SalesforceMarketingCloudObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<SalesforceMarketingCloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Salesforce Marketing Cloud ソースでサポートされるプロパティの一覧を示します。

ソースとしての Salesforce Marketing Cloud

Salesforce Marketing Cloud からデータをコピーするには、コピー アクティビティのソースの種類を SalesforceMarketingCloudSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。

プロパティ Description 必須
type コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:SalesforceMarketingCloudSource はい
query カスタム SQL クエリを使用してデータを読み取ります。 (例: "SELECT * FROM MyTable")。 いいえ (データセットの "tableName" が指定されている場合)

例:

"activities":[
    {
        "name": "CopyFromSalesforceMarketingCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SalesforceMarketingCloud input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SalesforceMarketingCloudSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

注意

Contacts テーブルはサポートされていません。

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。