共用方式為


使用 Azure Data Factory 或 Synapse Analytics 從 SAP Business Warehouse 複製資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

本文說明如何使用 Azure Data Factory 或 Synapse Analytics 管線,透過 Open Hub 將資料從 SAP Business Warehouse (BW) 複製到 Azure Data Lake Storage Gen2。 您可以使用類似的程序將資料複製到其他支援的接收資料存放區

提示

如需從 SAP BW 複製資料的一般相關資訊,包括 SAP BW Open Hub 整合和差異擷取流程,請參閱使用 Azure Data Factory 透過 Open Hub 從 SAP Business Warehouse 複製資料

必要條件

  • Azure Data Factory 或 Synapse 工作區:如果您沒有其中任一個,請遵循步驟來建立資料處理站建立 Synapse 工作區

  • 目的地類型為「資料庫資料表」的 SAP BW Open Hub 目的地 (OHD):若要建立 OHD 或檢查您的 OHD 是否已正確設定,可與服務整合,請參閱本文的 SAP BW Open Hub 目的地設定一節。

  • SAP BW 使用者需要下列權限

    • 遠端函式呼叫 (RFC) 和 SAP BW 的授權。
    • S_SDSAUTH 授權物件的「執行」活動權限。
  • 使用 SAP .NET 連接器 3.0 的自我裝載整合執行階段 (IR)。 請遵循下列設定步驟:

    1. 安裝和註冊自我裝載整合執行階段 3.13 版或更新版本。 (本文稍後會說明此程序。)

    2. 從 SAP 的網站下載 64 位元 SAP Connector for Microsoft .NET 3.0,並將其安裝在自我裝載整合執行階段所在的相同電腦上。 在安裝期間,請確定您在 [選擇性安裝步驟] 對話方塊中選取 [將組件安裝至 GAC],如下圖所示:

      Set up SAP .NET Connector dialog box

從 SAP BW Open Hub 執行完整複製作業

在 Azure 入口網站中,移至您的服務。 在 [開啟 Azure Data Factory Studio] 或 [開啟 Synapse Studio] 圖格上選取 [開啟],以在個別的索引標籤中開啟服務 UI。

  1. 在首頁上,選取 [內嵌] 以開啟資料複製工具。

  2. 在 [屬性] 頁面上,選擇 [工作類型] 下的 [內建複製工作],然後在 [工作步調或工作排程] 下選擇 [立即執行一次],然後選取 [下一步]

  3. 在 [來源資料存放區] 頁面上,選取 [+ 建立新連線]。 從連接器資源庫選取 [SAP BW Open Hub],然後選取 [繼續]。 若要篩選連接器,您可以在搜尋方塊中輸入 SAP

  4. 在 [新增連線 (SAP BW Open Hub)] 頁面上,遵循下列步驟來建立新的連線。

    1. 從 [透過整合執行階段連線] 清單中,選取現有的自我裝載 IR。 或者,選擇建立 IR (如果您沒有的話)。

      若要建立新的自我裝載 IR,請選取 [+新增],然後選取 [自我裝載]。 輸入名稱,然後選取 [下一步]。 選取 [快速安裝] 以在目前的電腦上進行安裝,或遵循提供的手動安裝步驟。

      必要條件中所述,請確定您已在自我裝載 IR 執行所在的同一部電腦上安裝 SAP Connector for Microsoft .NET 3.0 。

    2. 填入 SAP BW 的伺服器名稱系統編號用戶端識別碼語言 (如果是 EN 以外的語言)、使用者名稱密碼

    3. 選取 [測試連線] 以驗證設定,然後選取 [建立]

    Create SAP BW Open Hub-linked service page

    1. 在 [來源資料存放區] 頁面上,選取 [連線] 區塊中新建立的連線。

    2. 在選取 Open Hub 目的地的區段中,瀏覽 SAP BW 中可用的 Open Hub 目的地。 您可以選取每個資料列末端的預覽按鈕,以預覽每個目的地中的資料。 選取要從中複製資料的 OHD,然後選取 [下一步]

    Screenshot showing the 'Source data store' page.

  5. 若有需要,您可以指定篩選條件。 如果您的 OHD 只包含來自單一資料傳輸程序 (DTP) 執行 (單一要求識別碼) 的資料,或是您確定 DTP 已完成,而您想要複製資料,請清除 [進階] 區段中的 [排除上次要求] 核取方塊。 您可以選取 [預覽資料] 按鈕來預覽資料。

    在本文的 SAP BW Open Hub 目的地設定一節中深入了解這些設定。 然後選取下一步

    Configure SAP BW Open Hub filter

  6. 在 [目的地資料存放區] 頁面上,選取 [+ 新增連線]>[Azure Data Lake Storage Gen2]>[繼續]

  7. 在 [新增連線 (Azure Data Lake Storage Gen2)] 頁面上,遵循下列步驟來建立連線。

    1. 從 [名稱] 下拉式清單中選取可使用 Data Lake Storage Gen2 的帳戶。
    2. 選取建立建立連接。

    Create an ADLS Gen2 linked service page

  8. 在 [目的地資料存放區] 頁面上,選取 [連線] 區段中新建立的連線,然後輸入 copyfromopenhub 作為輸出資料夾名稱。 然後選取下一步

    Screenshot showing the 'Destination data store' page.

  9. 在 [檔案格式設定] 頁面上,選取 [下一步] 以使用預設設定。

    Specify sink format page

  10. 在 [設定] 頁面上指定 [工作名稱],然後展開 [進階]。 輸入 [複製平行處理原則的程度] 的值 (例如 5),以平行方式從 SAP BW 載入。 然後選取下一步

    Configure copy settings

  11. 在 [摘要] 頁面上,檢閱設定。 然後選取下一步

    Screenshot showing the Summary page.

  12. 在 [部署] 頁面上,選取 [監視] 以監視管線。

  13. 請注意,系統會自動選取頁面左側的 [監視] 索引標籤。 在 [管線執行] 頁面中,您可以使用 [管線名稱] 資料行下的連結來檢視活動詳細資料,以及重新執行管線。

  14. 若要檢視與管線執行相關聯的活動執行,請選取 [管線名稱] 資料行下的連結。 管線中只有一個活動 (複製活動),所以您只會看到一個項目。 若要切換回 [管線執行] 檢視,請選取頂端的 [所有管線執行] 連結。 選取 [重新整理] 可重新整理清單。

    Activity-monitoring screen

  15. 若要監視每個複製活動的執行詳細資料,請選取 [詳細資料] 連結,也就是活動監視檢視中每個複製活動所在資料列中的眼鏡圖示。 可用詳細資料包括從來源複製到接收端的資料量、資料輸送量、執行步驟和持續時間,以及使用的設定。

    Activity monitoring details

  16. 若要檢視每個複製活動的要求識別碼上限,請返回活動監視檢視,然後選取每個複製活動所在資料列中的 [輸出]

    Activity output screen

    Activity output details view

從 SAP BW Open Hub 累加複製

提示

請參閱 SAP BW Open Hub 連接器差異擷取流程,以了Open Hub 連接器如何從 SAP BW 複製累加資料。 本文也可以協助您了解基本連接器設定。

現在,讓我們繼續設定 SAP BW Open Hub 的累加複製。

累加複製會使用以要求識別碼為基礎的「高水位線」機制。 DTP 會自動在 SAP BW Open Hub 目的地中產生該識別碼。 下圖顯示此工作流程:

Incremental copy workflow flow chart

在首頁上,選取 [探索更多] 區段中的 [管線範本] 以使用內建範本。

  1. 搜尋 SAP BW 以尋找並選取 [從 SAP BW 到 Azure Data Lake Storage Gen2 的累加複製] 範本。 此範本會將資料複製到 Azure Data Lake Storage Gen2。 您可以使用類似的工作流程來複製到其他接收類型。

  2. 在範本的主頁面上,選取或建立下列三個連線,然後選取視窗右下角的 [使用此範本]

    • Azure Blob 儲存體:在此逐步解說中,我們會使用 Azure Blob 儲存體來儲存高水位線,也就是複製的要求識別碼上限
    • SAP BW Open Hub:這是複製資料的來源。 如需詳細設定,請參閱先前的完整複製逐步解說。
    • Azure Data Lake Storage Gen2:這是要將資料複製到其中的接收端。 如需詳細設定,請參閱先前的完整複製逐步解說。

    Incremental copy from SAP BW template

  3. 此範本會產生具有下列三個活動的管線,並在成功時鏈結此三個活動:查閱複製資料Web

    移至管線 [參數] 索引標籤。您會看到您需要提供的所有設定。

    Incremental copy from SAP BW configuration

    • SAPOpenHubDestinationName:指定要從中複製資料的 Open Hub 資料表名稱。

    • Data_Destination_Container:指定要將資料複製到其中的目的地 Azure Data Lake Storage Gen2 容器。 如果容器不存在,則複製活動會在執行期間建立一個。

    • Data_Destination_Directory:指定 Azure Data Lake Storage Gen2 容器底下的資料夾路徑,以將資料複製到其中。 如果路徑不存在,複製活動會在執行期間建立路徑。

    • HighWatermarkBlobContainer:指定要儲存高水位線值的容器。

    • HighWatermarkBlobDirectory:指定容器下的資料夾路徑,以儲存高水位線值。

    • HighWatermarkBlobName:指定要儲存高水位線值的 Blob 名稱,例如 requestIdCache.txt。 在 Blob 儲存體中,移至 HighWatermarkBlobContainer+HighWatermarkBlobDirectory+HighWatermarkBlobNam 的相對應路徑,例如 container/path/requestIdCache.txt。 建立內容為 0 的 Blob。

      Blob content

    • LogicAppURL:在此範本中,我們使用 WebActivity 來呼叫 Azure Logic Apps,以設定 Blob 儲存體中的高水位線值。 或者,您可以使用 Azure SQL Database 來將其儲存。 使用預存程序活動來更新值。

      您必須先建立邏輯應用程式,如下圖所示。 然後,貼上 HTTP POST URL

      Logic App configuration

      1. 前往 Azure 入口網站。 選取新的 Logic Apps 服務。 選取 [+空白邏輯應用程式] 以移至 Logic Apps 設計工具

      2. 建立 [當收到 HTTP 要求時] 的觸發程序。 指定 HTTP 要求本文,如下所示:

        {
           "properties": {
              "sapOpenHubMaxRequestId": {
                 "type": "string"
              }
           },
           "type": "object"
        }
        
      3. 新增 [建立 Blob] 動作。 針對 [資料夾路徑] 和 [Blob 名稱],請使用您先前在 HighWatermarkBlobContainer+HighWatermarkBlobDirectoryHighWatermarkBlobName 中設定的相同值。

      4. 選取 [儲存]。 然後,複製要在管線中使用的 HTTP POST URL 值。

  4. 提供管線參數之後,請選取 [偵錯]>[完成] 以叫用執行來驗證設定。 或者,選取 [發佈] 以發佈所有變更,然後選取 [新增觸發程序] 來起始執行。

SAP BW Open Hub 目的地設定

本節將介紹 SAP BW 端的設定,以使用 SAP BW Open Hub 連接器來複製資料。

在 SAP BW 中設定差異擷取

如果您需要歷程記錄複製和累加複製,或僅需要累加複製,請在 SAP BW 中設定差異擷取。

  1. 建立 Open Hub 目的地。 您可以在 SAP 交易 RSA1 中建立 OHD,以自動建立必要的轉換和資料傳輸程序。 使用下列設定:

    • ObjectType:您可以使用任何物件類型。 在此,我們使用 InfoCube 作為範例。
    • 目的地類型:選取 [資料庫資料表]
    • 資料表的索引鍵:選取 [技術索引鍵]
    • 擷取:選取 [保留資料並將記錄插入資料表中]

    Create SAP BW OHD delta extraction dialog box

    Create SAP BW OHD delta2 extraction dialog box

    您可以增加 DTP 的 SAP 工作程序平行執行數目:

    Screenshot shows Settings for Parallel Processing where you can select the number of parallel processes for the D T P.

  2. 在程序鏈結中排定 DTP。

    只有在必要的資料列未壓縮時,Cube 的差異 DTP 才會運作。 請確定對 Open Hub 資料表執行 DTP 之前未壓縮 BW Cube。 若要這樣做,最簡單的方式是將 DTP 整合到現有的程序鏈結中。 在下列範例中,DTP (以 OHD 為目標) 會插入調整 (彙總) 和摺疊 (Cube 壓縮) 步驟之間的程序鏈結。

    Create SAP BW process chain flow chart

在 SAP BW 中設定完整擷取

除了差異擷取之外,您可以對相同的 SAP BW InfoProvider 執行完整擷取。 如果您想要執行完整複製 (但不是累加複製),或想要重新同步差異擷取,則通常適用此方式。

相同的 OHD 不能有多個 DTP。 因此,您必須在差異擷取之前建立額外的 OHD。

Create SAP BW OHD full

針對滿載 OHD,請選擇與差異擷取不同的選項:

  • 在 OHD 中:將 [擷取] 選項設定為[刪除資料並插入記錄]。 否則,當您在 BW 程序鏈結中重複 DTP 時,將會多次擷取資料。

  • 在 DTP 中:將 [擷取模式] 設定為 [完整]。 您必須在建立 OHD 之後,立即將自動建立的 DTP 從 [差異] 變更為 [完整],如下圖所示:

    Create SAP BW OHD dialog box configured for "Full" extraction

  • 在 BW Open Hub 連接器中:關閉 [排除上次要求]。 否則,將不會擷取任何項目。

您通常會手動執行完整的 DTP。 或者,您可以建立完整 DTP 的程序鏈結。 其通常是與現有程序鏈結無關的個別鏈結。 不論是哪一種情況,請先確定 DTP 已完成,再使用複製開始進行擷取。 否則,只會複製部分資料。

第一次執行差異擷取

第一次的差異擷取在技術上是完整擷取。 根據預設,SAP BW Open Hub 連接器會在複製資料時排除上一次的要求。 針對第一次差異擷取,複製活動不會擷取任何資料,直到後續 DTP 在資料表中產生具有個別要求識別碼的差異資料為止。 避免這種情形的做法有二種:

  • 關閉第一次差異擷取的 [排除上次要求] 選項。 在您第一次啟動差異擷取之前,請確定第一次的差異 DTP 已完成。
  • 使用程序來重新同步差異擷取,如下一節所述。

重新同步差異擷取

下列案例會變更 SAP BW Cube 中的資料,但差異 DTP 不會列入考量:

  • SAP BW 選擇性刪除 (使用任何篩選條件列出的資料列)
  • SAP BW 要求刪除 (錯誤要求)

SAP Open Hub 目的地不是資料超市控制的資料目標 (在 2015 年以來的所有 SAP BW 支援套件中)。 因此,您可以刪除 Cube 中的資料,而不需變更 OHD 中的資料。 然後,您必須使用服務重新同步 Cube 的資料:

  1. 在服務中執行完整擷取 (使用 SAP 中的完整 DTP)。
  2. 針對差異 DTP 刪除 Open Hub 資料表中的所有資料列。
  3. 將差異 DTP 的狀態設定為 [已擷取]

之後,所有後續的差異 DTP 和差異擷取都會如預期般運作。

若要將差異 DTP 的狀態設定為 [已擷取],您可以使用下列選項手動執行差異 DTP:

沒有資料傳輸;來源中的差異狀態:已擷取

了解 SAP BW Open Hub 連接器支援: