匯入資料資產 (預覽)

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

在本文中,您將瞭解如何從外部來源將數據匯入 Azure 機器學習 平臺。 成功的數據匯入會自動建立並註冊 Azure 機器學習 數據資產,其中包含該匯入期間提供的名稱。 Azure Machine Learning 資料資產類似於網頁瀏覽器書籤 (我的最愛)。 您不需要記住指向您最常使用之資料的長儲存體路徑 (URI)。 相反地,您可以建立資料資產,然後使用自訂名稱存取該資產。

資料匯入會建立來源資料與中繼資料的快取,以在 Azure Machine Learning 定型作業中更快且可靠地存取資料。 資料快取可避免網路和連線限制。 快取的資料已設定版本,以支援重現性。 這會針對從 SQL Server 來源匯入的資料,提供版本設定功能。 此外,快取的資料會提供資料譜系以進行稽核工作。 資料匯入會在幕後使用 ADF (Azure Data Factory 管線),這表示使用者可以避免與 ADF 進行複雜的互動。 在幕後,Azure Machine Learning 也會管理 ADF 計算資源集區大小、計算資源佈建和卸除,藉由判斷適當的平行處理來最佳化資料傳輸。

傳輸的數據會分割並安全地儲存為 Azure 記憶體中的 parquet 檔案。 這可在定型期間加速處理。 ADF 計算成本只涉及資料傳輸所用的時間。 儲存體成本只與快取資料所需的時間有關,因為快取的資料是從外部來源匯入的資料複本。 Azure 儲存體裝載該外部來源。

快取功能與預先計算和儲存體成本有關。 不過,相較於在定型期間直接連線到外部來源資料,其會自行支付費用,而且可以節省成本,因為其可減少週期性定型計算成本。 其會將資料快取為 parquet 檔案,讓作業定型更快速且更可靠,以防止較大型資料集發生連線逾時。 這會減少重新執行次數,並降低低定型失敗次數。

您可以從 Amazon S3、Azure SQL 和 Snowflake 匯入資料。

重要

此功能目前處於公開預覽。 此預覽版本沒有服務等級協定,不建議用於處理生產工作負載。 可能不支援特定功能,或可能已經限制功能。

如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

必要條件

若要建立並使用資料資產,您需要:

注意

若要成功匯入數據,請確認您已安裝適用於 SDK 的最新 azure-ai-ml 套件(1.15.0 版或更新版本),以及 ml 擴充功能(2.15.1 版或更新版本)。

如果您有較舊的 SDK 套件或 CLI 擴充功能,請移除舊版本,並使用索引標籤區段中所示的程式碼來安裝新套件。 請遵循 SDK 和 CLI 的指示操作,如下所示:

程式碼版本

az extension remove -n ml
az extension add -n ml --yes
az extension show -n ml #(the version value needs to be 2.15.1 or later)

從外部資料庫匯入為 mltable 資料資產

注意

外部資料庫可以有 Snowflake、Azure SQL 等格式。

下列程式碼範例可從外部資料庫匯入資料。 處理匯入動作的 connection 會決定外部資料庫資料來源中繼資料。 在此範例中,程式碼從 Snowflake 資源匯入資料。 連線指向 Snowflake 來源。 只要輕微修改,連線便可指向 Azure SQL 資料庫來源和 Azure SQL 資料庫來源。 從外部資料庫來源匯入的資產 typemltable

建立 YAML 檔案 <file-name>.yml

$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# Datastore: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}


type: mltable
name: <name>
source:
  type: database
  query: <query>
  connection: <connection>
path: <path>

接下來,在 CLI 中執行下列命令:

> az ml data import -f <file-name>.yml

從外部檔案系統匯入資料,作為資料夾資料資產

注意

Amazon S3 資料資源可作為外部檔案系統資源。

connection處理數據匯入動作的 會決定外部數據源的各個層面。 連線會將 Amazon S3 貯體定義為目標。 連線需要有效的 path 值。 從外部檔案系統來源匯入的資產值具有 uri_foldertype

下一個程式碼範例會從 Amazon S3 資源匯入資料。

建立 YAML 檔案 <file-name>.yml

$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}


type: uri_folder
name: <name>
source:
  type: file_system
  path: <path_on_source>
  connection: <connection>
path: <path>

接下來,在 CLI 中執行此命令:

> az ml data import -f <file-name>.yml

檢查外部資料來源的匯入狀態

資料匯入動作是非同步動作。 可能需要很長的時間。 透過 CLI 或 SDK 提交匯入資料動作之後,Azure Machine Learning 服務可能需要幾分鐘的時間才能連線到外部資料來源。 然後,服務會啟動資料匯入,並處理資料快取和註冊。 資料匯入所需的時間也取決於來源資料集的大小。

下一個範例會傳回已提交之資料匯入活動的狀態。 命令或方法會使用「資料資產」名稱作為輸入,以判斷資料具體化的狀態。

> az ml data list-materialization-status --name <name>

下一步