使用 Azure 入口網站將 Azure Data Lake Storage 從 Gen1 移轉至 Gen2
本文說明如何使用 Azure 入口網站簡化移轉。
注意
Azure Data Lake Storage Gen1 現已淘汰。 請參閱這裡的淘汰公告。Data Lake Storage Gen1 資源無法再存取。
以下是一段影片,可告訴您更多相關資訊。
章節:
00.37 - 簡介
01:16 - 準備移轉
07:15 - 複製移轉
17:40 - 複製與完成移轉
19:43 - 完成移轉
33:15 - 移轉後
開始之前,請務必閱讀Azure Data Lake Storage 移轉指導方針和模式中如何從 Gen1 移轉至 Gen2 的一般指引。
依據特定條件約束,您的帳戶可能不符合入口網站型移轉資格。 當在 Azure 入口網站中未啟用 Gen1 帳戶的 [移轉資料] 按鈕時,如果您有支援方案,則可以提出支援要求。 您也可以在 Microsoft Q&A 中取得社群專家的解答。
注意
為了方便閱讀,此文章使用 Gen1 一詞來指稱 Azure Data Lake Storage Gen1,並使用 Gen2 一詞來指稱 Azure Data Lake Storage Gen2。
步驟 1:建立具有 Gen2 功能的儲存體帳戶
Azure Data Lake Storage Gen2 不是專用的儲存體帳戶或服務類型。 其為您可透過啟用 Azure 儲存體帳戶的階層命名空間功能來取得的一組功能。 若要建立具有 Gen2 功能的帳戶,請參閱建立與 Azure Data Lake Storage Gen2 搭配使用的儲存體帳戶。
當您建立帳戶時,請務必使用下列值來進行設定。
設定 | 值 |
---|---|
儲存體帳戶名稱 | 任何您想要的名稱。 此名稱不一定要符合您的 Gen1 帳戶名稱,而且可位於您選擇的任何訂用帳戶中。 |
地點 | Data Lake Storage 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 Storage Gen2 不支援 Azure Data Lake Analytics。 Azure Data Lake Analytics 將於 2024 年 2 月 29 日淘汰。 如果您嘗試使用 Azure 入口網站來移轉用於 Azure Data Lake Analytics 的 Azure Data Lake Storage 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
登入 Azure 入口網站以開始進行操作。
找出您的 Data Lake Storage Gen1 帳戶,並顯示帳戶概觀。
選取 [移轉資料] 按鈕。
選取 [將資料複製到新的 Gen2 帳戶]。
選取核取方塊,同意 Microsoft 執行資料移轉。 然後,選取 [套用] 按鈕。
進度列隨即出現,並顯示子狀態消息。 您可以使用這些指標來量測移轉的進度。 由於完成各項工作的時間有所不同,因此進度列不會以一致速率前進。 例如,進度列可能會快速前進到 50%,但隨後需要更多時間才能完成剩餘 50%。
重要
當您的資料正在移轉時,您的 Gen1 帳戶會變成唯讀,且停用已啟用 Gen2 的帳戶。 當移轉完成之後,您就能讀取和寫入至這兩個帳戶。
您可以選取 [停止移轉] 按鈕,隨時停止移轉。
選項 2:執行完整移轉
登入 Azure 入口網站以開始進行操作。
找出您的 Data Lake Storage Gen1 帳戶,並顯示帳戶概觀。
選取 [移轉資料] 按鈕。
選取 [完成移轉至新的 Gen2 帳戶]。
選取核取方塊,同意 Microsoft 執行資料移轉。 然後,選取 [套用] 按鈕。
進度列隨即出現,並顯示子狀態消息。 您可以使用這些指標來量測移轉的進度。 由於完成各項工作的時間有所不同,因此進度列不會以一致速率前進。 例如,進度列可能會快速前進到 50%,但隨後需要更多時間才能完成剩餘 50%。
重要
當您的資料正在移轉時,您的 Gen1 帳戶會變成唯讀,且停用已啟用 Gen2 的帳戶。
此外,在重新導向 Gen1 URI 時,這兩個帳戶都會停用。
移轉完成後,您的 Gen1 帳戶將會停用。 將無法存取 Gen1 帳戶中的資料,且會在 30 天後刪除。 您的 Gen2 帳戶將可供讀取和寫入。
您可以在重新導向 URI 之前,選取 [停止移轉] 按鈕,隨時停止移轉。
步驟 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:移轉工作負載和應用程式
將工作負載中的服務設定為指向您的 Gen2 端點。 如需可協助您設定 Azure Databricks、HDInsight 及其他 Azure 服務來使用 Gen2 的文章連結,請參閱支援 Azure Data Lake Storage Gen2 的 Azure 服務。
更新應用程式以使用 Gen2 API。 請參閱下列指南:
更新指令碼,以使用 Data Lake Storage Gen2 PowerShell Cmdlet 和 Azure CLI 命令。
在程式碼檔案中,或在 Databricks 筆記本、Apache Hive HQL 檔案或用來作為工作負載一部分的任何其他檔案中,搜尋包含
adl://
字串的 URI 參考。 以新儲存體帳戶的 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 |
相容性階層不支援下列功能。
用來 ListBefore 項目的 ListStatus API 選項。
內含檔案超過 4000 個但不含接續權杖的 ListStatus API。
附加作業的區塊編碼。
任何使用
https://management.azure.com/
作為 Microsoft Entra 權杖對象的 API 呼叫。只有空格或定位點的檔案或目錄名稱,以
.
結尾,包含:
,或有多個連續的正斜線 (//
)。
常見問題集
移轉需要多久的時間?
資料和中繼資料會平行移轉。 這兩個程序中最後一個完成的時間,即為完成移轉所需的總時間。
下表顯示每個移轉處理工作的近似速度。
注意
這些只是預估的時間,可能會有所不同。 例如,複製大量的小型檔案可能會降低效能。
正在處理工作 | 速度 |
---|---|
資料複製 | 每小時 9 TB |
資料驗證 | 每小時 900 萬個檔案或資料夾 |
中繼資料複製 | 每小時 400 萬個檔案或資料夾 |
正在處理中繼資料 | 每小時 2,500 萬個檔案或資料夾 |
其他中繼資料處理 (資料複製選項)1 | 每小時 5,000 萬個檔案或資料夾 |
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 億 / 2,500 萬 = 8 小時 |
其他中繼資料處理 - 僅資料複製選項 | 2 億 / 5,000 萬 = 4 小時 |
中繼資料移轉時間總計 | 50 + 8 + 4 = 62 小時 |
執行僅限資料移轉的總時間 | 62 小時 |
執行完整移轉的總時間 | 62 - 4 = 58 小時 |
範例:處理少量資料和中繼資料
此範例假設有 2 TB 的資料和 56,000 個資料和中繼資料項目。
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 / 2,500 萬 = 8 秒 |
其他中繼資料處理 - 僅資料複製選項 | (56,000 / 5,000 萬) * 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 Storage Gen2。
下一步
- 了解一般移轉。 如需詳細資訊,請參閱將 Azure Data Lake Storage 從 Gen1 移轉至 Gen2。