Azure Data Lake 儲存體 移轉指導方針和模式

您可以將您的數據、工作負載和應用程式從 Azure Data Lake 儲存體 Gen1 遷移至 Azure Data Lake 儲存體 Gen2。 本文說明建議的移轉方法,並涵蓋不同的移轉模式和使用時機。 為了方便閱讀,本文使用 Gen1 一詞來參考 Azure Data Lake 儲存體 Gen1,以及參考 Azure Data Lake 儲存體 Gen2 一詞的 Gen2

注意

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

Azure Data Lake 儲存體 Gen2 建置在 Azure Blob 記憶體,並提供一組專用於巨量數據分析的功能。 Data Lake 儲存體 Gen2 結合來自 Azure Data Lake 儲存體 Gen1 的功能,例如文件系統語意、目錄和檔案層級安全性,並使用低成本、階層式記憶體、高可用性/災害復原功能從 Azure Blob 記憶體調整。

注意

因為 Gen1 和 Gen2 是不同的服務,因此沒有就地升級體驗。 若要使用 Azure 入口網站 簡化移轉至 Gen2 的作業,請參閱使用 Azure 入口網站 將 Azure Data Lake 儲存體 從 Gen1 遷移至 Gen2。

若要從 Gen1 移轉至 Gen2,我們建議使用下列方法。

步驟 1:評估整備程度

步驟 2:準備移轉

步驟 3:移轉資料和應用程式工作負載

步驟 4:從 Gen1 完全移轉至 Gen2

步驟 1:評估整備程度

  1. 瞭解 Data Lake 儲存體 Gen2 供應專案;其優點、成本和一般架構。

  2. 比較 Gen1 的功能與 Gen2 的功能。

  3. 檢閱已知問題清單,以評估功能中的任何差距。

  4. Gen2 支援 Blob 記憶體功能,例如 診斷記錄存取層Blob 記憶體生命週期管理原則。 如果您有興趣使用任何這些功能,請檢閱 目前的支援層級。

  5. 檢閱 Azure 生態系統支援的目前狀態,以確保 Gen2 支援您解決方案相依的任何服務。

步驟 2:準備移轉

  1. 識別您要移轉的數據集。

    請利用這個機會清除您不再使用的數據集。 除非您打算一次移轉所有數據,否則請花時間找出您可以分階段移轉的數據邏輯群組。

    在您的 Gen1 帳戶上執行過時分析 (或類似的),以識別哪些檔案或資料夾長時間停留在清查中,或可能已過時。

  2. 判斷移轉對您的企業的影響。

    例如,請考慮您是否能夠在移轉發生時承受任何停機時間。 這些考慮可協助您識別適當的移轉模式,並選擇最適合的工具。

  3. 建立移轉計劃。

    我們建議使用這些 移轉模式。 您可以選擇其中一種模式、將它們結合在一起,或自行設計自定義模式。

步驟 3:移轉數據、工作負載和應用程式

使用您偏好的模式來遷移數據、工作負載和應用程式。 建議您以累加方式驗證案例。

  1. 建立記憶體帳戶 並啟用階層命名空間功能。

  2. 移轉您的數據。

  3. 設定 工作負載 中的服務,以指向您的 Gen2 端點。

    針對 HDInsight 叢集,您可以將記憶體帳戶組態設定新增至 %HADOOP_HOME%/conf/core-site.xml 檔案。 如果您打算將外部Hive資料表從 Gen1 移轉至 Gen2,請務必將記憶體帳戶設定新增至 %HIVE_CONF_DIR%/hive-site.xml 檔案。

    您可以使用 Apache Ambari 修改每個檔案的設定。 若要尋找記憶體帳戶設定,請參閱 Hadoop Azure 支援:ABFS — Azure Data Lake 儲存體 Gen2。 這個範例會 fs.azure.account.key 使用 設定來啟用共享金鑰授權:

    <property>
      <name>fs.azure.account.key.abfswales1.dfs.core.windows.net</name>
      <value>your-key-goes-here</value>
    </property>
    

    如需可協助您設定 HDInsight、Azure Databricks 和其他 Azure 服務以使用 Gen2 的文章連結,請參閱支援 Azure Data Lake 儲存體 Gen2 的 Azure 服務。

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

環境 文章
Azure 儲存體總管 使用 Azure 儲存體 總管來管理 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
  1. 更新腳本以使用 Data Lake 儲存體 Gen2 PowerShell CmdletAzure CLI 命令

  2. 搜尋 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

  3. 設定帳戶的安全性,以包含 Azure 角色檔案和資料夾層級安全性,以及 Azure 儲存體 防火牆和虛擬網路

步驟 4:從 Gen1 完全移轉至 Gen2

確信您的應用程式和工作負載在 Gen2 上穩定之後,您就可以開始使用 Gen2 來滿足商務案例。 關閉在 Gen1 上執行並解除委任 Gen1 帳戶的任何剩餘管線。

Gen1 與 Gen2 功能

下表將 Gen1 的功能與 Gen2 的功能進行比較。

區域 Gen1 Gen2
資料組織 階層命名空間
檔案和資料夾支援
階層命名空間
容器、檔案和資料夾支援
異地備援 LRS LRS、ZRSGRSRA-GRS
驗證 Microsoft Entra 受控識別
服務主體
Microsoft Entra 受控識別
服務主體
共用存取金鑰
授權 管理 - Azure RBAC
數據 - ACL
管理 - Azure RBAC
數據 - ACLAzure RBAC
加密 - 待用數據 伺服器端 - 使用 Microsoft 管理的 金鑰或 客戶管理的 金鑰 伺服器端 - 使用 Microsoft 管理的 金鑰或 客戶管理的 金鑰
VNET 支援 VNET 整合 服務端點私人端點
開發人員體驗 REST.NETJavaPythonPowerShellAzure CLI 正式推出 - REST、.NET、JavaPython
公開預覽 - JavaScriptPowerShellAzure CLI
資源記錄 傳統記錄
Azure 監視器整合
傳統記錄 - 正式推出
Azure 監視器整合 - 預覽
生態系統 HDInsight (3.6)Azure Databricks (3.1 和更新版本)、Azure Synapse AnalyticsADF HDInsight (3.6,4.0)Azure Databricks (5.1 和更新版本)Azure Synapse AnalyticsADF

Gen1 到 Gen2 模式

選擇移轉模式,然後視需要修改該模式。

移轉模式 詳細資料
隨即轉移 最簡單的模式。 如果您的數據管線可以承受停機時間,則理想。
累加複製 類似於 隨即轉移,但停機時間較少。 適用於需要較長時間才能複製的大量數據。
雙重管線 適用於無法承受任何停機時間的管線。
雙向同步處理 類似於 雙重管線,但採用更階段的方法適用於更複雜的管線。

讓我們進一步瞭解每個模式。

隨即轉移模式

這是最簡單的模式。

  1. 停止所有寫入 Gen1。

  2. 將數據從 Gen1 移至 Gen2。 我們建議使用 Azure Data Factory 或使用 Azure 入口網站。 ACL 會與數據一起複製。

  3. 將作業和工作負載點內嵌至 Gen2。

  4. 解除委任 Gen1。

請查看我們的範例程式代碼,瞭解我們的隨即轉移和移轉範例中的隨即轉移模式。

Diagram of the lift and shift pattern.

使用隨即轉移模式的考慮

  • 同時將所有工作負載從 Gen1 完全移轉至 Gen2。

  • 預期在移轉期間和完全移轉期間停機。

  • 適用於可承受停機時間的管線,而且所有應用程式都可以一次升級。

提示

請考慮使用 Azure 入口網站 來縮短停機時間,並減少完成移轉所需的步驟數目。

累加複製模式

  1. 開始將數據從 Gen1 移至 Gen2。 我們建議 使用 Azure Data Factory。 ACL 會與數據一起複製。

  2. 以累加方式從 Gen1 複製新數據。

  3. 複製所有數據之後,請停止所有寫入 Gen1,並將工作負載指向 Gen2。

  4. 解除委任 Gen1。

請查看我們的範例程式代碼,以取得累加複製移轉範例中的累加複製模式。

Diagram of the incremental copy pattern.

使用累加複製模式的考慮

  • 同時將所有工作負載從 Gen1 完全移轉至 Gen2。

  • 預期只會在完全移轉期間停機。

  • 適用於一次升級所有應用程式的管線,但數據複製需要更多時間。

雙重管線模式

  1. 將數據從 Gen1 移至 Gen2。 我們建議 使用 Azure Data Factory。 ACL 會與數據一起複製。

  2. 將新數據內嵌至 Gen1 和 Gen2。

  3. 將工作負載指向 Gen2。

  4. 停止所有寫入 Gen1,然後解除委任 Gen1。

請參閱雙重管線移轉範例中的雙重管線模式範例程序代碼。

Diagram of the dual pipeline pattern.

使用雙重管線模式的考慮

  • Gen1 和 Gen2 管線會並存執行。

  • 支援零停機時間。

  • 在工作負載和應用程式負擔不起任何停機時間的情況下理想,而且您可以內嵌到這兩個記憶體帳戶。

雙向同步模式

  1. 設定 Gen1 與 Gen2 之間的雙向複寫。 我們建議 使用 WanDisco。 它提供現有數據的修復功能。

  2. 當所有移動都完成時,請停止所有寫入 Gen1 並關閉雙向複寫。

  3. 解除委任 Gen1。

請參閱雙向同步移轉範例中的雙向同步模式範例程序代碼。

Diagram of the bidirectional pattern.

使用雙向同步模式的考慮

  • 適用於牽涉到大量管線和相依性的複雜案例,其中階段式方法可能更有意義。

  • 移轉工作很高,但它提供 Gen1 和 Gen2 的並存支援。

下一步

另請參閱