データ
#
基本的な概念Azure ML にはデータを扱うための 2 つの概念が存在します:
- データストア
- データセット
#
データストアAzure ML から多数のストレージアカウントへのインターフェースを提供します。
各 Azure ML ワークスペースには 1 つのデフォルトデータストアが付属しています:
このデータストアには Azure Portal からもアクセスすることができます。 (Azure ML ワークスペースと同じリソースグループに存在します)
データストアはワークスペースに追加され、Azure ストレージサービスとの接続情報を保持するために使用されます。そのため、ユーザーはストレージサービスの接続情報やシークレットを覚えることなく、データストアの名前で参照をすることができます。
上記コードで取得した Datastore クラスからは、データストアの登録、リスト、取得、削除などの管理を行うことができます。
#
データセットデータセットはデータへの参照です。これはデータストア、パブリックURL上の両方のデータを含みます。
データセットはデータ管理を強化する機能を提供します (データセットのバージョン管理)。
#
データストアの取得#
デフォルトデータストア各ワークスペースにはデフォルトデータストアが付属しています。
#
データストアの登録Azure が提供する様々なデータストアに対して、データストアの作成と接続が行えます。例として:
- Azure Blob Container
- Azure Data Lake (Gen1 or Gen2)
- Azure File Share
- Azure MySQL
- Azure PostgreSQL
- Azure SQL
- Azure Databricks File System
データストアの種類のリストと認証オプションの包括的な情報は Datastores (SDK) を参照してください。
#
新たなデータストアを登録するアカウントキー でデータストアを登録する:
SAS トークンでデータストアを登録する:
#
データストアへの接続ワークスペースオブジェクトws
からは下記のようにデータストアのリストを取得することができます:
ワークスペースに登録済みのデータストアに対しては名前でアクセスすることができます:
#
Azure Storage Explorer とデータストアを接続するワークスペースオブジェクトws
はワークスペースがアクセス可能なデータアセットを管理する際の強力なハンドルです。例えば、Azure Storage Explorer を使ってデータストアに接続する際にもワークスペースを使うことができます。
アカウントキーを使って作成したデータストアの場合:
SAS トークンを使って作成したデータストアの場合:
この account_name と account_key は Azure Storage Explorer を使ってデータストアに接続する際に使用できます。
#
Blob データストアAzureBlobDatastore データストアを使ったデータのダウンロードとアップロード。
#
Blob データストアへのアップロードAzureBlobDatastore はデータをアップロードするためのAPIを提供します:
別々の場所に存在する複数のファイルをアップロードする場合:
#
Blob データストアからのダウンロードBlob コンテナからローカルファイルシステムへデータをダウンロードする:
#
Storage Explorer 経由Azure Storage Explorer は Azure クラウドストレージ上のデータを簡単に扱うことができる Windows、macOS、Linux 向けのツールです。こちらからダウンロードすることができます。
Azure Storage Explorer は GUI のファイルエクスプローラです。そのため、ファイルをドラッグアンドドロップすることでダウンロードやアップロードを行うことができます。
詳細は Azure Storage Explorer とデータストアを接続する のセクションを参照してください。
#
データストアからの読み込みコードの中からDatastore
のデータを参照します。例えばリモート設定を使用する場合です。
#
DataReference最初に、基本的なオブジェクトであるWorkspace
、ComputeTarget
、Datastore
に接続します。
DataReference
を作成してマウントする場合:
ダウンロードする場合:
info
データストアをas_mount
するためには、ワークスペースは対象のストレージに対する read と write アクセスが必要になります。readonly のデータストアの場合はas_download
が唯一のオプションです。
#
ScriptRunConfig から DataReference を使用する以下のようにして ScriptRunConfig に DataReference を追加します。
コマンドライン引数str(data_ref)
は、環境変数$AZUREML_DATAREFERENCE_example_data
を返します。
最終的にdata_ref.to_config()
は、Azure ML の実行に対してデータをコンピューティングターゲットにマウントすることと、上記の環境変数を適切に設定することの指示を出します。
#
引数を指定しないときコマンドライン引数を指定せずに、path_on_compute
を指定してデータを参照する場合:
#
データセットの作成#
ローカルデータから#
データストアへのアップロードローカルディレクトリ./data/
をアップロードする場合:
このコードはローカルディレクトリ./data
をまるごとワークスペースws
に関連付けられたデフォルトデータストアにアップロードします。
#
データストア内のファイルからデータセットを作成するデータストアの<path/on/datastore>
ディレクトリに存在するデータからデータセットを作成する場合:
#
データセットの使用#
ScriptRunConfigデータセットを ScriptRunConfig から参照してマウントしたりダウンロードしたい時、下記のようにして行えます:
dataset.as_mount(path_on_compute)
: リモート実行時にデータセットをマウントするdataset.as_download(path_on_compute)
: リモート実行時にデータセットをダウンロードする
Path on compute: as_mount
とas_download
の両方がオプションパラメータのpath_on_compute
を受け取ります。このパラメータはコンピューティングターゲット上で利用できるデータセットのパスを定義します。
指定しない
場合、データは一時ディレクトリにダウンロードされます。path_on_compute
が/
始まる場合は絶対パスとして扱われます。(もしも絶対パスを指定した場合は実行するジョブがそのディレクトリに対する書き込み権限を持っている必要があります)- それ以外は、ワーキングディレクトリからの相対パスとして扱われます。
マウントモードでリモート実行時にデータを参照する例:
train.py
から参照する例:
より詳細は クラウド上でコードを実行する を参照してください。