分享方式:


使用 Azure Data Factory 或 Synapse Analytics 從 Microsoft 365 (Office 365) 複製到 Azure

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

Azure Data Factory 和 Synapse Analytics 管線與 Microsoft Graph 資料連線整合,可讓您將 Microsoft 365 (Office 365) 租用戶中豐富的組織資料以可調式方法帶入 Azure,並建置分析應用程式,以及根據這些寶貴的資料資產擷取深入解析。 與 Privileged Access Management 整合可針對 Microsoft 365 (Office 365) 中的重要策劃資料提供安全的存取控制。 如需 Microsoft Graph 資料連線的概觀,請參閱此連結

本文總覽如何利用複製活動來複製資料與資料流以便從 Microsoft 365 (Office 365) 轉換資料。 如需複製資料簡介,請參閱複製活動概觀。 如需轉換資料簡介,請參閱對應資料流概觀

注意

Microsoft 365 資料流連接器目前處於預覽狀態。 若要參加,請利用這個註冊表單:M365 + 分析預覽

支援的功能

此 Microsoft 365 (Office 365) 連接器支援下列功能:

支援的功能 IR
複製活動 (來源/-) (1)
對應資料流程 (來源/-) (1)

① Azure 整合執行階段 ② 自我裝載整合執行階段

ADF Microsoft 365 (Office 365) 連接器和 Microsoft Graph 資料連線可大規模擷取不同類型的資料集從 Exchange 電子郵件啟用的信箱,包含通訊錄連絡人、行事曆事件、電子郵件、使用者資訊、信箱設定等等。 請參閱這裡以查看可用的完整資料集清單。

目前,在單一副本活動與資料流,您僅能以 JSON 格式從 Microsoft 365 (Office 365) 內嵌資料至 Azure Blob 儲存體Azure Data Lake Storage Gen1Azure Data Lake Storage Gen2 (setOfObjects 類型)。 複製到 Azure Blob 儲存體時,輸出是包含 JSON 文字的 Blob。 若您想載入 Microsoft 365 (Office 365) 至其他類型的資料存放區或使用其他格式,您可鏈結第一次複製活動或資料流與後續活動,以便進一步載入資料至任何支援的 ADF 目的地儲存區 (請參閱「支援的資料存放區與格式」表格的「支援為接收器」欄位)。

重要

  • 包含資料處理站或 Synapse 工作區和接收器資料存放區的 Azure 訂用帳戶必須與 Microsoft 365 (Office 365) 租用戶位於相同的 Microsoft Entra 租用戶下。
  • 請確定用於複製活動的 Azure Integration Runtime 地區以及目的地與 Microsoft 365 (Office 365) 租用戶使用者的信箱所在區域相同。 若要了解如何判斷 Azure IR 位置,請參閱這裡。 如需支援的 Office 區域和對應的 Azure 區域清單,請參閱以下資料表
  • 服務主體驗證是唯一支援 Azure Blob 儲存體、Azure Data Lake Storage Gen1 和Azure Data Lake Storage Gen2 作為目的地存放區的驗證機制。

注意

請在來源和接收連結服務中使用 Azure 整合執行階段。 不支援自我裝載整合執行階段和受控虛擬網路整合執行階段。

必要條件

若要從 Microsoft 365 (Office 365) 複製並轉換資料至 Azure,您需完成以下所需步驟:

  • 您的 Microsoft 365 (Office 365) 租用戶系統管理員必須完成上架動作,如此處所述。
  • 在 Microsoft Entra ID 中建立和設定 Microsoft Entra Web 應用程式。 如需指示,請參閱建立 Microsoft Entra 應用程式
  • 請記下以下的值,您可以使用這些值來定義 Microsoft 365 (Office 365) 的連結服務:
  • 新增使用者身分識別,其將以 Microsoft Entra Web 應用程式擁有者身分進行資料存取要求 (從 Microsoft Entra Web 應用程式 > [設定] > [擁有者] > [新增擁有者])。
    • 使用者身分識別必須位於要從中取得資料的 Microsoft 365 (Office 365) 組織中,而且不可以是來賓使用者。

核准新的資料存取要求

如果這是您第一次要求此內容 (結合正在存取的資料資料表、正在載入資料的目的地帳戶,以及進行資料存取要求的使用者身分識別) 的資料,您會看到複製活動狀態為「進行中」,且僅在您按一下 [動作] 底下的 [詳細資料] 連結時,會看到狀態為 "RequestingConsent"。 資料存取核准者群組的成員必須先在 Privileged Access Management 中核准該要求,資料擷取才能繼續。

請參閱這裡核准者如何核准資料存取要求。

開始使用

提示

如需使用 Microsoft 365 (Office 365) 連接器的逐步解說,請參閱從 Microsoft 365 (Office 365) 載入資料一文。

您可利用以下工具或 SDK 來建立包含複製活動與資料流的管道。 選取連結以移至逐步指示教學課程,以建立內含複製活動的管線。

使用 UI 建立 Microsoft 365 (Office 365) 的連結服務

使用下列步驟,在 Azure 入口網站 UI 中建立連結至 Microsoft 365 (Office 365) 的服務。

  1. 前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:

  2. 搜尋 Microsoft 365 (Office 365),然後選取 Microsoft 365 (Office 365) 連接器。

    Microsoft 365 (Office 365) 連接器的螢幕擷取畫面。

  3. 設定服務詳細資料,測試連線,然後建立新的連結服務。

    Microsoft 365 (Office 365) 的連結服務設定螢幕擷取畫面。

連接器設定詳細資料

下列各節提供屬性的相關詳細資料,這些屬性是用來定義 Microsoft 365 (Office 365) 連接器特定的 Data Factory 實體。

連結服務屬性

以下是針對 Microsoft 365 (Office 365) 已連結服務支援的屬性:

屬性 描述 必要
type 類型屬性必須設為:Office365 Yes
office365TenantId Microsoft 365 (Office 365) 帳戶所屬的 Azure 租用戶識別碼。 Yes
servicePrincipalTenantId 指定您 Microsoft Entra Web 應用程式所在的租用戶資訊。 Yes
servicePrincipalId 指定應用程式的用戶端識別碼。 Yes
servicePrincipalKey 指定應用程式的金鑰。 將此欄位標記為 SecureString 以將其安全地儲存。 Yes
connectVia 用於連線到資料存放區的 Integration Runtime。 如果未指定,就會使用預設的 Azure Integration Runtime。 No

注意

office365TenantIdservicePrincipalTenantId 之間的差異以及要提供的對應值:

  • 如果您是企業開發人員,負責針對自己組織使用的 Microsoft 365 (Office 365) 資料開發應用程式,則您應該對這兩個屬性提供相同的租用戶識別碼,也就是貴組織的 Microsoft Entra 租用戶識別碼。
  • 如果您是為客戶開發應用程式的 ISV 開發人員,則 office365TenantId 將會是您客戶的 (應用程式安裝程式) Microsoft Entra 租用戶識別碼,而 servicePrincipalTenantId 將為貴公司的 Microsoft Entra 租用戶識別碼。

範例:

{
    "name": "Office365LinkedService",
    "properties": {
        "type": "Office365",
        "typeProperties": {
            "office365TenantId": "<Microsoft 365 (Office 365) tenant id>",
            "servicePrincipalTenantId": "<AAD app service principal tenant id>",
            "servicePrincipalId": "<AAD app service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<AAD app service principal key>"
            }
        }
    }
}

資料集屬性

如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 Microsoft 365 (Office 365) 資料集所支援的屬性清單。

若要從 Microsoft 365 (Office 365) 複製資料,以下是支援的屬性:

屬性 描述 必要
type 資料集的 type 屬性必須設定為:Office365Table Yes
tableName 擷取自 Microsoft 365 (Office 365) 的資料集名稱。 如需可供擷取的 Microsoft 365 (Office 365) 資料集清單,請參閱這裡 Yes

如果您在資料集中設定 dateFilterColumnstartTimeendTimeuserScopeFilterUri,雖然仍照現狀支援,但建議您繼續使用活動來源中的新模型。

範例

{
    "name": "DS_May2019_O365_Message",
    "properties": {
        "type": "Office365Table",
        "linkedServiceName": {
            "referenceName": "<Microsoft 365 (Office 365) linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [],
        "typeProperties": {
            "tableName": "BasicDataSet_v0.Event_v1"
        }
    }
}

複製活動屬性

如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Microsoft 365 (Office 365) 來源所支援的屬性清單。

Microsoft 365 (Office 365) 作為來源

為從 Microsoft 365 (Office 365) 複製資料,複製活動 [來源] 區段中支援下列屬性:

屬性 描述 必要
type 複製活動來源的 type 屬性必須設定為:Office365Source Yes
allowedGroups 群組選取述詞。 使用此屬性可選取最多 10 個要從中擷取資料的使用者群組。 如果未指定任何群組,則會傳回整個組織的資料。 No
userScopeFilterUri 未指定 allowedGroups 屬性時,您可以使用套用於整個租用戶的述詞運算式來篩選要從 Microsoft 365 (Office 365) 擷取的特定資料列。 述詞格式應符合 Microsoft Graph API 的查詢格式,例如 https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance' No
dateFilterColumn DateTime 篩選條件資料行的名稱。 使用此屬性可限制擷取 Microsoft 365 (Office 365) 資料的時間範圍。 如果資料集有一或多個 DateTime 資料行,則為是。 請參閱這裡,以取得需要此 DateTime 篩選條件的資料集清單。
startTime 要作為篩選依據的開始 DateTime 值。 如果已指定 dateFilterColumn則為是
endTime 要作為篩選依據的結束 DateTime 值。 如果已指定 dateFilterColumn則為是
outputColumns 要複製到接收器的資料行陣列。 No

範例:

"activities": [
    {
        "name": "CopyFromO365ToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft 365 (Office 365) input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "Office365Source",
                "dateFilterColumn": "CreatedDateTime",
                "startTime": "2019-04-28T16:00:00.000Z",
                "endTime": "2019-05-05T16:00:00.000Z",
                "userScopeFilterUri": "https://graph.microsoft.com/v1.0/users?$filter=Department eq 'Finance'",
                "outputColumns": [
                    {
                        "name": "Id"
                    },
                    {
                        "name": "CreatedDateTime"
                    },
                    {
                        "name": "LastModifiedDateTime"
                    },
                    {
                        "name": "ChangeKey"
                    },
                    {
                        "name": "Categories"
                    },
                    {
                        "name": "OriginalStartTimeZone"
                    },
                    {
                        "name": "OriginalEndTimeZone"
                    },
                    {
                        "name": "ResponseStatus"
                    },
                    {
                        "name": "iCalUId"
                    },
                    {
                        "name": "ReminderMinutesBeforeStart"
                    },
                    {
                        "name": "IsReminderOn"
                    },
                    {
                        "name": "HasAttachments"
                    },
                    {
                        "name": "Subject"
                    },
                    {
                        "name": "Body"
                    },
                    {
                        "name": "Importance"
                    },
                    {
                        "name": "Sensitivity"
                    },
                    {
                        "name": "Start"
                    },
                    {
                        "name": "End"
                    },
                    {
                        "name": "Location"
                    },
                    {
                        "name": "IsAllDay"
                    },
                    {
                        "name": "IsCancelled"
                    },
                    {
                        "name": "IsOrganizer"
                    },
                    {
                        "name": "Recurrence"
                    },
                    {
                        "name": "ResponseRequested"
                    },
                    {
                        "name": "ShowAs"
                    },
                    {
                        "name": "Type"
                    },
                    {
                        "name": "Attendees"
                    },
                    {
                        "name": "Organizer"
                    },
                    {
                        "name": "WebLink"
                    },
                    {
                        "name": "Attachments"
                    },
                    {
                        "name": "BodyPreview"
                    },
                    {
                        "name": "Locations"
                    },
                    {
                        "name": "OnlineMeetingUrl"
                    },
                    {
                        "name": "OriginalStart"
                    },
                    {
                        "name": "SeriesMasterId"
                    }
                ]
            },
            "sink": {
                "type": "BlobSink"
            }
        }
    }
]

如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區