從 Azure 轉移資料

根據您的需求,有數個選項可以在 Azure 來回傳輸資料。

實體傳輸

下列情況適合使用實體硬體將資料傳輸至 Azure:

  • 您的網路速度很慢或不可靠。
  • 取得更多網路頻寬是成本禁止的。
  • 安全性或組織原則在處理敏感性資料時不允許輸出連線。

如果您的主要考慮是傳輸資料所需的時間,您可能會想要執行測試,以確認網路傳輸是否比實體傳輸慢。

有兩大選項可將資料實體傳輸至 Azure:

Azure 匯入/匯出服務

Azure 匯入/匯出服務可讓您藉由將內部的 SATA HDD 或 SDD 寄送到 Azure 資料中心,安全地將大量資料傳輸至 Azure Blob 儲存體或 Azure 檔案服務。 您也可以使用此服務將資料從 Azure 儲存體傳輸到硬碟,並將磁片磁碟機寄送給您以載入內部部署。

Azure 資料箱

Azure 資料箱 是 Microsoft 提供的設備,其運作方式與匯入/匯出服務非常類似。 透過資料箱,Microsoft 會提供專屬、安全且防竄改的傳輸設備,並處理可透過入口網站追蹤的端對端物流。 資料箱服務的其中一個優點是容易使用。 您不需要購買數個硬碟、讓硬碟做好準備,然後將檔案傳輸到每一個硬碟。 許多領先業界的 Azure 合作夥伴都支援資料箱,讓您更輕鬆地從其產品順暢地使用離線傳輸至雲端。

命令列工具和 API

當您想要編寫腳本和程式設計資料傳輸時,請考慮下列選項:

  • Azure CLI是一種跨平臺工具,可讓您管理 Azure 服務,並將資料上傳至儲存體。

  • AzCopy。 從 WindowsLinux 命令列使用 AzCopy,輕鬆地將資料複製到 Blob 儲存體、Azure 檔案儲存體和 Azure 資料表儲存體,並獲得最佳效能。 AzCopy 支援並行和平行處理原則,並且能夠繼續中斷的複製作業。 您也可以使用 AzCopy 將資料從 AWS 複製到 Azure。 若要以程式設計方式存取,Microsoft Azure 儲存體資料移動程式庫是支援 AzCopy 的核心架構。 它會以 .NET Core 程式庫的形式提供。

  • 使用 PowerShell時, Start-AzureStorageBlobCopy PowerShell Cmdlet 是用於 PowerShell 的 Windows 系統管理員選項。

  • AdlCopy可讓您將資料從 Blob 儲存體複製到Azure Data Lake Storage。 它也可以用來在兩個Data Lake Storage帳戶之間複製資料。 不過,它無法用來將資料從Data Lake Storage複製到 Blob 儲存體。

  • Distcp是用來將資料複製到 HDInsight 叢集儲存體, (WASB) 複製到Data Lake Storage帳戶。

  • Sqoop 是 Apache 專案,也是 Hadoop 生態系統的一部分。 它會預先安裝在所有 HDInsight 叢集上。 它可在 HDInsight 叢集與關聯式資料庫 (例如 SQL、Oracle、MySQL 等) 之間傳輸資料。 Sqoop 是相關工具的集合,包括匯入和匯出工具。 Sqoop 可搭配 HDInsight 叢集使用 Blob 儲存體或Data Lake Storage連接的儲存體。

  • PolyBase 是一種技術,可透過 T-SQL 語言存取資料庫外部的資料。 在 SQL Server 2016 中,它可讓您對 Hadoop 中的外部資料執行查詢,或從 Blob 儲存體匯入或匯出資料。 在 Azure Synapse Analytics 中,您可以從 Blob 儲存體匯入或匯出資料,以及Data Lake Storage。 目前,PolyBase 是將資料匯入至 Azure Synapse Analytics 最快的方法。

  • 當您有位於 HDInsight 叢集前端節點上的資料時,請使用 Hadoop 命令列 。 您可以使用 hadoop -copyFromLocal 命令將該資料複製到叢集的附加儲存體,例如 Blob 儲存體或Data Lake Storage。 若要使用 Hadoop 命令,您必須先連線到前端節點。 連線之後,您就可以將檔案上傳到儲存體。

圖形化介面

如果您只傳輸一些檔案或資料物件,而且不需要將程式自動化,請考慮下列選項。

  • Azure 儲存體總管是跨平台工具,可讓您管理 Azure 儲存體帳戶的內容。 它能讓您上傳、下載及管理 Blob、檔案、佇列、資料表與 Azure Cosmos DB 實體。 將它與 Blob 儲存體搭配使用,以管理 Blob 和資料夾,以及上傳和下載本機檔案系統與 Blob 儲存體之間的 Blob,或在儲存體帳戶之間上傳和下載 Blob。

  • Azure 入口網站。 Blob 儲存體和Data Lake Storage都提供 Web 型介面,以探索檔案和上傳新檔案。 如果您不想安裝工具或發出命令來快速探索檔案,或想要上傳少數新檔案,此選項是很好的選項。

資料同步和管線

  • Azure Data Factory是最適合在許多 Azure 服務、內部部署系統或兩者組合之間定期傳輸檔案的受控服務。 藉由使用 Data Factory,您可以建立和排程稱為管線的資料驅動工作流程,以從不同的資料存放區擷取資料。 Data Factory 可以使用 Azure HDInsight Hadoop、Spark、Azure Data Lake Analytics 和 Azure Machine Learning 等計算服務來處理和轉換資料。 您可以建立資料驅動工作流程,以 協調 及自動化資料移動和資料轉換。

  • Data Factory 和 Azure Synapse Analytics 中的管線和活動可用來建構資料移動和資料處理案例的端對端資料驅動工作流程。 此外,Azure Data Factory整合運行時間可用來提供跨不同網路環境的資料整合功能。

  • Azure 資料箱閘道 會從 Azure 來回傳輸資料,但它是虛擬裝置,而不是硬碟。 位於內部部署網路中的虛擬機器會使用 NFS 和 SMB 通訊協定將資料寫入資料箱閘道。 裝置接著會將您的資料傳輸到 Azure。

重要選取準則

在資料傳輸案例中,請回答下列問題來選擇適合您需求的系統:

  • 您需要傳輸大量資料,其中透過網際網路連線需要太長、不可靠或太昂貴? 如果是,請考慮實體傳輸。

  • 您是否偏好編寫資料傳輸工作的腳本,使其可重複使用? 如果是,請選取其中一個命令列選項或 Data Factory。

  • 您需要透過網路連線傳輸大量資料嗎? 如果是,請選取針對巨量資料優化的選項。

  • 您是否需要在關聯式資料庫中往/返傳輸資料? 如果是,請選擇支援一或多個關聯式資料庫的選項。 其中有些選項也需要 Hadoop 叢集。

  • 您是否需要自動化的資料管線或工作流程協調流程? 如果是,請考慮 Data Factory。

功能對照表

下表摘要列出各項功能的主要差異。

實體傳輸

功能 匯入/匯出服務 資料箱
板型規格 內部 SATA HDD 或 SDD 安全且防篡改的單一硬體設備
Microsoft 會管理運送物流
與合作夥伴的產品整合
自訂設備

命令列工具

Hadoop/HDInsight:

功能 Distcp Sqoop Hadoop CLI
已針對巨量資料最佳化
複製到關聯式資料庫
從關聯式資料庫複製
複製到 Blob 儲存體
從 Blob 儲存體複製
複製到 Data Lake Storage
從Data Lake Storage複製

其他:

功能 Azure CLI AzCopy PowerShell AdlCopy PolyBase
相容平台 Linux、OS X、Windows Linux、Windows Windows Linux、OS X、Windows SQL Server,Azure Synapse Analytics
已針對巨量資料最佳化 1 2
複製到關聯式資料庫
從關聯式資料庫複製
複製到 Blob 儲存體
從 Blob 儲存體複製
複製到 Data Lake Storage
從Data Lake Storage複製

[1] AdlCopy 已針對使用 Data Lake Analytics 帳戶來傳輸巨量資料的作業予以最佳化。

[2] PolyBase 的效能可提升,方法是將計算推送到 Hadoop 並使用 PolyBase 向外延展群組,以便能夠在 SQL Server 執行個體與 Hadoop 節點之間平行傳輸資料。

圖形化介面、資料同步和資料管線

功能 Azure 儲存體總管 Azure 入口網站 * Data Factory Data Box Gateway
已針對巨量資料最佳化
複製到關聯式資料庫
從關聯式資料庫複製
複製到 Blob 儲存體
從 Blob 儲存體複製
複製到 Data Lake Storage
從Data Lake Storage複製
上傳至 Blob 儲存體
上傳至 Data Lake Storage
協調資料傳輸
自訂資料轉換
定價模式 免費 免費 依使用量付費 按單位付費

* 在此案例中,Azure 入口網站代表 Blob 儲存體和Data Lake Storage的 Web 型探索工具。

參與者

本文由 Microsoft 維護。 最初是由下列參與者所撰寫。

主體作者:

下一步