Dynamics 365のブログ
2019.07.11

Dynamics 365 のデータを Azure SQL へエクスポート

Dynamics 365 カスタマイズ [More]

569385109
Author: Takafumi Noguchi
 LinkedIn

Dynamics 365 のデータを Data Export Service というアドオン サービスを使って、Azure SQL Server にエクスポートする方法をご紹介します。

Dynamics 365 には監査履歴によるデータ変更の追跡や、インスタンスの日時バックアップによるインスタンスの復元などでデータリカバリーはできるものの、削除してしまったデータの復元については、XRM Toolbox を使って復元する以外の便利な方法がなかったので、Data Export Service は重宝しています。

Data Export Service のセットアップ作業については公式ドキュメントのAzure SQL データベースでデータを複製に手順の記載がありますが、Key Vault URL 生成の手順が、ドキュメントだけを読んでも正しくできなかったので、調査した内容を加えて今回まとめることにしました。

目次

  • 事前準備
    • Azure SQL データベース サービス
    • Azure Key Vault サービス
  • Key Vault URL の生成
  • Data Export Service のセットアップ
    • 監査の有効化
    • Data Export Service をインストール

事前準備

Data Export Service のセットアップにあたり以下の準備が必要です。

  • Azure SQL データベース
  • Azure Key Vault サービス
  • ローカルに SSMS (SQL Server Management Studio)のインストール (ここでは手順割愛)

もし Azure アカウントを持っていない場合は、無償版を事前にセットアップしておいてください。

※必要な権限については  [データ エクスポート サービス] を使用するための前提条件 をご確認ください。

Azure SQL データベース サービス

Azure ポータルへログインして、SQL データベースを作成します。

「データベース名」を入力して「サーバー」を選択したら、「確認および作成」をクリックします。もしサーバーを作成していない場合は、新しいサーバーを作成します。

ここで設定する「サーバー管理者ログイン」と「パスワード」は Azure SQL 接続時に必要は情報なのでメモしておきます。

「作成」というボタンをクリックしてSQLデータベースを作成します。作成が完了したら下図のようになります。

作成した Azure SQL の「接続文字列」を開き、「ADO.NET」タブを開きます。この文字列をコピーします。

メモ帳などに張り付け、以下の部分を上記のSQLサーバー管理者アカウントとパスワードを入力します。

ID={your_username};Password={your_password};

この接続文字列は、後述の Key Vault  URL の生成 で必要になります。

Azure Key Vault サービス

次に Azure Key Vault  の準備です。「リソースの作成」から “Key Vault” で検索します。

  

Key Vault で「作成」をクリック。

キーコンテナ名などを入力して作成します。

作成したら「概要」を確認します。

ここで記載されている

  • リソースグループ
  • 場所
  • サブスクリプションID
  • ディレクトリID

は後程の Key Vault  URL の生成 で必要な情報になります。

Key Vault を作成したら、「シークレット」を開き「生成/インポート」をクリックします。

ここでシークレットの名前と値を入力して保存します。

このシークレットの名前も Key Vault  URL の生成 で必要な情報になります。

参照:Azure Key Vault とは

 

Key Vault URL の生成

Data Export Service で Dynamics 365 と Azure SQL サーバーを接続するために Key Vault URL を生成する必要があります。

公式ドキュメントの  Azure Key Vault の設定方法  にある Power Shell コマンドを実行すると URL を取得できます。

スクリプトを実行する前に、次の変数のプレースホルダーを置き換えます。

$subscriptionId。 使用する Key Vault リソース グループ。 リソース グループが存在しない場合は、指定した名前の新しいグループが作成されます。 この例では、[ContosoResourceGroup1] が使用されます。

$location。 [米国西部] などの、リソース グループまたはあるべき場所を指定します。

$connectionString。 [Azure SQL Database] への接続文字列。 [Azure] ダッシュボードに表示される場合は、ADO.NET 接続文字列を使用できます。

$organizationIdList =許可された Dynamics 365 for Customer Engagement アプリ組織のコンマ区切り一覧は、データ エクスポート サービス を有効にする組織 ID (organizationId) で一覧表示されます。 組織の ID を調べるには、Dynamics 365 for Customer Engagement アプリで、設定 > カスタマイズ > 開発者リソースの順に移動します。 組織 ID は、インスタンス参照情報にあります。

$tenantId。 Key Vault サブスクリプションが する Azure Active Directory テナント ID を指定します。

ただ、ドキュメントを読むだけではちょっと理解しづらいのと一部間違いがあるので 1つずつ説明します。

以下のパラメーターについては、Key Vault の「概要」とシークレット名から取得。

  • $subscriptionId は サブスクリプションID (公式ドキュメントでは リソースグループと間違った記載になっている)
  • $keyvaultName は Key Vault の名前
  • $resourceGroupName は リソースグループ
  • $location は 場所
  • $tenantId は ディレクトリ ID

  • $secretName は Key Vault で作成したシークレットの名前

この部分は、SQL サーバーの「接続文字列」から取得。

  • $connectionString は上記の SQL サーバー作成時に確認した「接続文字列」の部分 (SQL サーバーアカウントとパスワード設定済)

ここは Dynamics 365 から取得。

  • $organizationIdList は エクスポートする Dynamics 365 インスタンス参照情報 の ID

Dynamics 365 にアクセスして「設定」の「カスタマイズ」より「開発者リソース」を開き、「インスタンス参照情報」の 「ID」をコピーします。

(例)各値が下記の場合

  • サブスクリプションID:0aaaaaaa-9999-ff44-0000-xxxxxxxxTest
  • Key Vault 名:vdemovault
  • シークレット名:vdemoPswd
  • リソースグループ名:NetworkWatcherRG
  • 場所:米国東部
  • SQL サーバー名:demodemo.database.windows.net
  • SQL サーバーアカウント:sqladmin
  • パスワード:[email protected]
  • インスタンス参照情報 の ID:12345678-bbbb-test-demo-9876543210vd
  • ディレクトリID:xxxxxxxx-0000-1111-2222-yyyyyyyyyyy

Power Shell コマンドの各パラメーターの値は以下のようになります。

  • $subscriptionId = ‘0aaaaaaa-9999-ff44-0000-xxxxxxxxTest‘
  • $keyvaultName = ‘vdemovault‘
  • $secretName = ‘vdemoPswd‘
  • $resourceGroupName = ‘NetworkWatcherRG‘
  • $location = ‘米国東部‘
  • $connectionString = ‘Server=tcp:demodemo.database.windows.net,1433;Initial Catalog=demodemo;Persist Security Info=False;User ID=sqladmin;Password=[email protected];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;’
  • $organizationIdList = ‘12345678-bbbb-test-demo-9876543210vd‘
  • $tenantId = ‘xxxxxxxx-0000-1111-2222-yyyyyyyyyyy‘

Azure で Power Shell を実行するには、右上の  >_ が Power Shell コマンド起動ボタンなのでクリックします。画面下に、上記で用意したパラメーターと残りのコマンドを張り付けて実行しましょう。

コマンドの途中

# Login to Azure account, select subscription and tenant Id
Login-AzureRmAccount

でログインが求められるので、コマンド内の https://microsoft.com/devicelogin にアクセスして、 code を入力します。

デバイスのログインページで、コードを入力したら「続行」をクリック。

以下の画面になったら、このログイン画面は閉じてOKです。先ほどの Azure Power Shell 画面に戻りましょう。

すべて完了したら、下記のような URL が生成されます。

この Key Vault URL を後述の Data Export Service セットアップ時に使います。

Data Export Service のセットアップ

Dynamics 365 に管理者でログインして、Data Export Service をセットアップします。

監査の有効化

エクスポートしたいエンティティの監査を有効にする必要があります。

「設定」の「管理」から「システムの管理」を開き、「監査」タブにて「監査の開始」にチェックを入れます。領域については、そのまま共通エンティティのみにチェックで「OK」をクリックします。

次に「設定」の「カスタマイズ」から「システムのカスタマイズ」をクリックして、

特定のエンティティの「情報」を開き、「データサービス」の「監査」にチェックをいれて保存してください。

Data Export Service をインストール

まず、「設定」の「Microsoft AppSource」をクリックします。

Data Export Service を検索して「今すぐ入手する」をクリックします。

チェックをいれて、「続行」をクリックします。

インストールするインスタンスを選択して、2つにチェックを入れたら「同意する」をクリック

インスタンスにインストールが完了したかどうかを確認します。

インストールされると、「設定」に「データのエクスポート」が表示されているので開きます。

ポップアップブロックがされていると開かないので許可しておきましょう。開いたら「+NEW」をクリックします。

Create Export Profile のダイアログで、Name は任意、Key Vault URL は上記で取得した URL を設定します。その他はそのままで、「Validate」をクリックします。

Validate がうまくいくとダイアログが表示されます。「OK」をクリックします。

「Next」をクリックして、エクスポートしたいエンティティを検索してチェックします。(監査が有効になっていないエンティティはグレーアウトしています。)

今回は、取引先企業・担当者・営業案件を選択しました。選択が完了したら「Next」をクリック。

Relationship の追加はないので「Next」

完了。「Create & Activate」をクリックします。

しばらくするとエクスポートが完了です。

SSMS 側でも確認してみると、テーブルが増えていることが確認できました。

無事にエクスポートできました。これでセットアップは終了です。

最後に、便利な Data Export Service ですが、既知の問題も記載されているので、検証を終えて、本番導入する場合は事前に目を通しておいてください。※特に 「行の最大許容サイズ 8060 より大きい行を作成できない」制限をきちんと把握してから、エクスポートの計画を立てていくことをお勧めます。

今回はここまで。

この記事を読んだ方は他にこんな記事を読んでいます。

  • オンプレミスの SQL Server からデータを取得するオンプレミスの SQL Server からデータを取得する
  • Dynamics 365の導入スケジュールと手順を考えようDynamics 365の導入スケジュールと手順を考えよう
  • メジャーアップデート適用方法の変更【2019.08】メジャーアップデート適用方法の変更【2019.08】
  • なぜ Dynamics 365 を選ぶべきか?なぜ Dynamics 365 を選ぶべきか?
  • CRM システムについて理解するCRM システムについて理解する
  • 設定のサイトマップを調整する設定のサイトマップを調整する

人気の記事

    Ribbon Workbench:フィールド値でボタンを表示・非表示にする

    Ribbon Workbench:フィールド値でボタンを表示・非表示にする

    • 2020.05.5
    • Dynamics 365 カスタマイズ [More]
    Dynamics 365 アプリの設定

    Dynamics 365 アプリの設定

    • 2017.10.26
    • Dynamics 365 の初期設定 [More]
    オンプレミスの SQL Server からデータを取得する

    オンプレミスの SQL Server からデータを取得する

    • 2019.06.11
    • 他システム連携
    Dynamics 365 ポータルアドオンの利用

    Dynamics 365 ポータルアドオンの利用

    • 2019.05.13
    • Dynamics 365 の初期設定
    Dynamics 365 の製品カタログで営業力を高める

    Dynamics 365 の製品カタログで営業力を高める

    • 2018.02.6
    • Dynamics 365 for Sales [More]
    Dynamics 365 ダッシュボードで情報の可視化を行う

    Dynamics 365 ダッシュボードで情報の可視化を行う

    • 2018.07.10
    • Dynamics 365 for Sales [More]
Dynamics 365のブログ / Dynamics 365 カスタマイズ [More] / Dynamics 365 のデータを Azure SQL へエクスポート
Dynamics 365のブログ

© Copyright ANDAZE. All rights reserved.