データ フィード プロバイダーからのインポート

この記事では、Azure Machine Learning Studio (クラシック) の データのインポート モジュールを使用して、OData 形式で提供されるデータを Machine Learning の実験にインポートする方法について説明します。

注意

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

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

データセットの OData エンドポイントを作成する方法の1つは、URL を使用してデータモデルを使用できるようにする方法です。 エンドポイントがサポートする OData 操作を指定することもできます。 エンドポイントの作成の詳細について Odata は、「 OData v4」 (ASP.NET)を参照してください。

フィードからデータをインポートする方法

スキーマが正しいことを確認するために、データはインポート前にプロファイルしておくことを強くお勧めします。 スキーマは、インポート プロセスでいくつかの見出し行をスキャンすることによって特定されますが、後続の行に余分な列やエラーの原因となるデータが含まれている可能性もあります。

データ インポート ウィザードを使用する

モジュールには、ストレージオプションを選択するための新しいウィザードが用意されています。 ウィザードを使用して、既存のサブスクリプションとアカウントの中から選択し、すべてのオプションをすばやく構成します。

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

  2. [ データのインポートウィザードの起動 ] をクリックし、画面の指示に従います。

  3. 構成が完了したら、実際にデータを実験にコピーするには、モジュールを右クリックし、[選択ファイルの 実行] を選択します。

既存のデータ接続を編集する必要がある場合は、ウィザードによって以前のすべての構成の詳細が読み込まれるため、最初からやり直す必要はありません。

データのインポート モジュールのプロパティを手動で設定する

インポートソースは手動で構成することもできます。

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

  2. [ データソース] で、[ データフィードプロバイダー] を選択します。

  3. [ データコンテンツの種類] で、フィードの種類を選択します。 現在、OData エンドポイントのみがサポートされています。

  4. [ ソース url] には、必要な形式でデータを提供するサイトの url を貼り付けます。

    たとえば、次のステートメントは、Northwind サンプルデータベースから製品の一覧を取得します。

    https://services.odata.org/northwind/northwind.svc/Products

    詳細については、「 OData 構文」を参照してください。

  5. 初めてデータを再読み込みする必要がない場合は、[キャッシュされた 結果を使用 する] オプションを選択します。 実験の実行間でデータが変更されることが予想されない場合は、このオプションを選択することをお勧めします。

    モジュールパラメーターにその他の変更がない場合は、モジュールの初回実行時に実験によってデータが読み込まれ、それ以降はキャッシュされたバージョンのデータセットが使用されます。

    定期的にデータを更新する必要がある場合は、このオプションをオフにします。

  6. 実験を実行します。

結果

完了したら、出力されたデータセットをクリックし、[Visualize](視覚化) を選択し、データが正常にインポートされたかどうかを確認します。

データのインポート時にフィードデータが Studio (クラシック) に読み込まれると、含まれている値 (数値またはカテゴリ) に基づいて各列のデータ型が推測されます。

  • ヘッダーが存在する場合、出力されるデータセットの列に名前を付ける際、ヘッダーが使用されます。

  • データ内に既存の列ヘッダーが存在しない場合は、という形式を使用して新しい列名が生成され col1, col2,… ,coln ます。

テクニカル ノート

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

OData 構文

クエリはフラットテーブルを返す必要があります。 入れ子になった OData レコードのフラット化はサポートされていません。

OData フィードに含まれるいくつかの列には、小数など、Studio (クラシック) でサポートされていないデータ型が含まれている場合があります。 データを文字列として取り込み、後で R スクリプトの実行 モジュールまたは メタデータエディター モジュールを使用して変換することができます。

OData の構文と Url の詳細については、「 Odata.org 規則」を参照してください。

一般的な質問

データがソースから読み取られるときにデータをフィルター処理できますか。

データ の読み込みモジュールは 、通常、データの読み取り中にフィルター処理をサポートしていません。 ただし、フィードリソースの URL の一部としてフィルター条件を指定できます。

フィードからデータをフィルター処理するには、 OData プロトコルでサポートされているステートメントを使用します。 たとえば、この URL は、という式を使用して、 $filter ID が1の従業員に関連する注文のみを取得します。

https://services.odata.org/Northwind/Northwind.svc/Orders?$filter=Employee/EmployeeID eq 1

フィルター構文のその他の例については、「 OData uri でのフィルター式の使用」を参照してください。

または、すべてのデータを取得し、それを Azure Machine Learning Studio (クラシック) に読み込んだ後にフィルター処理することもできます。

  • カスタム R スクリプトを使用して、必要なデータのみを取得します。

  • データの 分割 モジュールと相対式または正規表現を使用して、必要なデータを分離し、データセットとして保存します。

注意

必要以上に多くのデータが読み込まれたことが判明した場合、新しいデータセットを読み取ってから、以前のよりサイズの大きいデータと同じ名前で保存すると、キャッシュ内のデータセットをオーバーライドできます。

OData ソースに接続するための資格情報が必要であるというエラーが表示されます。 続行するには、更新して資格情報を入力してください。 資格情報を指定する方法 * *

データのインポートモジュールでは、匿名アクセスを使用する OData エンドポイントのみがサポートされます。 OData サービスで資格情報が必要な場合は、OData オプションを使用してデータを取得することはできません。

ただし、サービスが同じドメインにある場合は、ユーザーが入力しなくても自動的に認証が行われることがあります。

回避策として、PowerQuery または PowerPivot を使用してフィードデータを読み取り、Excel からデータを取得することができます。

同じデータが不必要に再読み込みされないようにするにはどうすればよいですか。

ソースデータが変更された場合は、 インポートデータを再実行することによってデータセットを更新し、新しいデータを追加できます。 ただし、実験を実行するたびにソースから再び読み込むことを望まない場合、[Use cached results](キャッシュされた結果を使用する) オプションを TRUE に設定します。 このオプションが TRUE に設定されている場合、モジュールは、実験が同じソースと同じ入力オプションを使用して以前に実行されたかどうかを確認します。前の実行が検出された場合は、ソースからデータを再読み込みするのではなく、キャッシュ内のデータが使用されます。

「Decimal はサポートされていません」というエラーメッセージが表示されるのはなぜですか。

decimalデータ型は Azure Machine Learning ではサポートされていません。 これは、 データのインポート では、有効桁数が失われる可能性のある変換を自動的に実行できないためです。

サポートされているデータ型の詳細については、「 モジュールデータ型」を参照してください。

回避策として、データを文字列データ型として読み取り、次に [メタデータの 編集 ] を使用して、データを読み取る前に、小数点をサポートされているデータに変換します。

フィードの一部の文字が正しく表示されないのはなぜですか。

Azure Machine Learning は、UTF-8 エンコードをサポートしています。 ソースで別の種類のエンコードを使用している場合は、文字が正しくインポートされない可能性があります。

回避策として、Azure table storage または Azure blob storage の CSV ファイルにデータを保存できます。 次に、[ エンコード付きの CSV ] オプションを使用して、カスタムの区切り記号、コードページなどのパラメーターを指定します。

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

名前 Range Type Default 説明
データ ソース List データソースまたはシンク Azure Blob Storage データソースには、HTTP、FTP、匿名の HTTPS または FTPS、Azure BLOB storage 内のファイル、Azure テーブル、Azure SQL Database、オンプレミスの SQL Server データベース、Hive テーブル、または OData エンドポイントを指定できます。
データ コンテンツの種類 リスト (サブセット) Url の内容 OData データの形式の種類
ソース URL any String Power Query データソースの URL
キャッシュされた結果の使用 TRUE または FALSE Boolean false description

出力

名前 Type 説明
結果のデータセット データ テーブル ダウンロードしたデータを含むデータセット

例外

例外 説明
エラー 0003 1 つ以上の入力が null または空の場合に、例外が発生します。
エラー 0029 無効な URI が渡された場合に、例外が発生します。
エラー 0030 ファイルをダウンロードできない場合は例外が発生します。
エラー 0002 1 つ以上のパラメーターが解析できなかった、または指定した型から対象のメソッドの種類で必要な型に変換されなかった場合に、例外が発生します。

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

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

関連項目

データのインポート
データのエクスポート
HTTP 経由で Web URL からインポートする
Hive クエリからのインポート
Azure SQL Database からのインポート
Azure テーブルからのインポート
Azure Blob Storage からのインポート
オンプレミスの SQL Server データベースからのインポート