使用 Azure Data Lake Storage Gen2 功能升級 Azure Blob 儲存體

本文可協助您啟用階層命名空間和解除鎖定功能,例如檔案和目錄層級安全性,以及提高作業速度。 這些功能廣泛使用於巨量資料分析工作負載,而且統稱為 Azure Data Lake Storage Gen2。 最受歡迎的功能包括:

  • 提高輸送量、每秒輸入/輸出作業 (IOPS) 和儲存體容量限制。

  • 加速作業 (例如重新命名作業),因為您可以在個別節點 URI 上操作。

  • 增加查詢引擎效率,只傳輸執行指定作業所需的資料。

  • 容器、目錄和檔案層級的安全性。

若要深入了解,請參閱 Azure Data Lake Storage Gen2 簡介

本文可協助您評估對工作負載、應用程式、成本、服務整合、工具、功能和文件造成的影響。 請務必仔細檢閱這些影響。 當您準備好升級帳戶時,請參閱下列逐步指南:使用 Azure Data Lake Storage Gen2 功能升級 Azure Blob 儲存體

重要

升級是單向的。 當您執行升級時,沒有任何方法可還原您的帳戶。 建議在非商業執行環境中驗證您的升級。

對可用性的影響

當升級程序完成時,請務必在帳戶中規劃一些停機時間。 在帳戶升級時,會停用寫入作業。 讀取作業不會停用,但強烈建議您暫停讀取作業,因為這些作業可能會使升級程序變得不穩定。

對工作負載和應用程式的影響

Blob API 使用具有階層命名空間的帳戶,所以只要使用這些 API,大部分與您的帳戶互動的應用程式都可以繼續運作,無需修改。

如需問題和解決方法的完整清單,請參閱 Blob 儲存體 API 的已知問題

任何使用 Windows Azure 儲存體 Blob 驅動程式 (WASB) 驅動程式的 Hadoop 工作負載,都必須修改為使用 Azure Blob File System (ABFS) 驅動程式。 不同於向 Blob 服務端點發出要求的 WASB 驅動程式,ABFS 驅動程式會向您帳戶的 Data Lake Storage 端點發出要求。

Data Lake Storage 端點

已升級的帳戶將會有 Data Lake Storage 端點。 在 Azure 入口網站中,開啟您帳戶的 [屬性] 頁面,即可尋找此端點的 URL。

General purpose v2 category

您不需要修改現有的應用程式和工作負載,即可使用該端點。 Data Lake Storage 中的多重通訊協定存取讓您可以使用 Blob 服務端點或 Data Lake Storage 端點來與資料互動。

Azure 服務和工具 (例如 AzCopy) 可能會使用 Data Lake Storage 端點與儲存體帳戶中的資料互動。 此外,您需要將這個新端點用於任何使用 Data Lake Storage Gen2 SDKPowerShell 命令Azure CLI 命令執行的作業。

Directories

沒有階層命名空間的 Blob 儲存體帳戶會以平面範例組織檔案,而不是階層式範例。 您可將 Blob 組織成虛擬目錄,以便模擬資料夾結構。 虛擬目錄會形成 Blob 名稱的一部分,並以分隔符號表示。 由於虛擬目錄是 blob 名稱的一部分,因此不會以獨立物件的形式實際存在。

您的新帳戶具有階層命名空間。 這表示目錄不是虛擬的。 這些目錄是您可以直接對其進行操作的具體獨立物件。 目錄可以在不包含任何檔案的情況下存在。 當您刪除目錄時,即會移除該目錄中的所有檔案。 您不再需要在目錄消失之前刪除每個個別的 blob。

Blob 中繼資料

在移轉之前,blob 中繼資料會與 blob 名稱及其整個虛擬路徑相關聯。 在遷移之後,中繼資料只會與 blob 相關聯。 Blob 的虛擬路徑會變成目錄集合。 Blob 的中繼資料不會套用到這些目錄。

PUT 作業

當您上傳 blob 而且您指定的路徑含有不存在的目錄時,此作業會建立該目錄,然後在其中新增 blob。 這是階層式資料夾結構內容中的一種邏輯行為。 在沒有階層命名空間的 Blob 儲存體帳戶中,此作業不會建立目錄, 而是會在 blob 的名稱中新增該目錄名稱。

列出作業

列出 Blob 作業會傳回目錄和檔案。 每個目錄和檔案會分別列出。 目錄在清單中會顯示為零長度的 blob。 在沒有階層命名空間的 Blob 儲存體帳戶中,列出 Blob 作業只會傳回 blob,而不會傳回目錄。 如果您使用 Data Lake Storage Gen2 路徑 - 列出作業,則目錄會顯示為目錄項目,而不是零長度的 blob。

項目的列出順序也會不同。 目錄和檔案會按深度優先搜尋順序顯示。 沒有階層命名空間的 Blob 儲存體帳戶會按詞彙順序列出 blob。

重新命名 blob 的作業

重新命名 blob 更有效率,因為用戶端應用程式可以在單一作業中重新命名 blob。 在沒有階層命名空間的帳戶中,工具和應用程式必須複製 blob,然後刪除來源 blob。

注意

當您重新命名 blob 時,不會更新 blob 的上次修改時間。 這是因為該 blob 的內容並未變更。

對成本的影響

執行升級不需要任何成本。 升級之後,儲存資料的成本不會變更,但交易的成本會變更。 使用這些頁面來評估比較成本。

您也可以使用 [Azure 定價計算機] 中的 [儲存體帳戶] 選項,評估升級後的成本影響。

除了價格變更之外,也請考慮與 Data Lake Storage Gen2 功能相關的成本節省。 所有權的整體總成本通常會下降,因為輸送量提高且作業經過最佳化。 提高輸送量可讓您以較少的時間傳送更多資料。 階層命名空間可提升作業的效率。

對服務整合的影響

雖然在您啟用這些功能之後,大部分的 Azure 服務整合仍會繼續運作,但其中有些服務仍處於預覽狀態或尚未受到支援。 請參閱支援 Azure Data Lake Storage Gen2 的 Azure 服務,以了解目前支援的 Azure 服務與 Data Lake Storage Gen2 整合。

對工具、功能和文件的影響

升級之後,您與某些功能互動的方式將會改變。 本節將說明這些變更。

Blob 儲存體功能支援

雖然在您啟用這些功能之後,大部分的 Blob 儲存體功能仍會繼續運作,但其中有些功能仍處於預覽狀態或尚未受到支援。

請參閱 Azure Data Lake Storage Gen2 提供的 Blob 儲存體功能,以了解目前 Data Lake Storage Gen2 提供的 Blob 儲存體功能支援。

診斷記錄

如果您啟用 [儲存體分析記錄],則現在可以選擇使用 2.0 版的記錄格式。

您不需要使用這個新版本。 不過,套用至 Data Lake Storage 端點的任何作業都只會記錄在 2.0 版記錄檔中。 您使用的某些服務和工具 (例如 AzCopy) 將使用該端點在您的帳戶上執行作業。 若要確保從所有活動中擷取記錄資訊,請考慮使用 2.0 版記錄格式。

Azure 生命週期管理

它有效地說明在移除目錄內的所有 Blob 之前,移動或刪除目錄中所有 Blob 的原則都不會刪除目錄本身,而且該目錄將於第二天移除。

事件方格

您的新帳戶有兩個端點:Data Lake Storage 端點和 Blob 服務端點。 服務、工具和應用程式可以使用任一端點來操作您的資料。 因此,事件方格所傳回的事件回應可以在 url 欄位 (描述受影響的 Blob) 中顯示這兩個端點中的任一個。

下列 JSON 顯示使用 Blob 服務端點建立 blob 時,事件回應中顯示的 blob url。

{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
  "subject": "/blobServices/default/containers/test-container/blobs/new-file.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-06-26T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
    "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
    "eTag": "\"0x8D4BCC2E4835CD0\"",
    "contentType": "text/plain",
    "contentLength": 524288,
    "blobType": "BlockBlob",
    "url": "https://my-storage-account.blob.core.windows.net/testcontainer/new-file.txt",
    "sequencer": "00000000000004420000000000028963",
    "storageDiagnostics": {
      "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}

下列 JSON 顯示使用 Data Lake Storage 端點建立 blob 時,出現在事件回應中的 blob url。

{
  "topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/my-storage-account",
  "subject": "/blobServices/default/containers/my-file-system/blobs/new-file.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-06-26T18:41:00.9584103Z",
  "id": "831e1650-001e-001b-66ab-eeb76e069631",
  "data": {
    "api": "CreateFile",
    "clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
    "requestId": "831e1650-001e-001b-66ab-eeb76e000000",
    "eTag": "\"0x8D4BCC2E4835CD0\"",
    "contentType": "text/plain",
    "contentLength": 0,
    "contentOffset": 0,
    "blobType": "BlockBlob",
    "url": "https://my-storage-account.dfs.core.windows.net/my-file-system/new-file.txt",
    "sequencer": "00000000000004420000000000028963",
    "storageDiagnostics": {
      "batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
    }
  },
  "dataVersion": "2",
  "metadataVersion": "1"
}

如果您的應用程式使用事件方格,您可能必須修改這些應用程式後才能納入考量範圍。

儲存體總管

下列按鈕尚未出現在 Azure 儲存體總管的功能區中:

Button 原因
複製 URL 尚未實作
管理快照集 尚未實作
還原 視 Data Lake Storage Gen2 尚未支援的 Blob 儲存體功能而定

下列按鈕在新帳戶中的行為不同。

Button Blob 儲存體行為 Data Lake Storage Gen2 行為
Folder 資料夾是虛擬的,如果您未在其中新增檔案,則不會顯示該資料夾。 即使沒有新增任何檔案,該資料夾依然存在。
重新命名 產生複本,然後刪除來源 blob 重新命名相同的 blob。 更有效率。

文件

如需使用 Data Lake Storage Gen2 功能的指引,請參閱這裡:Azure Data Lake Storage Gen2 簡介

關於所有現有 Blob 儲存體功能的相關指引所在位置,並沒有任何變更。 如需該指引,請參閱:Azure Blob 儲存體簡介

當您在內容集之間移動時,您會發現有些術語略有不同。 例如,Data Lake Storage Gen2 內容中的精選內容可能會使用檔案檔案系統一詞,而非 blob容器檔案檔案系統是深植於巨量資料分析世界中的詞彙,而 Data Lake Storage 在這個世界已有悠久的歷史。 內容中含有這些詞彙會讓受眾覺得可靠。 這些詞彙並不會用來描述不同的事物

下一步

當您準備好要升級您的儲存體帳戶以納入 Data Lake Storage Gen2 功能時,請參閱此逐步指南。