Azure SQL Database へのエクスポート

この記事では、Azure Machine Learning Studio (クラシック) の データのエクスポートモジュールの [ Azure SQL Database にエクスポート] オプションを使用する方法について説明します。 このオプションは、machine learning の実験から Azure SQL Database または Azure SQL Data Warehouse にデータをエクスポートする場合に便利です。

注意

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

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

SQL database へのエクスポートは、機械学習の多くのシナリオで役に立ちます。たとえば、中間結果を保存したり、スコアを保存したり、エンジニアリングされた特徴のテーブルを永続化したりすることができます。 Azure SQL Database または Azure SQL Data Warehouse にデータを格納することは、Azure のテーブルまたは blob を使用するよりもコストが高くなりますが、SQL データベースに対するトランザクション料金は発生しません。 さらに、データベースストレージは、頻繁に使用される大量の情報を迅速に作成したり、実験間でデータを共有したり、レポートの結果、予測、およびメトリックを作成したりするのに最適です。

一方、サブスクリプションの種類によっては、データベースに格納できるデータの量に制限がある場合があります。 また、machine learning ワークスペースと同じリージョンにあるデータベースとアカウントの使用を検討する必要もあります。

データをエクスポートするには、データが格納されているインスタンス名とデータベース名を指定し、書き込みアクセス許可を持つアカウントを使用してモジュールを実行します。 また、テーブル名を指定し、実験の列をテーブルの列にマップする必要があります。

Azure SQL Database にデータをエクスポートする方法

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

  2. エクスポートするデータを生成するモジュールに データをエクスポート します。

  3. [ データの変換先] で、[ Azure SQL Database] を選択します。 このオプションでも Azure SQL Data Warehouse がサポートされます。

  4. Azure SQL Database または Azure SQL Data Warehouse で、サーバーとデータベースの名前を指定します。

    データベースサーバー名: Azure によって生成されたサーバー名を入力します。 通常、<generated_identifier>.database.windows.net の形式になります。

    データベース名: 指定したサーバー上の既存のデータベースの名前を入力します。 データのエクスポート モジュールでは、データベースを作成できません。

    サーバーユーザーアカウント名: データベースに対するアクセス許可を持つアカウントのユーザー名を入力します。

    サーバーユーザーアカウントのパスワード: 指定したユーザーアカウントのパスワードを指定します。

  5. 列の名前を変更する場合は、エクスポートする列を指定します。

    [保存する列のコンマ区切りの一覧]: データベースに書き込む実験の列の名前を入力します。

    データテーブル名: データを格納するテーブルの名前を入力します。

    Azure SQL Database の場合、テーブルが存在しない場合は新しいテーブルが作成されます。

    Azure SQL Data Warehouse の場合、テーブルは既に存在していて、正しいスキーマを持っている必要があるため、事前に作成しておいてください。

    [ Datatable 列のコンマ区切りの一覧]: コピー先テーブルに表示する列の名前を入力します。

    Azure SQL Database では、列名を変更できますが、列は、エクスポートする列をコンマで区切って指定した順序で、 保存する 必要があります。

    Azure SQL Data Warehouse の場合、列名は、変換先テーブルスキーマに既に存在する名前と一致している必要があります。

  6. SQL Azure 操作ごとに書き込まれた行数: このオプションは、各バッチの対象テーブルに書き込まれる行の数を指定します。

    既定では、値は50に設定されています。これは Azure SQL Database の既定のバッチサイズです。 ただし、作成する行の数が多い場合は、この値を大きくする必要があります。

    Azure SQL Data Warehouse には、この値を1に設定することをお勧めします。 より大きなバッチサイズを使用する場合、Azure SQL Data Warehouse に送信されるコマンド文字列のサイズが許容される文字列長を超えることがあり、エラーが発生します。

  7. キャッシュされた 結果を使用 する: 実験を実行するたびに新しい結果が書き込まれないようにするには、このオプションを選択します。 モジュールパラメーターにその他の変更がない場合、実験では、モジュールが初めて実行されたときにのみデータが書き込まれます。 ただし、結果を変更する エクスポートデータ でパラメーターが変更されている場合は、常に新しい書き込みが実行されます。

  8. 実験を実行します。

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

  • 小売予測手順 1/6-データ前処理: 小売予測テンプレートは、Azure SQLDB に格納されているデータに基づく機械学習タスクを示しています。 このサンプルでは、Azure SQL database を使用してさまざまなアカウントの実験間でデータセットを渡したり、予測を保存および結合したり、機械学習のためだけに Azure SQL database を作成する方法など、便利な手法を示します。

  • AZURE vm で SQL Server を使用した機械学習モデルの構築とデプロイ: この記事では、azure vm でホストされている SQL Server データベースを、トレーニングデータと予測を格納するためのソースとして使用する手順について説明します。 また、機能エンジニアリングと機能の選択にリレーショナルデータベースを使用する方法についても説明します。

  • Azure SQL Data Warehouse で AZURE ML を使用する方法: Azure SQL Data Warehouse からのデータを使用してクラスターモデルを構築する方法を示します。

  • SQL Data Warehouse での Azure Machine Learning の使用: Azure SQL Data Warehouse のデータを使用して価格を予測する回帰モデルを作成する方法を示します。

テクニカル ノート

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

一般的な質問

異なる地理的リージョンでのデータベースの使用

Azure SQL Database または SQL Data Warehouse が machine learning アカウントとは異なるリージョンにある場合、書き込みが遅くなる可能性があります。

また、コンピューティングノードがストレージアカウントとは異なるリージョンにある場合は、サブスクリプションでのデータの受信と送信に対して課金されます。

出力データの一部の文字が正しく表示されないのはなぜですか。

Azure Machine Learning は、UTF-8 エンコードをサポートしています。 データベースの文字列型の列で別のエンコードを使用していると、文字が正しく保存されないことがあります。

また、Azure Machine Learning では、などのデータ型を出力できません money

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

名前 Range Type Default 説明
データ ソース List データソースまたはシンク Azure Blob Storage データソースには、HTTP、FTP、匿名の HTTPS または FTPS、Azure BLOB storage 内のファイル、Azure テーブル、Azure SQL Database または Azure SQL Data Warehouse、Hive テーブル、または OData エンドポイントを指定できます。
[データベース サーバー名] any String なし
データベース名 any String なし
サーバーのユーザー アカウント名 any String なし
サーバーのユーザー アカウント パスワード なし
保存する列のコンマ区切りの一覧 なし
データ テーブル名 any String なし
データテーブルの列のコンマ区切りの一覧 String String なし String
SQL Azure の操作ごとに書き込まれる行の数 String Integer 50 String
キャッシュされた結果の使用 TRUE または FALSE Boolean false モジュールは、有効なキャッシュが存在しない場合にのみ実行されます。それ以外の場合は、以前の実行からキャッシュされたデータを使用します。

例外

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

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

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

関連項目

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