Azure Table へのエクスポート
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください。
ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
この記事では、Machine Learning Studio (クラシック) のデータのエクスポートモジュールで [ Azure にエクスポート] オプションを使用する方法について説明します。
注意
適用対象: Machine Learning Studio (クラシック)のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
このオプションは、機械学習の実験から Azure テーブルに結果または中間データをエクスポートする場合に便利です。 Azure table service は、大量の構造化された非リレーショナルデータを格納できる Azure のデータ管理サービスです。 これは、Azure の内部および外部からの認証された呼び出しを受け入れる NoSQL データストアです。
Azure テーブルにデータをエクスポートする方法
データの エクスポート モジュールを実験に追加します。 このモジュールは、Studio (クラシック) の [ データ入力と出力 ] カテゴリで確認できます。
Azure table storage にエクスポートするデータを生成するモジュールに Connect します。
[ 認証の種類 ] オプションを設定して、パブリック共有リソースにデータをエクスポートするか、ログイン資格情報を必要とするプライベートストレージアカウントにデータをエクスポートするかを指定します。
パブリック (SAS url): アカウントが SAS url経由のアクセスをサポートしている場合は、このオプションを選択します。 [ テーブル SAS URI ] フィールドに、アカウントとパブリック blob を定義する完全な uri を入力するか貼り付けます。
SAS URL は、Azure storage ユーティリティを使用して生成できる、時間にバインドされたアクセス URL です。 SAS URL を使用してアクセスできるページでは、CSV、TSV、ARFF の形式のみを使用してデータを格納できます。
[アカウント]: データがプライベートアカウント内にある場合は、このオプションを選択します。 また、アカウント名とキーを含む資格情報も指定する必要があります。
セキュリティで保護されたプライベートストレージにデータをエクスポートする場合は、アカウントへのアクセスに必要な資格情報を指定します。
[テーブルアカウント名]: アクセスする blob が含まれているアカウントの名前を入力するか、貼り付けます。 たとえば、ストレージ アカウントの完全 URL が
https://myshared.table.core.windows.net
であれば、「myshared
」と入力します。[テーブルアカウントキー]: ストレージアカウントに関連付けられているアクセスキーを貼り付けます。
テーブル名: 読み取る特定のテーブルの名前を入力します。
列のプロパティを使用して、テーブルストアに保存する列と、テーブルスキーマの定義に使用する列を指定します。
[パーティションキー]: Azure Storage で、テーブルの保存されたデータセットをパーティション分割するために使用する列を選択します。 Azure のテーブルは、パーティションに分割することでストレージ ノード間の負荷分散をサポートします。 すべてのテーブルエンティティはパーティションによって整理されます。そのため、すべてのテーブル操作に Partitionkey プロパティが必要です。
Azure テーブルの行キー: RowKey プロパティに使用する列を選択します。 RowKey プロパティは、テーブル内のすべてのエンティティに必要なシステムプロパティです。 Partitionkeyプロパティと共に、テーブル内のすべての行に対して一意のインデックスを作成します。
注意
RowKeyとpartitionkeyには別の列を使用する必要があります。 RowKey または PartitionKey に対して選択した列が、変換先の列の一覧にも含まれていることを確認してください。それ以外の場合は、エラーが発生します。
- [ Azure テーブルの元の列]: azure テーブルに保存するデータセットから、追加の列を選択します。 PartitionkeyとRowKeyに選択した列も含める必要があります。
Azure Storage のテーブルの詳細については、「 Table Service データモデルについて」を参照してください。
テーブルに書き込む列の名前を指定します。
重要
テーブルに出力するすべての列に対して列名を指定する必要があります。これには、 RowKey、 partitionkey、およびすべての元の列が含まれます。
指定した列名の数が出力列の数と一致しない場合は、エラーが発生します。
新しい列名を入力する場合は、ソース列の列インデックスの順序で指定する必要があります。
Azure テーブルの書き込みモード: azure テーブルにデータが既に存在する場合に、 エクスポートデータ の動作を指定します。
Insert: 操作は
Insert Entity
、 Partitionkey プロパティと RowKey プロパティの組み合わせから形成された一意の主キーを持つ新しいエンティティを挿入します。Merge: 操作は、エンティティのプロパティを更新することによって、既存のエンティティを更新し
Merge Entity
ます。 この操作によって既存のエンティティが置き換えられることはありません。Replace: 操作は
Update Entity
、テーブル内の指定されたエンティティの内容を置き換えます。[挿入された文字列の置換: 操作は
InsertOrReplace Entity
、エンティティが存在しない場合にエンティティを挿入します。 存在する場合は既存のエンティティを置き換えます。[挿入されたデータのマージ: 操作は
InsertOrMerge Entity
、エンティティが存在しない場合にエンティティを挿入します。 存在する場合、指定したエンティティのプロパティで既存のエンティティをマージします。
キャッシュされた結果を使用する: 実験を実行するたびにデータを更新するかどうかを指定します。
このオプションを選択した場合、 データのエクスポート モジュールは、アップストリームの変更がない限り、最初に実験を実行したときに、指定されたテーブルにデータを保存します。
このオプションをオフにすると、データが同じであるかどうかに関係なく、実験を実行するたびにデータが変換先に書き込まれます。
実験を実行します。
テクニカル ノート
このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。
一般的な質問
既存のテーブルへの書き込み時にエラーが表示されるのはなぜですか。
テーブルのスキーマを調べて、列名とデータ型が同じであることを確認してください。 たとえば、Azure table storage では、ID 列は文字列である必要があります。
エラーが発生した場合、 エラー 0027: 渡されたオブジェクトのサイズに一貫性がないため、指定されたコンテナーにテーブルが存在することを確認してください。 現時点では、Azure ML は既存のテーブルにのみ書き込むことができます。
既存の列が見つからないというエラーが表示されるのはなぜですか。
実験を実行していない場合は、 データのエクスポートによって上流の列が検出されないことがあります。 実験でアップストリームの変更を行う場合は、 データのエクスポート モジュールを削除してから追加して再構成することが必要になる場合があります。
同じデータを不必要に再作成しないようにするにはどうすればよいですか。
実験のデータが何らかの理由で変更された場合、 データのエクスポート モジュールは常に新しいデータを書き込みます。
ただし、結果に影響しない他の変更で実験を実行している場合は、[キャッシュされた 結果を使用 する] オプションを TRUE に設定します。 モジュールは、実験が同じオプションを使用して以前に実行されたかどうかを確認します。前の結果が見つかった場合、データは Azure テーブルに書き込まれません。
データを別の地理的リージョンにエクスポートすることはできますか。
はい。 ただし、ストレージアカウントが、machine learning の実験で使用される計算ノードとは異なるリージョンにある場合、データアクセスの速度が低下する可能性があります。 さらに、サブスクリプションでのデータの受信と送信に対して課金されます。
例
これらの機械学習モジュールを使用する方法の例については、 Azure AI Galleryを参照してください。
モジュールのパラメーター
パブリックまたは SAS-パブリックオプション
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
テーブル SAS URI | any | String |
アカウント-プライベートアカウントオプション
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
テーブルのアカウント名 | ||||
テーブルのアカウント キー | any | SecureString |
ストレージ オプション
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
テーブル名 | String | なし | ||
パーティション キー | any | SecureString | なし | テーブルをパーティション分割するときにキーとして使用する列を選択します。 列が選択されていない場合、すべてのエントリのパーティションキーとして列名が使用されます。 |
Azure テーブルの行キー | any | ColumnPicker | なし | テーブル行の一意の識別子を含む列を選択します。 既定値は GUID ベースの行キーです。 |
Azure テーブルの元の列 | any | ColumnPicker | なし | 名前または列インデックスによって、テーブルに含める列を指定します。 |
Azure テーブルの保存先の列 | any | String | なし | 変換先テーブルで使用する列の名前を入力します。 |
Azure テーブルの書き込みモード | リスト: 挿入、マージ、置換、挿入した挿入、挿入 | 列挙型 | なし | |
キャッシュされた結果の使用 | TRUE または FALSE | Boolean | FALSE | モジュールは、有効なキャッシュが存在しない場合にのみ実行されます。それ以外の場合は、以前の実行からキャッシュされたデータを使用します。 |
例外
例外 | 説明 |
---|---|
エラー 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 へのエクスポート
Azure Blob Storage にエクスポートする
Hive クエリへのエクスポート