Azure Blob Storage にエクスポートする

この記事では、Azure Machine Learning Studio (クラシック) の データのエクスポートモジュールで Azure Blob Storage へのエクスポート オプションを使用する方法について説明します。

注意

適用対象: Machine Learning Studio (クラシック)

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

このオプションは、machine learning の実験から Azure blob storage にデータをエクスポートする場合に便利です。 たとえば、machine learning データの出力を他のアプリケーションと共有したり、中間データを保存したり、他の実験で使用するためにデータセットをクリーニングしたりすることができます。

Azure BLOB には、HTTP または HTTPS を使用して、どこからでもアクセスすることができます。 Azure blob storage は非構造化データストアであるため、さまざまな形式でデータをエクスポートできます。 現在、CSV、TSV、および ARFF 形式がサポートされています。

他のアプリケーションで使用するためにデータを Azure blob にエクスポートするには、データの エクスポート モジュールを使用して、データを azure blob ストレージに保存します。 次に、Azure storage (Excel、クラウドストレージユーティリティ、その他のクラウドサービスなど) からデータを読み取ることができる任意のツールを使用して、データを読み込んで使用します。

注意

データの インポート モジュールとデータの エクスポート モジュールは、クラシックデプロイモデルを使用して作成された Azure storage からのみデータの読み取りと書き込みを行うことができます。 つまり、ホットストレージとクールストレージのアクセス層を提供する新しい Azure Blob Storage アカウントの種類は、まだサポートされていません。

一般的に、このサービス オプションが利用可能になる前に作成された可能性のある Azure ストレージ アカウントに、影響が及ぶことはありません。

ただし、Azure Machine Learning で使用するための新しいアカウントを作成する必要がある場合は、デプロイモデル に [クラシック] を選択するか、 Resource Manager を使用し、アカウントの種類 として [ Blob storage] ではなく [汎用] を選択することをお勧めします。

Azure blob storage にデータをエクスポートする方法

Azure Blob service は、大量のデータ (バイナリ データを含む) を格納することを目的としています。 Blob Storage には 2 種類あります。パブリックな BLOB と、ログイン資格情報を必要とする BLOB です。

  1. データの エクスポート モジュールを実験に追加します。 このモジュールは、Studio (クラシック) の [ データ入力と出力 ] カテゴリで確認できます。

  2. Azure blob storage にエクスポートするデータを生成するモジュールに、 エクスポートデータ を接続します。

  3. [データのエクスポート] の [プロパティ] ペインを開きます。 データの変換先として、[ Azure Blob Storage] を選択します。

  4. ストレージが SAS URL 経由のアクセスをサポートしていることがわかっている場合は、[ 認証の種類] で [ パブリック (SAS url) ] を選択します。

    SAS URL は、Azure Storage ユーティリティを使用して生成でき、一定期間のみ利用できる特殊な種類の URL です。 認証とダウンロードに必要なすべての情報を含んでいます。

    [URI] に、アカウントとパブリック BLOB を定義する完全 URI を入力するか貼り付けます。

  5. プライベート アカウントの場合は、[アカウント] を選択し、アカウント名とアカウント キーを指定することにより、実験でストレージ アカウントへの書き込みができるようになります。

    • [アカウント名]: データを保存するアカウントの名前を入力するか、貼り付けます。 たとえば、ストレージ アカウントの完全 URL が https://myshared.blob.core.windows.net であれば、「myshared」と入力します。

    • アカウントキー: アカウントに関連付けられているストレージアクセスキーを貼り付けます。

  6. [コンテナー、ディレクトリ、または blob へのパス]: エクスポートされたデータを格納する blob の名前を入力します。 たとえば、mymldata という名前のアカウントのコンテナー predictions に格納される results01.csv という名前の新しい BLOB に実験の結果を保存する場合、BLOB の完全 URL は https://mymldata.blob.core.windows.net/predictions/results01.csv になります。

    そのため、[コンテナー、ディレクトリ、BLOB のパス] フィールドには、該当するコンテナーと BLOB の名前を「predictions/results01.csv」のように指定することになります。

  7. まだ存在しない BLOB の名前を指定した場合、Azure によって自動的に BLOB が作成されます。

    既存の BLOB に書き込む場合は、[Azure blob storage write mode](Azure Blob Storage の書き込みモード) プロパティの設定で、BLOB の現在のコンテンツを上書きするように指定できます。 既定では、このプロパティが [エラー] に設定されています。この場合、同じ名前の既存のBLOB ファイルが見つかるとエラーが発生します。

  8. [File format for blob file](BLOB ファイルのファイル形式) で、データの保存形式を選択します。

    • Csv: コンマ区切り値 (csv) は、既定のストレージ形式です。 データと一緒に列見出しをエクスポートする場合は、[Write blob header row](BLOB ヘッダー行を書き込む) を選択してください。 Azure Machine Learning で使用されるコンマ区切り形式の詳細については、「Convert to CSV (CSV への変換)」を参照してください。

    • Tsv: タブ区切り値 (tsv) 形式は、多くの機械学習ツールと互換性があります。 データと一緒に列見出しをエクスポートする場合は、[Write blob header row](BLOB ヘッダー行を書き込む) を選択してください。 Azure Machine Learning で使用されるタブ区切り形式の詳細については、「 TSV への変換」を参照してください。

    • Arff: この形式は、weka ツールセットで使用される形式でファイルを保存することをサポートしています。 この形式は、SAS URL に格納されているファイルではサポートされていません。 ARFF 形式の詳細については、「 arff への変換」を参照してください。

  9. キャッシュされた 結果を使用 する: 実験を実行するたびに、blob ファイルに結果が書き直されないようにする場合は、このオプションを選択します。 それ以外でモジュールのパラメーターに変更がなければ、実験結果が書き込まれるのは、モジュールの初回実行時と、データに変更が生じたときだけです。

データのエクスポートモジュールを使用する方法の例については、 Azure AI Galleryを参照してください。

  • データ セットを VW 形式に変換する: この実験では、データのエクスポート モジュールと共に Python スクリプトを使用して、Vowpal wabbit で使用できるデータを作成します。

  • Azure SQL Data Warehouse を使用した予測分析パイプラインの設定: このシナリオでは、Azure Machine Learning と SQL Data Warehouse を含む複数のコンポーネント間でのデータ移動について説明します。

  • No code batch スコアリング: このチュートリアルでは、Azure Logic Apps を使用して、実験で使用されるデータのインポートと blob storage への実験結果の書き込みの両方を自動化する方法について説明します。

  • Azure data factory を使用したオンプレミス SQL Server での AZURE ML ソリューションの運用化: この記事では、中間段階として blob storage を使用して、オンプレミスの SQL Server データベースにデータを送信する、より複雑なデータパイプラインについて説明します。 オンプレミスのデータベースを使用するには、データゲートウェイを構成する必要がありますが、この例のその部分をスキップし、blob ストレージのみを使用することができます。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

一般的な質問

実験が変更されていない場合にデータの書き込みを回避する方法はありますか

実験の結果が変更されると、 データのエクスポート によって、常に新しいデータセットが保存されます。 ただし、出力データに影響を与える変更を行わずに実験を繰り返し実行している場合は、[キャッシュされた 結果を使用 する] オプションを選択できます。

モジュールは、実験が以前に同じデータと同じオプションを使用して実行されたかどうかを確認します。前の実行が検出された場合、書き込み操作は繰り返されません。

異なる地理的リージョンのアカウントにデータを保存できますか。

はい。異なるリージョンのアカウントにデータを書き込むことができます。 ただし、ストレージアカウントが、machine learning の実験で使用される計算ノードとは異なるリージョンにある場合、データアクセスの速度が低下する可能性があります。 また、サブスクリプションでのデータの受信と送信に対して課金されます。

モジュールのパラメーター

[全般] オプション

名前 Range Type Default 説明
データ ソース List データソースまたはシンク Azure Blob Storage コピー先には、Azure BLOB ストレージ内のファイル、Azure テーブル、Azure SQL Database 内のテーブルまたはビュー、または Hive テーブルを指定できます。
キャッシュされた結果の使用 TRUE または FALSE Boolean false モジュールは、有効なキャッシュが存在しない場合にのみ実行されます。それ以外の場合は、以前の実行からキャッシュされたデータを使用します。
認証の種類を指定してください。 SAS/アカウント AuthenticationType Account アクセス承認に SAS またはアカウントの資格情報を使用する必要があるかどうかを示します

パブリックまたは SAS-パブリックストレージオプション

名前 Range Type Default 説明
BLOB の SAS URI any String なし 書き込み先の blob の SAS URI (必須)
SAS ファイルのファイル形式 ARFF

CSV

TSV
LoaderUtils Filetype CSV ファイルが CSV、TSV、または ARFF のいずれであるかを示します。 (必須)
SAS ヘッダー行の書き込み TRUE または FALSE Boolean false 列見出しをファイルに書き込むかどうかを示します

アカウント-プライベートストレージオプション

名前 Range Type Default 説明
Azure のアカウント名 any String なし Azure ユーザーアカウント名
Azure のアカウント キー any SecureString なし Azure ストレージ キー
コンテナー名で始まる BLOB へのパス any String なし コンテナー名で始まる blob ファイルの名前
Azure BLOB ストレージの書き込みモード リスト: エラー、上書き enum: BlobFileWriteMode エラー Blob ファイルの書き込み方法を選択する
BLOB ファイルのファイル形式 ARFF

CSV

TSV
LoaderUtils Filetype CSV Blob ファイルが CSV、TSV、または ARFF であるかどうかを示します。
blob ヘッダー行の書き込み TRUE または FALSE Boolean false Blob ファイルにヘッダー行が含まれるかどうかを示します

例外

例外 説明
エラー 0027 同じサイズが必要である 2 つのオブジェクトのサイズが異なる場合に、例外が発生します。
エラー 0003 1 つ以上の入力が null または空の場合に、例外が発生します。
エラー 0029 無効な URI が渡された場合に、例外が発生します。
エラー 0030 ファイルをダウンロードできない場合は例外が発生します。
エラー 0002 1 つ以上のパラメーターが解析できなかった、または指定した型から対象のメソッドの種類で必要な型に変換されなかった場合に、例外が発生します。
エラー 0009 Azure ストレージのアカウント名またはコンテナー名が正しく指定されていない場合、例外が発生します。
エラー 0048 ファイルを開けない場合、例外が発生します。
エラー 0046 指定したパスにディレクトリを作成できない場合に、例外が発生します。
エラー 0049 ファイルを解析できない場合、例外が発生します。

Studio (クラシック) モジュール固有のエラーの一覧については、「 Machine Learning エラーコード」を参照してください。

API 例外の一覧については、「 Machine Learning REST API のエラーコード」を参照してください。

関連項目

データのインポート
データのエクスポート
Azure SQL Database へのエクスポート
Hive クエリへのエクスポート
Azure Table へのエクスポート