使用 Azure Data Factory 將資料從內部部署 Netezza 伺服器遷移至 Azure

適用于: Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用于企業的單一分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有專案。 瞭解如何 免費啟動新的試用版

Azure Data Factory 提供高效能、健全且符合成本效益的機制,可將大規模資料從內部部署 Netezza 伺服器遷移至 Azure 儲存體帳戶或 Azure Synapse Analytics 資料庫。

本文提供資料工程師和開發人員的下列資訊:

  • 性能
  • 複製復原能力
  • 網路安全性
  • 高階解決方案架構
  • 實作最佳做法

效能

Azure Data Factory 提供無伺服器架構,可讓不同層級的平行處理原則。 如果您是開發人員,這表示您可以建置管線,以充分利用網路和資料庫頻寬,將環境的資料移動輸送量最大化。

Performance diagram

上圖可以解譯如下:

  • 單一複製活動可以利用可調整的計算資源。 當您使用 Azure Integration Runtime 時,您可以透過無伺服器方式為每個複製活動指定 最多 256 個 DIU 。 透過自我裝載整合執行時間(自我裝載 IR),您可以手動相應增加電腦或向外延展至多部機器( 最多四個節點 ),而單一複製活動會將分割區分散到所有節點。

  • 單一複製活動會使用多個執行緒來讀取和寫入資料存放區。

  • Azure Data Factory 控制流程可以平行啟動多個複製活動。 例如,它可以使用 For Each 迴圈 來啟動它們

如需詳細資訊,請參閱 複製活動效能和延展性指南

復原能力

在單一複製活動執行中,Azure Data Factory 具有內建的重試機制,可讓您處理資料存放區或基礎網路中的特定暫時性失敗層級。

使用 Azure Data Factory 複製活動時,當您在來源和接收資料存放區之間複製資料時,有兩種方式可以處理不相容的資料列。 您可以中止並失敗複製活動,或略過不相容的資料列,繼續複製其餘的資料。 此外,若要瞭解失敗的原因,您可以在 Azure Blob 儲存體或 Azure Data Lake Store 中記錄不相容的資料列、修正資料來源上的資料,然後重試複製活動。

網路安全性

根據預設,Azure Data Factory 會使用透過超文字傳輸通訊協定安全 (HTTPS) 的加密連線,將資料從內部部署 Netezza 伺服器傳輸到 Azure 儲存體帳戶或 Azure Synapse Analytics 資料庫。 HTTPS 提供傳輸中的資料加密,並防止竊聽和中間人攻擊。

或者,如果您不想透過公用網際網路傳輸資料,您可以透過 Azure Express Route 透過私人對等互連連結傳輸資料,以協助達到更高的安全性。

下一節討論如何達到更高的安全性。

解決方案架構

本節討論移轉資料的兩種方式。

透過公用網際網路遷移資料

Migrate data over the public internet

上圖可以解譯如下:

  • 在此架構中,您會透過公用網際網路使用 HTTPS 安全地傳輸資料。

  • 若要達成此架構,您必須在公司防火牆後方的 Windows 電腦上安裝 Azure Data Factory 整合執行時間(自我裝載)。 請確定此整合執行時間可以直接存取 Netezza 伺服器。 若要完全使用網路和資料存放區頻寬來複製資料,您可以手動相應增加電腦或相應放大至多部電腦。

  • 藉由使用此架構,您可以移轉初始快照集資料和差異資料。

透過私人網路遷移資料

Migrate data over a private network

上圖可以解譯如下:

  • 在此架構中,您會透過 Azure Express Route 透過私人對等互連連結來移轉資料,而資料永遠不會透過公用網際網路周遊。

  • 若要達成此架構,您必須在 Azure 虛擬網路內的 Windows 虛擬機器 (VM) 上安裝 Azure Data Factory 整合執行時間 (自我裝載)。 若要充分利用您的網路和資料存放區來複製資料,您可以手動相應增加 VM 或相應放大至多個 VM。

  • 藉由使用此架構,您可以移轉初始快照集資料和差異資料。

實作最佳做法

管理驗證和認證

  • 若要向 Netezza 進行驗證,您可以透過 連接字串 使用 ODBC 驗證。

  • 若要向 Azure Blob 儲存體進行驗證:

    • 強烈建議針對 Azure 資源 使用 受控識別。 受控識別建置在 Microsoft Entra ID 中自動管理的 Azure Data Factory 身分識別之上,可讓您設定管線,而不需要在連結服務定義中提供認證。

    • 或者,您可以使用服務主體 共用存取簽章 儲存體帳戶金鑰 向 Azure Blob 儲存體 進行驗證。

  • 若要向 Azure Data Lake 儲存體 Gen2 進行驗證:

  • 若要向 Azure Synapse Analytics 進行驗證:

  • 當您未針對 Azure 資源使用受控識別時,強烈建議 您將認證儲存在 Azure 金鑰保存庫 ,讓您不必修改 Azure Data Factory 連結服務,就能更輕鬆地集中管理和輪替金鑰。 這也是 CI/CD 其中一個最佳做法。

移轉初始快照集資料

對於小型資料表(也就是磁片區小於 100 GB 或可在兩小時內移轉至 Azure 的資料表),您可以讓每個複製作業每個資料表載入資料。 若要提高輸送量,您可以執行多個 Azure Data Factory 複製作業,以同時載入個別的資料表。

在每個複製作業中,若要依分割區執行平行查詢和複製資料,您也可以使用 parallelCopies 屬性設定 搭配下列其中一個資料分割選項,達到某種層級的平行處理原則:

  • 為了協助提升效率,建議您從資料配量開始。 請確定設定中的 parallelCopies 值小於 Netezza 伺服器上資料表中的資料配量分割總數。

  • 如果每個資料配量分割的磁片區仍然很大(例如 10 GB 或以上),建議您切換至動態範圍分割區。 此選項可讓您更彈性地依分割區資料行、上限和下限來定義分割區和每個分割區的磁片區數目。

對於較大的資料表(也就是磁片區為 100 GB 或更大 或無法在 兩小時內移轉至 Azure 的資料表),建議您依自訂查詢分割資料,然後讓每個複製作業一次複製一個分割區。 為了獲得更好的輸送量,您可以同時執行多個 Azure Data Factory 複製作業。 針對依自訂查詢載入一個資料分割的每個複製作業目標,您可以透過資料配量或動態範圍啟用平行處理原則來增加輸送量。

如果任何複製作業因為網路或資料存放區暫時性問題而失敗,您可以重新執行失敗的複製作業,以從資料表重載該特定分割區。 載入其他分割區的其他複製作業不會受到影響。

當您將資料載入 Azure Synapse Analytics 資料庫時,建議您在複製作業內啟用 PolyBase,並將 Azure Blob 儲存體作為預備。

移轉差異資料

若要從資料表識別新的或更新的資料列,請使用時間戳資料行或架構中的遞增索引鍵。 然後,您可以將最新的值儲存為外部資料表中的高水位線,然後在下次載入資料時使用它來篩選差異資料。

每個資料表都可以使用不同的浮水印資料行來識別其新的或更新的資料列。 建議您建立外部控制項資料表。 在資料表中,每個資料列都代表 Netezza 伺服器上的一個資料表,其特定浮水印資料行名稱和高水位線值。

設定自我裝載整合執行時間

如果您要將資料從 Netezza 伺服器移轉至 Azure,無論是在公司防火牆後方或虛擬網路環境內部部署,您都需要在 Windows 機器或 VM 上安裝自我裝載 IR,這是用來移動資料的引擎。 當您安裝自我裝載 IR 時,我們建議使用下列方法:

  • 針對每個 Windows 電腦或 VM,請從 32 個 vCPU 和 128 GB 記憶體的設定開始。 您可以在資料移轉期間持續監視 IR 電腦的 CPU 和記憶體使用量,以查看您是否需要進一步擴大機器以提升效能,或相應減少機器以節省成本。

  • 您也可以將最多四個節點與單一自我裝載 IR 產生關聯,以相應放大。 針對自我裝載 IR 執行的單一複製作業會自動套用所有 VM 節點,以平行方式複製資料。 若要獲得高可用性,請從四個 VM 節點開始,以避免在資料移轉期間發生單一失敗點。

限制分割區

最佳做法是使用具代表性的範例資料集執行效能概念證明(POC),讓您可以為每個複製活動判斷適當的資料分割大小。 建議您在兩小時內將每個分割區載入至 Azure。

若要複製資料表,請從具有單一自我裝載 IR 電腦的單一複製活動開始。 根據資料表中的資料配量分割數目逐漸增加 parallelCopies 設定。 根據複製作業所產生的輸送量,查看整個資料表是否可在兩小時內載入至 Azure。

如果無法在兩小時內載入至 Azure,且自我裝載 IR 節點和資料存放區的容量未完全使用,請逐漸增加並行複製活動的數目,直到達到網路限制或資料存放區的頻寬限制為止。

持續監視自我裝載 IR 電腦上的 CPU 和記憶體使用量,並準備好在看到 CPU 和記憶體已完全使用時相應增加電腦或向外延展至多部電腦。

當您遇到節流錯誤時,如 Azure Data Factory 複製活動所報告,請減少並行或 parallelCopies Azure Data Factory 中的設定,或考慮增加網路和資料存放區每秒的頻寬或 I/O 作業限制。

預估您的定價

請考慮下列管線,其建構為將資料從內部部署 Netezza 伺服器遷移至 Azure Synapse Analytics 資料庫:

The pricing pipeline

假設下列語句成立:

  • 總數據量為 50 TB(TB)。

  • 我們會使用第一個解決方案架構來遷移資料(Netezza 伺服器位於內部部署,位於防火牆後方)。

  • 50 TB 磁片區分成 500 個分割區,而每個複製活動都會移動一個分割區。

  • 每個複製活動都會針對四部機器設定一個自我裝載 IR,並達到每秒 20 MB 的輸送量(MBps)。 (在複製活動中, parallelCopies 設定為 4,而每個執行緒從資料表載入資料都會達到 5-MBps 輸送量。

  • ForEach 平行存取設定為 3,匯總輸送量為 60 MBps。

  • 總共需要 243 小時才能完成移轉。

根據上述假設,以下是預估價格:

The pricing table

注意

上表所示的定價是假設的。 您的實際定價取決於您環境中的實際輸送量。 不包含 Windows 電腦的價格(已安裝自我裝載 IR)。

其他參考

如需詳細資訊,請參閱下列文章和指南: