Azure SQL Database からのインポート

この記事では、Azure Machine Learning Studio (クラシック) の データのインポート モジュールを使用して、Azure SQL Database または Azure SQL Data Warehouse からデータを取得する方法について説明します。

注意

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

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

データベースからデータをインポートするには、サーバー名とデータベース名の両方を指定し、テーブル、ビュー、またはクエリを定義する SQL ステートメントを指定する必要があります。

一般に、Azure データベースにデータを格納すると、Azure でテーブルや BLOB を使用するよりもコストが高くなります。 また、サブスクリプションの種類によっては、データベースに格納できるデータ量に制限がある場合もあります。 ただし、Azure SQL Database に対するトランザクション料金は発生しないため、このオプションは、データ参照テーブルやデータ ディクショナリなど、頻繁に使用される少量の情報に高速でアクセスするのに最適です。

Azure データベースにデータを格納することは、データを読み取る前にフィルター処理できるようにする必要がある場合や、レポートを作成するために予測やメトリックをデータベースに保存したい場合にも適しています。

Azure SQL Database または SQL Data Warehouse からデータをインポートする方法

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

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

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

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

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

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

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

次の手順では、インポート元を手動で構成する方法について説明します。

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

  2. [Data source](データ ソース) として [Azure SQL Database] を選択します。

  3. Azure SQL Database または Azure SQL Data Warehouse に固有の次のオプションを設定します。

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

    データベース名: 指定したサーバー上の既存のデータベースの名前を入力します。

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

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

    データベースクエリ: 読み取るデータを記述する SQL ステートメントを入力するか、貼り付けます。 Visual Studio サーバー エクスプローラーや SQL Server Data Tools などのツールを使用して、常に SQL ステートメントを検証し、クエリ結果を事前に確認してください。

    注意

    データのインポート モジュールでは、資格情報としてデータベース名、ユーザーアカウント名、パスワードの入力のみがサポートされています。

  4. Azure Machine Learning に読み取るデータセットが実験の実行間で変更されることが予想されていない場合は、[キャッシュされた 結果を使用する ] オプションを選択します。

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

    実験の各イテレーションでデータセットを再読み込みする場合は、このオプションをオフにします。 データセットは、Import Data (データのインポート) でパラメーターが変更されるたびにソースから再読み込みされます。

  5. 実験を実行します。

    インポートデータによってデータが Studio (クラシック) に読み込まれるときに、ソースデータベースで使用されているデータ型によっては、いくつかの暗黙的な型変換が実行されることもあります。

結果

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

必要に応じて、Studio (クラシック) のツールを使用して、データセットとそのメタデータを変更できます。

Machine learning で Azure データベースのデータを使用する方法の例については、次の記事と実験を参照してください。

テクニカル ノート

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

一般的な質問

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

データ の読み込みモジュールは 、データの読み取り中にフィルター処理をサポートしていません。 ビューを作成するか、必要な行だけを生成するクエリを定義することをお勧めします。

注意

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

"Decimal 型はサポートされていません" というエラーが表示されるのはなぜですか。

SQL データベースからデータを読み取るときに、サポートされていないデータ型を報告するエラーメッセージが表示されることがあります。

SQL データベースから取得したデータに Azure Machine Learning でサポートされていないデータ型が含まれている場合は、データを読み取る前に、小数点をサポートされているデータにキャストまたは変換する必要があります。 データのインポート では、有効桁数が失われる可能性のある変換を自動的に実行することはできません。

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

データベースが別の地理的リージョンにある場合はどうなりますか。 データをインポートしてもデータベースにアクセスできますか? データの格納場所

データベースが machine learning アカウントとは異なるリージョンにある場合、データアクセスの速度が低下する可能性があります。 さらに、コンピューティングノードがストレージアカウントとは異なるリージョンにある場合は、サブスクリプションでのデータの受信と送信に対して課金されます。

実験のためにワークスペースに読み取るデータは、実験に関連付けられているストレージアカウントに保存されます。

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

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

1つの方法として、Azure 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 エンドポイントを指定できます。
HDFS サーバーの URI any String なし HDFS rest エンドポイント
[データベース サーバー名] any String なし Azure ストレージ アカウント名
データベース名 any SecureString なし Azure ストレージ キー
サーバーのユーザー アカウント名 any String なし Azure コンテナー名
サーバーのユーザー アカウント名 リスト (サブセット) Url の内容 OData データの形式の種類
データベース クエリ any String なし データの形式の種類
キャッシュされた結果の使用 TRUE または FALSE Boolean false description

出力

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

例外

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

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

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

関連項目

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