使用 Azure 入口網站,將 Azure Data Lake 儲存體 從 Gen1 遷移至 Gen2

本文說明如何使用 Azure 入口網站 簡化移轉。

注意

Azure Data Lake 儲存體 Gen1 現已淘汰。 請參閱這裡的淘汰公告。 Data Lake 儲存體 Gen1 資源無法再存取。 如果您需要特殊協助,請 與我們連絡。

以下是一段影片,告訴您更多相關信息。

     章節


  • 00.37 - 簡介

  • 01:16 - 準備移轉

  • 07:15 - 複製移轉

  • 17:40 - 複製與完成移轉

  • 19:43 - 完成移轉

  • 33:15 - 移轉後

開始之前,請務必閱讀如何在 Azure Data Lake 中從 Gen1 移轉至 Gen2 的一般指引,儲存體 移轉指導方針和模式

您的帳戶可能不符合根據特定條件約束的入口網站型移轉資格。 當您的 Gen1 帳戶 Azure 入口網站 中未啟用 [移轉數據] 按鈕時,如果您有支援方案,您可以提出支援要求。 您也可以從 Microsoft Q&A 中的社群專家取得答案。

注意

為了方便閱讀,本文會使用 Gen1 一詞來參考 Azure Data Lake 儲存體 Gen1,而 Gen2 一詞則參考 Azure Data Lake 儲存體 Gen2

步驟 1:建立具有 Gen2 功能的記憶體帳戶

Azure Data Lake 儲存體 Gen2 不是專用的記憶體帳戶或服務類型。 這是一組功能,您可以藉由啟用 Azure 記憶體帳戶的階層命名空間 功能來取得。 若要建立具有 Gen2 功能的帳戶,請參閱建立記憶體帳戶以搭配 Azure Data Lake 儲存體 Gen2 使用。

當您建立帳戶時,請務必使用下列值來設定設定。

設定
儲存體帳戶名稱 您想要的任何名稱。 此名稱不需要符合 Gen1 帳戶的名稱,而且可以位於您選擇的任何訂用帳戶中。
地點 Data Lake 儲存體 Gen1 帳戶所使用的相同區域
複寫 LRS 或 ZRS
最低 TLS 版本 1.0
NFS v3 停用
階層命名空間 已啟用

注意

Azure 入口網站中的移轉工具不會移動帳戶設定。 因此,建立帳戶之後,您必須手動設定設定,例如加密、網路防火牆、數據保護。

重要

請確定您使用沒有使用歷程記錄的全新新建立記憶體帳戶。 請勿 移轉至先前使用的帳戶,或使用已刪除容器的帳戶,讓帳戶空白。

步驟 2:驗證 Azure 角色型存取控制 (Azure RBAC) 角色指派

針對 Gen2,請確定 儲存體 Blob 數據擁有者角色已指派給記憶體帳戶、父資源群組或訂用帳戶範圍內的 Microsoft Entra 使用者身分識別。

針對 Gen1,請確定 擁有者 角色已指派給 Gen1 帳戶、父資源群組或訂用帳戶範圍內的 Microsoft Entra 身分識別。

步驟 3:移轉 Azure Data Lake Analytics 工作負載

Azure Data Lake 儲存體 Gen2 不支援 Azure Data Lake Analytics。 Azure Data Lake Analytics 將於 2024 年 2 月 29 日淘汰 。 如果您嘗試使用 Azure 入口網站 來移轉用於 Azure Data Lake Analytics 的 Azure Data Lake 儲存體 Gen1 帳戶,您有可能中斷 Azure Data Lake Analytics 工作負載。 您必須先 將 Azure Data Lake Analytics 工作負載移轉至 Azure Synapse Analytics 或其他支援的計算平臺,再嘗試移轉 Gen1 帳戶。

如需詳細資訊,請參閱使用 Azure 入口網站 管理 Azure Data Lake Analytics。

步驟 4:準備 Gen1 帳戶

只有空格或索引標籤的檔案或目錄名稱,結尾 .為 ,其中包含 :,或具有多個連續正斜線 (//) 與 Gen2 不相容。 您需要在移轉之前重新命名這些檔案或目錄。

為了獲得較佳的效能,請考慮將移轉延遲至少十天,從上次刪除作業的時間開始。 在 Gen1 帳戶中,已刪除的檔案會變成 刪除的檔案,而且垃圾收集行程不會在七天后永久移除這些檔案,而且需要幾天才能處理清除。 清除所需的時間將取決於檔案數目。 移轉期間會處理所有檔案,包括虛刪除的檔案。 如果您等到垃圾收集行程已永久移除已刪除的檔案,您的等候時間可能會改善。

步驟 5:執行移轉

開始之前,請檢閱下列兩個移轉選項,並決定是否只將數據從 Gen1 複製到 Gen2(建議)或執行完整的移轉。

選項 1:僅複製資料(建議)。 在此選項中,數據會從 Gen1 複製到 Gen2。 複製數據時,Gen1 帳戶會變成唯讀。 複製數據之後,即可存取 Gen1 和 Gen2 帳戶。 不過,您必須更新應用程式和計算工作負載,才能使用新的 Gen2 端點。

選項 2:執行完整的移轉。 在此選項中,數據會從 Gen1 複製到 Gen2。 複製數據之後,來自 Gen1 帳戶的所有流量都會重新導向至已啟用 Gen2 的帳戶。 重新導向的要求會使用 Gen1 相容性層 ,將 Gen1 API 呼叫轉譯為 Gen2 對等專案。 在移轉期間,Gen1 帳戶會變成唯讀。 移轉完成後,將無法存取 Gen1 帳戶。

無論您選擇哪一個選項,在您移轉並確認所有工作負載如預期般運作之後,您都可以刪除 Gen1 帳戶。

選項 1:將資料從 Gen1 複製到 Gen2

  1. 登入 Azure 入口網站以開始進行操作。

  2. 找出 Data Lake 儲存體 Gen1 帳戶,並顯示帳戶概觀。

  3. 選取 [移轉 資料] 按鈕。

    Screenshot of the button to migrate.

  4. 選取 [ 將數據複製到新的 Gen2 帳戶]。

    Screenshot of the copy data option.

  5. 選取複選框,讓 Microsoft 同意執行數據遷移。 然後,選取 [ 套用] 按鈕。

    Screenshot of the checkbox to provide consent.

    進度列隨即出現,並顯示子狀態消息。 您可以使用這些指標來測量移轉的進度。 因為完成每個工作的時間會有所不同,因此進度列不會以一致的速率前進。 例如,進度列可能會快速前進到50%,但再花一點時間才能完成剩餘的50%。

    Screenshot of progress bar when migrating data.

    重要

    移轉數據時,您的 Gen1 帳戶會變成唯讀,且已啟用 Gen2 的帳戶已停用。 移轉完成時,您可以讀取和寫入這兩個帳戶。

    您可以選取 [停止移轉] 按鈕,隨時停止移 轉。

    Screenshot of the stop migration option.

選項 2:執行完整移轉

  1. 登入 Azure 入口網站以開始進行操作。

  2. 找出 Data Lake 儲存體 Gen1 帳戶,並顯示帳戶概觀。

  3. 選取 [移轉 資料] 按鈕。

    Screenshot of the migrate button.

  4. 選取 [ 完成移轉至新的 Gen2 帳戶]。

    Screenshot of the complete migration option.

  5. 選取複選框,讓 Microsoft 同意執行數據遷移。 然後,選取 [ 套用] 按鈕。

    Screenshot of the consent checkbox.

    進度列隨即出現,並顯示子狀態消息。 您可以使用這些指標來測量移轉的進度。 因為完成每個工作的時間會有所不同,因此進度列不會以一致的速率前進。 例如,進度列可能會快速前進到50%,但再花一點時間才能完成剩餘的50%。

    Screenshot of progress bar when performing a complete migration.

    重要

    移轉數據時,Gen1 帳戶會變成只讀,且已啟用 Gen2 的帳戶已停用。

    此外,當 Gen1 URI 重新導向時,會停用這兩個帳戶。

    移轉完成時,將會停用您的 Gen1 帳戶。 無法存取 Gen1 帳戶中的數據,將在 30 天后刪除。 您的 Gen2 帳戶將可用於讀取和寫入。

    您可以選取 [停止移轉] 按鈕,在 URI 重新導向之前隨時停止移 轉。

    Screenshot of the migration stop button.

步驟 6:確認移轉已完成

如果移轉順利完成,則會在已啟用 Gen2 的帳戶中建立名為 gen1 的容器,而 Gen1 帳戶中的所有數據都會複製到這個新的 gen1 容器。 若要在 Gen1 上存在的路徑上尋找數據,您必須將前置詞 gen1/ 新增至相同的路徑,才能在 Gen2 上存取它。 例如,Gen1 上名為 'FolderRoot/FolderChild/FileName.csv' 的路徑將於 Gen2 上的 'gen1/FolderRoot/FolderChild/FileName.csv' 取得。 無法在 Gen2 上重新命名容器名稱,因此無法在移轉後重新命名 Gen2 上的這個 gen1 容器。 不過,如有需要,可以將數據複製到 Gen2 中的新容器。

如果移轉未順利完成,會出現一則訊息,指出移轉因不相容而停滯。 如果您想要下一個步驟的協助,請連絡 Microsoft 支援服務。 如果先前使用 Gen2 的帳戶,或 Gen1 帳戶中的檔案和目錄使用不相容的命名慣例,就會出現此訊息。

連絡支持人員之前,請確定您使用的是沒有使用歷程記錄的新建立記憶體帳戶。 請避免移轉至先前使用的帳戶或已刪除容器的帳戶,讓帳戶成為空白。 在您的 Gen1 帳戶中,請確定您重新命名任何只包含空格或索引標籤的檔案或目錄名稱、結尾 .為 、包含 :或包含多個正斜線 (//)。

步驟 7:移轉工作負載和應用程式

  1. 設定 工作負載 中的服務,以指向您的 Gen2 端點。 如需可協助您設定 Azure Databricks、HDInsight 和其他 Azure 服務以使用 Gen2 的文章連結,請參閱支援 Azure Data Lake 儲存體 Gen2 的 Azure 服務。

  2. 更新應用程式以使用 Gen2 API。 請參閱下列指南:

    環境 文章
    Azure 儲存體總管 使用 Azure 儲存體 Explorer 來管理 Azure Data Lake 儲存體 Gen2 中的目錄和檔案
    .NET 使用 .NET 來管理 Azure Data Lake 儲存體 Gen2 中的目錄和檔案
    Java 使用 Java 來管理 Azure Data Lake 儲存體 Gen2 中的目錄和檔案
    Python 使用 Python 來管理 Azure Data Lake 儲存體 Gen2 中的目錄和檔案
    JavaScript (Node.js) 在 Node.js 中使用 JavaScript SDK 來管理 Azure Data Lake 儲存體 Gen2 中的目錄和檔案
    REST API Azure Data Lake Store REST API
  3. 更新腳本以使用 Data Lake 儲存體 Gen2 PowerShell CmdletAzure CLI 命令

  4. 搜尋 URI 參考,其中包含程式代碼檔案中的字串 adl:// ,或 Databricks 筆記本、Apache Hive HQL 檔案或任何其他用來作為工作負載一部分的檔案。 以新記憶體帳戶的 Gen2 格式 URI 取代這些參考。 例如:Gen1 URI: adl://mydatalakestore.azuredatalakestore.net/mydirectory/myfile 可能會變成 abfss://myfilesystem@mydatalakestore.dfs.core.windows.net/mydirectory/myfile

Gen1 相容性層

此層會嘗試在移轉期間提供 Gen1 與 Gen2 之間的應用程式相容性,讓應用程式能夠繼續使用 Gen1 API 與已啟用 Gen2 的帳戶中的數據互動。 如果您使用此方法作為移轉的一部分,此層的功能有限,建議您使用測試帳戶來驗證工作負載。 相容性層會在伺服器上執行,因此不會安裝任何專案。

重要

Microsoft 不建議將這項功能取代為移轉工作負載和應用程式。 當 Gen1 於 2024 年 2 月 29 日淘汰時,Gen1 相容性層的支援將會結束。

若要遇到相容性層最少的問題,請確定您的 Gen1 SDK 使用下列版本 (或更新版本)。

語言 SDK 版本
.NET 2.3.9
Java 1.1.21
Python 0.0.51

相容性層不支援下列功能。

  • ListStatus API 選項為 ListBefore 專案。

  • 具有超過 4,000 個檔案且沒有接續令牌的 ListStatus API。

  • 附加作業的區塊編碼。

  • 作為 https://management.azure.com/ Microsoft Entra 令牌物件的任何 API 呼叫。

  • 只有空格或索引標籤的檔案或目錄名稱,結尾 .為 ,其中包含 :,或具有多個連續正斜線 (//)。

常見問題集

移轉需要多久時間?

數據與元數據會以平行的方式移轉。 完成移轉所需的總時間等於這兩個程序最後完成的時間。

下表顯示每個移轉處理工作的近似速度。

注意

這些時間估計值是近似值,而且可能會有所不同。 例如,複製大量小型檔案可能會降低效能。

處理工作 速度
資料複製 每小時 9 TB
資料驗證 每小時900萬個檔案或資料夾
元數據複製 每小時 400 萬個檔案或資料夾
元數據處理 每小時 2500 萬個檔案或資料夾
其他元數據處理 (資料複製選項)1 每小時 5000 萬個檔案或資料夾

1 只有在您選擇 [ 將數據複製到新的 Gen2 帳戶 ] 選項時,才會套用額外的元數據處理時間。 如果您選擇 [完成移轉至新的 gen2 帳戶 ] 選項,則不適用此處理時間。

範例:處理大量數據和元數據

此範例假設 有 300 TB 的數據和 2 億 個數據和元數據專案。

Task 估計時間
複製資料 300 TB / 9 TB = 33.33 小時
驗證資料 2 億 / 900 萬 = 22.22 小時
數據遷移時間總計 33.33 + 22.2 = 55.55 小時
複製元數據 2 億 / 400 萬 = 50 小時
元數據處理 2 億 / 2500 萬 = 8 小時
其他元數據處理 - 僅限數據複製選項 2 億 / 5000 萬 = 4 小時
元數據移轉時間總計 50 + 8 + 4 = 62 小時
執行僅限數據移轉的總時間 62 小時
執行完整移轉的總時間 62 - 4 = 58 小時
範例:處理少量數據和元數據

此範例假設 有 2 TB 的數據和 56 千 個數據和元數據專案。

Task 估計時間
複製資料 (2 TB / 9 TB) * 60 分鐘 = 13.3 分鐘
驗證資料 (56,000 / 900 萬) * 3,600 秒 = 22.4 秒
數據遷移時間總計 13.3 分鐘 + 22.4 秒 = 大約 14 分鐘
複製元數據 (56,000 / 400 萬) * 3,600 秒 = 大約 51 秒
元數據處理 56,000/ 2500 萬 = 8 秒
其他元數據處理 - 僅限數據複製選項 (56,000 / 5000 萬) * 3,600 秒 = 4 秒
元數據移轉時間總計 51 + 8 + 4 = 63 秒
執行僅限數據移轉的總時間 14 分鐘
執行完整移轉的總時間 14 分鐘 - 4 秒 = 13 分 56 秒 (大約 14 分鐘)

數據遷移的成本是多少?

使用入口網站型移轉工具不需要任何費用,不過,您將需支付 Azure Data Lake Gen1 和 Gen2 服務的使用量費用。 在數據遷移期間,您將需支付 Gen1 帳戶的數據記憶體和交易費用。

移轉后,如果您選擇只複製數據的選項,則會針對 Azure Data Lake Gen1 和 Gen2 帳戶的數據記憶體和交易計費。 若要避免支付 Gen1 帳戶的費用,請在更新應用程式以指向 Gen2 之後刪除 Gen1 帳戶。 如果您選擇執行完整移轉,則只會針對已啟用 Gen2 的帳戶的數據儲存和交易計費。

請確定所有 Azure Data Lake Analytics 帳戶都 已移轉至 Azure Synapse Analytics 或其他支援的計算平臺。 移轉 Azure Data Lake Analytics 帳戶之後,請重試同意。 如果您進一步看到問題,而且您有支援方案,您可以 提出支援要求。 您也可以從 Microsoft Q&A 中的社群專家取得答案。

移轉完成之後,是否可以回到使用 Gen1 帳戶?

如果您使用 選項 1:將數據從 Gen1 複製到上述 Gen2 ,則移轉後,Gen1 和 Gen2 帳戶都可用於讀取和寫入。 不過,如果您使用 選項 2:執行完整的移轉,則不支援返回 Gen1 帳戶。 在選項 2 中,移轉完成後,無法存取 Gen1 帳戶中的數據,而且會在 30 天后刪除。 您可以在 Azure 入口網站 中繼續檢視 Gen1 帳戶,而且當您準備好時,可以刪除 Gen1 帳戶。

我想在已啟用 Gen2 的帳戶上啟用異地備援記憶體 (GRS)。 如何? 這麼做嗎?

移轉完成後,只要您不打算使用應用程式相容性層,就可以在 [複製數據] 和 [完成移轉] 選項中,繼續將備援選項變更為 GRS。 應用程式相容性不適用於使用 GRS 備援的帳戶。

Gen1 沒有容器,Gen2 有容器 -- 我應該期待什麼?

當我們將數據複製到已啟用 Gen2 的帳戶時,我們會自動建立名為 『Gen1』 的容器。 在 Gen2 容器名稱中無法重新命名,因此移轉後數據可以視需要複製到 Gen2 中的新容器。

在移轉效能方面,我該考慮什麼?

當您將數據複製到已啟用 Gen2 的帳戶時,可能會影響效能的兩個因素是檔案數目和您擁有的元數據數量。 例如,許多小型檔案可能會影響移轉的效能。

移轉后 Gen2 帳戶是否會支援 WebHDFS 檔案系統 API?

Gen2 支援 Gen1 的 WebHDFS 檔案系統 API,但有某些偏差,且只有有限的功能可透過相容性層支援。 客戶應該計劃利用 Gen2 特定 API 來提升效能和功能。

淘汰日期之後,我的 Gen1 帳戶會發生什麼事?

帳戶變得無法存取。 您將無法:

  • 管理帳戶

  • 存取帳戶中的數據

  • 接收 Gen1 或 Gen1 API、SDK 或用戶端工具的服務更新

  • 透過電話或電子郵件在線存取 Gen1 客戶支援

請參閱必要動作:在 2024 年 2 月 29 日前切換至 Azure Data Lake 儲存體 Gen2。

下一步