適用対象:
Azure CLI ml 拡張機能 v2 (現行)
Python SDK azure-ai-ml v2 (現行)
Warnung
Azure Machine Learning の外部ソース (プレビュー) とデータ接続 (プレビュー) からのデータのインポートは非推奨となり、2026 年 9 月 30 日以降は使用できません。 それまでは、中断することなくこれらの機能を引き続き使用できます。 その日を過ぎると、それらに依存するすべてのワークロードが中断されます。
推奨されるアクション: 外部データインポートを Microsoft Fabric に移行し、Azure Machine Learning データストアを使用して Azure Machine Learning でデータを使用できるようにします。
この記事では、外部ソースから Azure Machine Learning プラットフォームにデータをインポートする方法について説明します。 データのインポートが成功すると、Azure Machine Learning データ資産が自動的に作成され、そのインポート時に指定した名前で登録されます。 Azure Machine Learning データ資産は、Web ブラウザーのブックマーク (お気に入り) に似ています。 最も頻繁に使用されるデータを指す長いストレージ パス (URI) を覚える必要はありません。 代わりに、データ資産を作成し、フレンドリ名を使用してその資産にアクセスできます。
データインポートでは、Azure Machine Learning トレーニング ジョブでのデータ アクセスを高速化し、信頼性を高めるために、ソース データのキャッシュとメタデータが作成されます。 データ キャッシュにより、ネットワークと接続の制約が回避されます。 キャッシュされたデータは、再現性をサポートするためにバージョン管理されます。 この機能は、SQL Server ソースからインポートされたデータのバージョン管理機能を提供します。 さらに、キャッシュされたデータにより、タスクを監査するためのデータ系列が提供されます。 データインポートでは、バックグラウンドで Azure Data Factory (ADF) パイプラインが使用されるため、ADF との複雑な対話を回避できます。 Azure Machine Learning では、ADF コンピューティング リソース プールのサイズ、コンピューティング リソースのプロビジョニング、破棄の管理も処理されます。 この管理は、適切な並列化を決定することでデータ転送を最適化します。
転送されたデータはパーティション分割され、Azure Storage に Parquet ファイルとして安全に格納されます。 このストレージにより、トレーニング中の処理が高速化されます。 ADF コンピューティング コストには、データ転送に使用される時間のみが含まれます。 キャッシュされたデータは外部ソースからインポートされたデータのコピーであるため、ストレージ コストにはデータのキャッシュに必要な時間のみが含まれます。 Azure Storage によって、その外部ソースがホストされます。
キャッシュ機能には、前払いのコンピューティング コストとストレージ コストが含まれます。 しかしながら、トレーニング中に外部ソース データに直接接続する場合と比較して、トレーニングのコンピューティング コストが繰り返し発生することが減少するため、元が取れ、費用を節約できます。 データは Parquet ファイルとしてキャッシュされるため、より大きなデータ セットの接続タイムアウトに対するジョブ トレーニングの速度と信頼性が向上します。 このキャッシュにより、再実行が少なく、トレーニングの失敗も少なくなります。
Amazon S3、Azure SQL、Snowflake からデータをインポートできます。
重要
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、「Microsoft Azure プレビューの追加使用条件」をご覧ください。
前提条件
データ資産を作成して操作するには、以下が必要です。
注
データのインポートを成功させるには、SDK 用の最新の azure-ai-ml パッケージ (バージョン 1.31.0 以降) と ml 拡張機能 (バージョン 2.37.0 以降) がインストールされていることを確認します。 Python 3.9 以降が必要です。
古い 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.37.0 or later)
pip install azure-ai-ml
pip show azure-ai-ml #(the version value needs to be 1.31.0 or later)
mltable データ資産として外部データベースからインポートする
注
外部データベースには、Snowflake と Azure SQL が含まれます。
次のコード サンプルでは、外部データベースからデータをインポートできます。 インポート アクションを処理する は connection により、外部データベースのデータソース メタデータが判別されます。 このサンプルでは、Snowflake リソースからデータをインポートします。 接続は Snowflake ソースを指します。 少し変更すると、接続は Azure SQL データベース ソースまたはサポートされている別のデータベース ソースを指すことができます。 外部データベース ソースからインポートされた資産 type は mltable です。
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
from azure.ai.ml.entities import DataImport
from azure.ai.ml.data_transfer import Database
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_import = DataImport(
name="<name>",
source=Database(connection="<connection>", query="<query>"),
path="<path>"
)
ml_client.data.import_data(data_import=data_import)
注
ここに示す例では、Snowflake データベースでのプロセスについて説明します。 ただし、このプロセスは、Azure SQL などの他の外部データベース形式もカバーしています。
Azure Machine Learning Studio に移動します。
左側のナビゲーションの [資産] で [データ] を選択します。 次に、[データ インポート] タブを選択します。その後、次のスクリーンショットに示すように、[作成] を選択します。
次のスクリーンショットに示すように、[データ ソース] 画面で [Snowflake] を選択し、[次へ] を選択します。
[データ型] 画面で、値を入力します。
[種類] 値の既定値は [Table (mltable)] (テーブル (mltable)) です。 その後、次のスクリーンショットに示すように、[次へ] を選択します。
次のスクリーンショットに示すように、[ データのインポートの作成 ] 画面で値を入力し、[ 次へ] を選択します。
次のスクリーンショットに示すように、[ 出力するデータストアの選択 ] 画面で値を入力し、[ 次へ] を選択します。
ワークスペース マネージド データストアは既定で選択されています。マネージド データストアを選択すると、システムによって自動的にパスが割り当てられます。
ワークスペースマネージド データストアを選択すると、[Auto delete setting](自動削除設定) ドロップダウンが表示されます。 既定では 30 日間のデータ削除時間枠が提供されます。この値を変更する方法については、インポートされたデータ資産を管理する方法に関する記事で説明しています。
注
独自のデータストアを選択するには、[Other datastores](その他のデータストア) を選択します。 その場合、データ キャッシュの場所のパスを選択する必要があります。
スケジュールを追加できます。 次のスクリーンショットに示すように、[ スケジュールの追加] を選択します。
新しいパネルが開き、[繰り返し] スケジュールまたは [Cron] スケジュールを定義できます。 次のスクリーンショットは、[繰り返し] スケジュールのパネルを示しています。
-
[名前]: ワークスペース内のスケジュールの一意識別子。
-
[説明]: スケジュールの説明。
-
[トリガー]: スケジュールの繰り返しパターン。次のプロパティが含まれます。
-
[タイム ゾーン]: トリガー時間の計算は、このタイム ゾーンに基づいています。既定では、協定世界時 (UTC) に設定されています。
-
[繰り返し] または [Cron 式]: 定期的なパターンを指定するために、[繰り返し] を選択します。
[繰り返し] では、繰り返し頻度を分、時間、日、週、または月単位で指定できます。
-
[開始]: スケジュールは、この日付に初めてアクティブになります。 既定では、このスケジュールの作成日です。
-
終了: この日付より後にスケジュールが非アクティブになります。 既定では NONE です。 これは、手動で無効にするまでスケジュールが常にアクティブであることを意味します。
-
[タグ]: 選択したスケジュール タグ。
注
[開始] は、スケジュールのタイムゾーンで開始日時を指定します。
Start を省略した場合、開始時刻はスケジュールの作成時刻と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時刻に実行されます。
次のスクリーンショットは、このプロセスの最後の画面を示しています。 選択内容を確認し、[ 作成] を選択します。 この画面とこのプロセスの他の画面で、[ 戻る ] を選択して以前の画面に移動し、値の選択を変更します。
次のスクリーンショットは、 Cron スケジュールのパネルを示しています。
注
[開始] は、スケジュールのタイムゾーンで開始日時を指定します。
Start を省略した場合、開始時刻はスケジュールの作成時刻と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時刻に実行されます。
次のスクリーンショットは、このプロセスの最後の画面を示しています。 選択内容を確認し、[ 作成] を選択します。 この画面とこのプロセスの他の画面で、[ 戻る ] を選択して以前の画面に移動し、値の選択を変更します。
外部ファイル システムからフォルダー データ資産としてデータをインポートする
注
Amazon S3 データ リソースは、外部ファイル システム リソースとして機能できます。
データ インポート アクションを処理する connection により、外部データ ソースの各種側面が特定されます。 接続により、Amazon S3 バケットがターゲットとして定義されます。 接続には有効な path 値が必要です。 外部ファイル システム ソースからインポートされた資産値には type の uri_folder があります。
次のコード サンプルでは、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
from azure.ai.ml.entities import DataImport
from azure.ai.ml.data_transfer import FileSystem
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_import = DataImport(
name="<name>",
source=FileSystem(connection="<connection>", path="<path_on_source>"),
path="<path>"
)
ml_client.data.import_data(data_import=data_import)
Azure Machine Learning Studio に移動します。
左側のナビゲーションの [資産] で [データ] を選択します。 次に、[データのインポート] タブを選択します。次のスクリーンショットに示すように、[ 作成 ] を選択します。
次のスクリーンショットに示すように、[ データ ソース ] 画面で S3 を選択し、[ 次へ] を選択します。
[データ型] 画面で、値を入力します。
[種類] 値の既定値は [Folder (uri_folder)] (フォルダー (uri_folder)) です。 次のスクリーンショットに示すように、[ 次へ] を選択します。
次のスクリーンショットに示すように、[ データのインポートの作成 ] 画面で値を入力し、[ 次へ] を選択します。
次のスクリーンショットに示すように、[ 出力するデータストアの選択 ] 画面で値を入力し、[ 次へ] を選択します。
ワークスペース マネージド データストアは既定で選択されています。マネージド データストアを選択すると、システムによって自動的にパスが割り当てられます。
ワークスペースマネージド データストアを選択すると、[Auto delete setting](自動削除設定) ドロップダウンが表示されます。 既定では 30 日間のデータ削除時間枠が提供されます。この値を変更する方法については、インポートされたデータ資産を管理する方法に関する記事で説明しています。
スケジュールを追加できます。 次のスクリーンショットに示すように、[ スケジュールの追加] を選択します。
新しいパネルが開き、[繰り返し] スケジュールまたは [Cron] スケジュールを定義できます。 次のスクリーンショットは、 繰り返し スケジュールのパネルを示しています。
-
[名前]: ワークスペース内のスケジュールの一意識別子。
-
[説明]: スケジュールの説明。
-
[トリガー]: スケジュールの繰り返しパターン。次のプロパティが含まれます。
-
[タイム ゾーン]: トリガー時間の計算は、このタイム ゾーンに基づいています。既定では、協定世界時 (UTC) に設定されています。
-
[繰り返し] または [Cron 式]: 定期的なパターンを指定するために、[繰り返し] を選択します。
[繰り返し] では、繰り返し頻度を分、時間、日、週、または月単位で指定できます。
-
[開始]: スケジュールは、この日付に初めてアクティブになります。 既定では、このスケジュールの作成日です。
-
終了: この日付より後にスケジュールが非アクティブになります。 既定では NONE です。 これは、手動で無効にするまでスケジュールが常にアクティブであることを意味します。
-
[タグ]: 選択したスケジュール タグ。
注
[開始] は、スケジュールのタイムゾーンで開始日時を指定します。
Start を省略した場合、開始時刻はスケジュールの作成時刻と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時刻に実行されます。
このプロセスの最後の画面で選択内容を確認し、[ 作成] を選択します。 この画面とこのプロセスの他の画面で、値の選択を変更する場合は、[ 戻る ] を選択して以前の画面に移動します。
選択内容を確認し、[ 作成] を選択します。 この画面とこのプロセスの他の画面で、[ 戻る ] を選択して以前の画面に移動し、値の選択を変更します。
次のスクリーンショットは、 Cron スケジュールのパネルを示しています。
注
[開始] は、スケジュールのタイムゾーンで開始日時を指定します。
Start を省略した場合、開始時刻はスケジュールの作成時刻と等しくなります。 開始時刻が過去の場合、最初のジョブは、計算された次の実行時刻に実行されます。
次のスクリーンショットは、このプロセスの最後の画面を示しています。 選択内容を確認し、[ 作成] を選択します。 この画面とこのプロセスの他の画面で、[ 戻る ] を選択して以前の画面に移動し、値の選択を変更します。
外部データ ソースのインポート状態を確認する
データ インポート アクションは非同期アクションです。 これには、長い時間がかかる場合があります。 CLI または SDK を使用してデータのインポート アクションを送信した後、Azure Machine Learning サービスが外部データ ソースに接続するために数分かかる場合があります。 次に、サービスはデータのインポートを開始し、データのキャッシュと登録を処理します。 データのインポートに必要な時間は、ソース データ セットのサイズによっても異なります。
次の例では、送信されたデータ インポート アクティビティの状態を返します。 コマンドまたはメソッドは、データ資産名を入力として使用して、データ具体化の状態を決定します。
> az ml data list-materialization-status --name <name>
from azure.ai.ml.entities import DataImport
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
ml_client.data.list_materialization_status(name="<name>")
次のステップ