クラウドエンジニアブログ

オンプレミスデータをインタラクティブ分析!②

human04

立脇 裕太

皆さん、こんにちは!

前回は、 Azure Analysis Services(以下、AAS)へ、オンプレミスの CSV ファイルにアクセスするモデルをデプロイするところまで実施しました。

今回は、CSV ファイルの変更を AAS 側に反映するため、AAS にデプロイしたモデルを更新する方法を紹介します。

AAS のモデル更新には以下1~4の方法があります。

  1. REST API
    https://docs.microsoft.com/ja-jp/azure/analysis-services/analysis-services-async-refresh
  2. Power Shell (Azure Automation 上での実行)
    https://azure.microsoft.com/ja-jp/blog/automation-of-azure-analysis-services-with-service-principals-and-powershell/
  3. C# (Azure Function上で実行)
    https://azure.microsoft.com/ja-jp/blog/automating-azure-analysis-services-processing-with-azure-functions/
  4. SQL Server Integration Services (以下、SSIS) のワークフローから更新

今回は、実装が一番楽な4番目の SSIS のワークフローから更新する方法を紹介します。
全体イメージは以下のとおりで、SSIS から Analysis Service DDL 実行のタスクを実行して実現します。

SSIS のワークフロー


まずは、SSIS のワークフローから開発します。
SQL Server Data Tools (以下、SSDT)で SSIS のプロジェクトを新規作成後、SSIS ツールボックス内の 「Analysis Service DDL …」をクリックした状態で制御フローのウィンドウ上へスライドさせて配置し、「Analysis Services DDL 実行タスク」をダブルクリックします。

SSIS ツールボックス

DDL を選択し、新しい接続を追加します。

新しい接続

編集ボタンをクリックし、AAS への接続情報を入力して設定します。

AAS への接続情報を入力

次に、 SourceDirect に AAS にデプロイしたモデルを更新する DDL を JSON ベースで Tabular Model Scripting Language (以下、TMSL) を記載する必要があるのですが、簡単に DDL を設定できる方法があります。

Analysis Services DDL実行タスクエディター

SQL Server Management Studio (以下、SSMS)で AAS へ接続し、対象テーブルを右クリックし、テーブルの処理をクリックします。

SQL Server Management Studio

モードを完全処理に選択し、スクリプトボタンをクリックするとエディタに JSON ベースの TMSL が生成されるのでコピーし、

スクリプトボタンをクリック

先ほどの SourceDirect にペーストして設定することができます。JSON データを作成する必要がないので設定が大分楽になるのではないでしょうか。

SourceDirect にペーストして設定

あとは、開始ボタンをクリックするだけ!
パッケージが正常終了していれば AAS のデータ更新が完了しているはずです!

パッケージが正常終了

AAS のデータ更新が完了

AAS のモデル更新を定期実行したい場合は、SSIS のパッケージ(dtsx ファイル) を SQL Server のエージェントにジョブとして登録する、SSIS のパッケージを dtexec コマンドで実行する BAT ファイルをタスクスケジューラに登録する、等の方法で実現することができます。
[参考]Integration Services (SSIS) パッケージの実行

また、今回 AAS が更新できる CSV ファイルは1ファイルのみですが、実運用では特定のディレクトリ内の CSV ファイルをすべて AAS へ反映したいという要望もでてくると思います。
そういったご要望がある場合は、別途 SQL Server のデータベースを用意し、SSIS で一旦データベースへ取り込んだ後、AAS からデータベースのデータを取得することにより実現することができます。

皆さんも是非お試しください!それでは!



次回予告
  • IoT Edge/オンプレミスで動く Azure?


【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録