SQL ServerでRを使用したSSISおよびSSRSワークフローの作成

  • 08/28/2020
  • 5 読むべき分
    • d
    • M
    • a
    • D
    • c
    • C
    • C
    • C
    • +2

適用先:SQL Server2016(13.x)以降

この記事では、sql Server Integration Services(SSIS)とSQL Server Reporting Services SSRSという二つの重要なSQL Server機能を備えたSQL Server Machine Learning Servicesの言語機能とデータサイエンス機能を使用して、組み込みR SQL ServerのRライブラリとPythonライブラリには、統計関数と予測関数が用意されています。 SSISとSSRSは、それぞれ調整されたETL変換と視覚化を提供します。 この記事では、これらすべての機能をこのワークフローパターンにまとめる方法について説明します:

  • 実行可能なRまたはPythonを含むストアドプロシージャを作成する
  • SSISまたはSSRSからストアドプロシージャを実行します

この記事の例は主にRとSSISに関するものですが、概念と手順はPythonにも同様に適用されます。 第二のセクションでは、SSRSの視覚化のためのガイダンスとリンクを提供します。

自動化のためのSSISの使用

データサイエンスワークフローは非常に反復的であり、スケーリング、集計、確率の計算、属性の名前変更とマージなど、データの多くの変 データサイエンティストは、R、Python、または他の言語でこれらのタスクの多くを行うことに慣れていますが、エンタープライズデータでこのようなワークフローを実

R Services(In-Database)を使用すると、Transact-SQLおよびストアドプロシージャを使用してRで複雑な操作を実行できるため、データサイエンスタスクを既存のETLプロセスと統合 メモリを大量に消費する一連のタスクを実行するのではなく、Integration ServicesやTransact-SQLなどの最も効率的なツールを使用してデータ準備を最適化できます。

Integration Servicesを使用してデータ処理とモデリングパイプラインを自動化する方法について、いくつかのアイデアを次に示します:

  • オンプレミスまたはクラウドソースからデータを抽出してトレーニングデータを構築
  • データ統合ワークフローの一部としてRまたはPythonモデルを構築して実行
  • ssisタスクを使用してsqlデータベースにデータフィーチャを作成する
  • 条件分岐を使用してrジョブとpythonジョブの計算コンテキストを切り替える

ssis例

SSISを使用してタスクを自動化します。 Sql Server Management Studioを使用してembedded Rを使用してストアドプロシージャを作成し、SSISパッケージのT-SQLタスクの実行からそれらのストアドプロシージャを実行します。

この例をステップ実行するには、Management Studio、SSIS、SSISデザイナー、パッケージデザイン、およびT-SQLに精通している必要があります。 SSISパッケージは、学習データをテーブルに挿入し、データをモデル化し、予測出力を取得するためにデータをスコア化する3つのT-SQL実行タスクを使用します。

学習データの読み込み

SQL Server Management Studioで次のスクリプトを実行して、データを格納するテーブルを作成します。 この演習では、テストデータベースを作成して使用する必要があります。

学習データをデータフレームに読み込むストアドプロシージャを作成します。 この例では、組み込みのIrisデータ-セットを使用しています。

SSISデザイナーで、定義したストアドプロシージャを実行するSQL実行タスクを作成します。 SQLStatement用のスクリプトは、既存のデータを削除し、挿入するデータを指定してから、ストアドプロシージャを呼び出してデータを提供します。

モデルの生成

SQL Server Management Studioで次のスクリプトを実行して、モデルを格納するテーブルを作成します。

rxlinmodを使用して線形モデルを生成するストアドプロシージャを作成します。 RevoScaleRおよびrevoscalepyライブラリは、SQL Server上のRおよびPythonセッションで自動的に使用できるため、ライブラリをインポートする必要はありません。

SSISデザイナーで、generate_iris_rx_modelストアドプロシージャを実行するSQL実行タスクを作成します。 モデルはシリアル化され、ssis_iris_modelsテーブルに保存されます。 SQLStatementのスクリプトは次のとおりです:

チェックポイントとして、このタスクが完了した後、ssis_iris_modelsにクエリを実行して、バイナリモデルが1つ含まれていることを確認できます。

“訓練された”モデルを使用して結果を予測する

訓練データをロードしてモデルを生成するコードができたので、残りのステップはモデルを使用して予

これを行うには、rスクリプトをSQLクエリに入れて、ssis_iris_modelの組み込みR関数rxPredictをトリガーします。 Predict_species_lengthと呼ばれるストアドプロシージャがこのタスクを実行します。

SSISデザイナーで、predict_species_lengthストアドプロシージャを実行して予測された花びらの長さを生成するSQL実行タスクを作成します。

exec predict_species_length 'rxLinMod';

ソリューションを実行する

SSISデザイナーで、f5キーを押してパッケージを実行します。 次のスクリーンショットのような結果が表示されるはずです。

視覚化にSSRSを使用する

Rはグラフや興味深い視覚化を作成できますが、外部データソースとの統合が不十分であり、各グラフやグラフを個別に作成する必 共有も困難な場合があります。

Rサービス(データベース内)を使用すると、Transact-SQLストアドプロシージャを使用してRで複雑な操作を実行できます。

この記事のSSISとSSRSの例は、埋め込みRまたはPythonスクリプトを含むストアドプロシージャを実行する2つのケースを示しています。 重要なのは、ストアドプロシージャで実行要求を送信できるアプリケーションやツールでRまたはPythonスクリプトを使用できるようにすることです。 SSISのもう1つの利点は、データ収集、クレンジング、操作などの幅広い操作を自動化してスケジュールするパッケージを作成し、rまたはPython data scienceの機能を操作 詳細とアイデアについては、”SQL Server Machine Learning Servicesでのストアドプロシージャを使用したRコードの操作”を参照してください。

コメントを残す

メールアドレスが公開されることはありません。