クイックスタート - Azure Digital Twins Explorer でサンプル シナリオを使用して作業を始める

このクイック スタートでは、Azure Digital Twins の入門編として、Azure Digital Twins ではどのようにデータが表現されるかをお見せすると共に、物理的な建物のデジタル ツイン グラフに対してどのような操作を実行できるかを紹介します。 ここでは、Azure portal サイトと、Web ブラウザで Azure Digital Twins データを視覚化して操作することができるツールである Azure Digital Twins Explorer を使用します。

このクイック スタートでは、BuildingFloorRoom の概念をデジタルで定義した事前構築済みのサンプル モデルを扱い、これらのモデル定義を用いて物理的な建物の特定の階と部屋を表すデジタル ツインを作成します。 これらの個々のツインは、互いの関係を反映した仮想のツイン グラフに接続され、サンプル建物の完全なデジタル表現を形成することになります。 ここで使用するグラフは、2 つの階からなる建物を表し、各階には部屋があります。 グラフは次の画像のようになります。

Azure Digital Twins Explorer での、矢印で接続された 4 つの円形ノードで構成されたグラフのスクリーンショット。

この記事では、以下の手順に沿ってグラフを見ていきます。

  1. Azure Digital Twins インスタンスを作成し、Azure Digital Twins Explorer で開く。
  2. 事前構築済みのモデルとグラフ データをアップロードしてサンプル シナリオを構築する。 もう 1 つのツインを手動で追加する。
  3. IoT データを変更するシミュレーションを行い、グラフに対してクエリを実行して結果を確認する。
  4. 経験から学習したことを確認する。

注意

わかりやすくするために、このクイックスタートでは、モデル化された環境内の IoT デバイスや他のデータ ソースに由来するライブ データ フローのセットアップについては説明しません。 ツイン グラフを動かすシミュレーションされたエンドツーエンドのデータ フローをセットアップするには、「エンド ツー エンドのソリューションを接続する」のチュートリアルに進んでください。 サービス間のデータ フローと Azure Digital Twins をより広範な IoT ソリューションに統合する方法の詳細については、「データのイングレスとエグレス」を参照してください。

前提条件

このクイックスタートを完了するには、Azure サブスクリプションが必要です。 まだお持ちでない場合は、すぐに 無料で作成 できます。

また、クイックスタートで使用するサンプル グラフの素材をダウンロードする必要もあります。 次の手順で、必要なファイルをダウンロードします。 後で、これらを Azure Digital Twins にアップロードするための追加の手順について説明します。

  • モデル ファイル。 以下の各リンク先に移動して、画面の任意の場所を右クリックし、ブラウザーの右クリック メニューで [名前を付けて保存] を選択します。 [名前を付けて保存] ウィンドウを使用して、コンピューターのどこかにファイルを保存します。

    • Building.json: これは、建物をデジタルで定義するモデル ファイルです。 建物には階が含まれていることが指定されています。
    • Floor.json: これは、階をデジタルで定義するモデル ファイルです。 階には部屋が含まれていることが指定されています。
    • Room.json: これは、部屋をデジタルで定義するモデル ファイルです。 温度のプロパティが含まれています。
  • buildingScenario.xlsx: このスプレッド シートには、階と部屋を持つ特定の建物を表す 5 つのデジタル ツインを含む、サンプル ツイン グラフのデータが含まれています。 ツインは一般的なモデルをベースにしており、どの要素が互いに含まれているかを示すリレーションシップで接続されています。 ブラウザーの設定によっては、このリンクを選択すると、buildingScenario.xlsx ファイルが既定のダウンロードの場所に自動的にダウンロードされるか、ブラウザーでファイルが開いてダウンロードのオプションが表示される場合があります。 Microsoft Edge では、ダウンロードのオプションは次のようになります。

    buildingScenario.xlsx ファイルが Microsoft Edge ブラウザーで表示されているスクリーンショット。ダウンロードというボタンが強調表示されています。

ヒント

これらのファイルは、GitHub の Azure Digital Twins Explorer リポジトリのものです。 このリポジトリには、他のサンプル ファイル、エクスプローラー コードなどもあります。

Azure Digital Twins を設定する

Azure Digital Twins を操作する際の最初の手順は、すべてのグラフ データを保持する Azure Digital Twins インスタンスを作成することです。 このセクションでは、サービスのインスタンスを作成し、Azure Digital Twins Explorer で開きます。

Azure Digital Twins インスタンスを作成する

このセクションでは、Azure portal を使用して、Azure Digital Twins の新しいインスタンスを作成します。 ポータルに移動し、自分の資格情報でログインします。

  1. Azure portal に入ったら、Azure サービスのホーム ページ メニューで [リソースの作成] を選択して開始します。

    ホーム ページの [リソースの作成] アイコンが強調表示されている Azure portal のスクリーンショット。

  2. 検索ボックスで azure digital twins を検索し、結果から [Azure Digital Twins] サービスを選択します。

    [プラン] フィールドは [Azure Digital Twins] に設定したままにし、[作成] ボタンを選択してサービスの新しいインスタンスの作成を開始します。

    Azure Digital Twins サービス ページの [作成] ボタンが強調表示されている Azure portal のスクリーンショット。

  1. セットアップの [基本] タブにある、新しいインスタンスのサブスクリプション、リソース グループ、リソース名、リージョンなどのフィールドに入力します。 インスタンス内のデータを管理するためのアクセス許可を自分に付与するには、 [Assign Azure Digital Twins Data Owner Role](Azure Digital Twins データ所有者ロールの割り当て) ボックスをオンにします。

    Azure portal の Azure Digital Twins の [リソースの作成] プロセスのスクリーンショット。記述された値が入力されます。

    注意

    [Assign Azure Digital Twins Data Owner Role](Azure Digital Twins データ所有者ロールの割り当て) ボックスが淡色表示になっている場合、リソースへのユーザー アクセスを管理するためのアクセス許可がお使いの Azure サブスクリプションに含まれていません。 このセクションでインスタンスの作成を続行できます。その後、このクイックスタートの残りの部分を完了する前に、必要なアクセス許可を持つユーザーに依頼し、インスタンスでこのロールを自分に割り当ててもらう必要があります。

    この要件を満たす一般的なロールは、所有者アカウント管理者ユーザー アクセス管理者共同作成者の組み合わせです。

  2. [確認と作成] を選択し、インスタンスの作成を完了します。

  3. 入力した詳細を示す概要ページが表示されます。 [作成] を選択して確定し、インスタンスを作成します。

インスタンスのデプロイ状態を追跡する概要ページが表示されます。

Azure portal の Azure Digital Twins のデプロイ ページのスクリーンショット。デプロイが進行中であることがページに示されています。

デプロイが完了したことを示すページが表示されるまで待ちます。

Azure Digital Twins Explorer でインスタンスを開く

デプロイが完了したら、[リソースに移動] ボタンを使ってポータルのインスタンスの [概要] ページに移動します。

Azure portal の Azure Digital Twins の [デプロイ] ページのスクリーンショット。デプロイが完了したことがページに示されています。

次に、 [Azure Digital Twins Explorer を開く (プレビュー)] ボタンを選択します。

Azure Digital Twins インスタンスの [概要] ページが表示されている Azure portal のスクリーンショット。[Azure Digital Twins Explorer を開く (プレビュー)] ボタンが強調されています。

これにより、Azure Digital Twins Explorer が新しいタブで開きます。 Explorer を初めて使用する場合は、その主要な機能を要約したウェルカム モーダルが表示されます。

Azure Digital Twins Explorer は、お使いのインスタンスに自動的に接続する場合があります。 そうでない場合、次の画面が表示され、Azure Digital Twins URL を指定するように求められます。 (画面上にこのボックスが表示されない場合、このステップは Azure Digital Twins Explorer で自動的に完了しています。)

Azure Digital Twins Explorer のスクリーンショット。Azure Digital Twins URL モーダルには、 Azure Digital Twins URL の空の編集可能なボックスが表示されています。

このボックスが表示された場合は、フィールドに「https://」と入力し、続いてインスタンスのホスト名を入力します (これは、ポータルのインスタンスの [概要] ページで確認できます)。 これらの値の組み合わせがインスタンスの URL を構成します。 [保存] を選んでインスタンスに接続します。

重要

Azure Digital Twins Explorer はプライベート エンドポイントをサポートしていません。 パブリック アクセスを無効にするために Private Link を使用する Azure Digital Twins インスタンスと共に Azure Digital Twins Explorer を使用する場合、Azure Digital Twins Explorer コードベースをクラウドに非公開でデプロイできます。 これを行う方法については、「 Azure Digital Twins Explorer: クラウドでの実行」を参照してください。

サンプル シナリオを構築する

次に、Azure Digital Twins Explorer を使用して、サンプル モデルとツイン グラフを設定します。 まず、「前提条件」セクションでダウンロードしたモデル ファイルとツイン グラフのファイルをコンピューターにインポートすることから始めます。 その後、手動でもう 1 つツインを作成し、シナリオを終了します。

モデル

Azure Digital Twins グラフを作成する最初の手順は、対象となる環境のボキャブラリを定義することです。 モデルは、環境に存在する各エンティティの種類の汎用的な定義です。 このサンプル建物のシナリオには、建物、階、部屋が含まれているので、Building が何かを記述するモデル定義、Floor が何かを記述するモデル定義、Room が何かを記述するモデル定義がそれぞれ 1 つずつ必要になります。 後で、これらのモデルのインスタンスとなる "デジタル ツイン" を作成し、特定の建物、階、部屋を表現することができます。

Azure Digital Twins のモデルは、Digital Twin Definition Language (DTDL) という、JSON-LD に似たデータ オブジェクト言語で記述されています。 各モデルで、プロパティ、リレーションシップ、コンポーネントの観点から、1 種類のエンティティを記述します。

このクイックスタートでは、モデル ファイルが既に作成されています。 Building.jsonFloor.jsonRoom.json前提条件セクションでダウンロードしたため、Azure Digital Twins Explorer を使って、それらを Azure Digital Twins インスタンスにアップロードしましょう。

モデル (.json ファイル) をアップロードする

Azure Digital Twins Explorer で、次の手順に従って BuildingFloorRoom のモデル (先ほどダウンロードした .json ファイル) をアップロードします。

  1. [モデル] パネルで、上向きの矢印が表示されている [モデルのアップロード] アイコンを選択します。

    [モデル] パネルとその中の [モデルのアップロード] アイコンが強調されている Azure Digital Twins Explorer のスクリーンショット。

  2. 表示される [開く] ウィンドウで、コンピューターにダウンロードした .json ファイルが格納されているフォルダーに移動します。

  3. Building.jsonFloor.jsonRoom.json を選択し、[開く] を選択してすべてを一度にアップロードします。

Azure Digital Twins Explorer によって、これらのモデル ファイルが Azure Digital Twins インスタンスにアップロードされます。 これらは、フレンドリ名および完全なモデル ID と共に [モデル] パネルに表示されます。

モデルのオプションから [モデルの表示] を選択すると、各モデルの種類を定義する DTDL コードを確認できます。

3 つのモデル定義 Floor と Room が含まれる [モデル] パネルが表示されている Azure Digital Twins Explorer のスクリーンショット。

ツインとツイン グラフ

一部のモデル定義を Azure Digital Twins インスタンスにアップロードしたので、これらの定義を使用して、環境内の要素の "デジタル ツイン" を作成することができます。

ソリューション内のすべてのデジタル ツインは、物理環境に由来するエンティティを表します。 たとえば、Room モデルを使用する複数の部屋のツインのように、同じモデルの種類に基づいて多くのツインを作成することができます。 このクイックスタートでは、建物のデジタル ツインと、建物の各階と各部屋のデジタル ツインが必要です。 これらのツインはリレーションシップで接続され、建物全体の環境を表す "ツイン グラフ" となります。

このセクションでは、Building ツイン、Floor ツイン 2 つ、Room ツイン 2 つを含む、事前に作成されたグラフをアップロードします。

グラフ (.xlsx ファイル) をインポートする

Azure Digital Twins Explorer で、次の手順に従ってサンプル グラフ (前にダウンロードした .xlsx ファイル) をインポートします。

  1. [Twin Graph](ツイン グラフ) パネルで、クラウドを指す矢印が表示されている [Import Graph](グラフのインポート) アイコンを選択します。

    Azure Digital Twins Explorer の [ツイン グラフ] パネルのスクリーンショット。[グラフのインポート] ボタンが強調表示されています。

  2. [開く] ウィンドウで、前にダウンロードした buildingScenario.xlsx ファイルに移動します。 このファイルには、サンプル グラフのツイン データとリレーションシップ データが含まれています。 [Open (開く)] を選択します。

    数秒後、Azure Digital Twins Explorer で [インポート] ビューが開き、読み込まれるグラフのプレビューが表示されます。

  3. グラフのインポートを完了するには、グラフ プレビュー パネルの右上隅にある [保存] アイコンを選択します。

    グラフ プレビュー ペインの [保存] アイコンが強調されている Azure Digital Twins Explorer のスクリーンショット。

  4. アップロードしたファイルを使用して、要求したツインとそれらの間のリレーションシップが Azure Digital Twins Explorer によって作成されます。 次のダイアログ ボックスが表示され、インポートに成功したことを確認してから次へ進みます。

    グラフのインポートが成功したことを示すダイアログ ボックスが表示されている Azure Digital Twins Explorer のスクリーンショット。

    [閉じる] を選択します。

    これでグラフが Azure Digital Twins Explorer にアップロードされ、Twin Graph パネルが再読み込みされます。 空のように見えます。

  5. グラフを表示するには、Azure Digital Twins Explorer ウィンドウの上部近くにある、 [クエリ エクスプローラー] パネルの [クエリの実行] ボタンを選択します。

    ウィンドウの右上隅にある [クエリの実行] ボタンが強調されている Azure Digital Twins Explorer のスクリーンショット。

このアクションにより、すべてのデジタル ツインを選択して表示する既定のクエリが実行されます。 Azure Digital Twins Explorer によって、サービスからすべてのツインとリレーションシップが取得されます。 これらによって定義されたグラフが [Twin Graph](ツイン グラフ) パネルに描画されます。 次は、アップロードしたサンプル シナリオのグラフを確認しましょう。

アップロードしたグラフが表示されている Azure Digital Twins Explorer のスクリーンショット。

円 (グラフの "ノード") は、デジタル ツインを表します。 線はリレーションシップを表します。 BuildingA ツインには Floor0 と Floor1 ツインが含まれており (contains)、Floor0 ツインには Room0 が含まれており (contains)、Floor1 ツインには Room1 が含まれて (contains) います。 マウスを使用している場合、グラフ内をクリックしてドラッグすることにより、あらゆる要素を見ることができます。

別のツインを追加する

デジタル ツイン グラフを作成した後でも、構造を編集することはできます。 このサンプル建物の Floor1 に、最近別の部屋が建築されたとします。 このセクションでは、グラフに新しいツインを追加して、新しい部屋を表現します。

まず、作成したいツインの種類を定義するモデルを選択します。 左側の [Models](モデル) パネルで、Room モデルのオプション メニューを開きます。 [Create a Twin](ツインの作成) を選択し、このモデルの種類の新しいインスタンスを作成します。

モデル パネルが表示された Azure Digital Twins Explorer のスクリーンショット。Room モデルからツインを作成するオプションも表示されています。

[New Twin name](新しいツインの名前) に「Room2」と入力し、[Save](保存) を選択します。 これで新しいデジタル ツインが作成されます。これは、グラフの残りの部分とまだリレーションシップで接続されていません。

次に、Floor1 に Room2 が含まれていることを示すリレーションシップを追加します。 CTRL/CMD または SHIFT キーを使用して、グラフ内の Floor1 と Room2 を同時に選択します。 両方のツインを選択したら、Room2 を右クリックし、[Add relationships](リレーションシップを追加) を選択します。

Floor1 と Room2 の間にリレーションシップを追加している Azure Digital Twins Explorer のスクリーンショット。

すると、Floor1 から Room2 への "contains" リレーションシップの詳細があらかじめ入力されている、[Create Relationship](リレーションシップの作成) ダイアログが表示されます。 [保存] を選択します。

リレーションシップの作成オプションのスクリーンショット。

これで、Room2 がグラフに接続されました。 マウスを使用している場合は、グラフ内のツインをクリックしてドラッグすることで、好きな配置にすることができます。

Room2 が含まれている Azure Digital Twins Explorer のグラフのスクリーンショット。

ツインのプロパティを表示する

ツインを選択すると、ツインのプロパティと値の一覧が [プロパティ] パネルに表示されます。

次に示すのは、Room0 のプロパティです。 Room0 の温度は 70 であることがわかります。

[ツインのプロパティ] パネルが強調されている Azure Digital Twins Explorer のスクリーンショット。Room0 の $dtId、Temperature、Humidity の各プロパティが表示されています。

次に示すのは、Room1 のプロパティです。 Room1 の温度は 80 であることがわかります。

[ツインのプロパティ] パネルが強調されている Azure Digital Twins Explorer のスクリーンショット。Room1 の $dtId、Temperature、Humidity の各プロパティが表示されています。

Room2 は手動で作成したツインであるため、まだプロパティ値が設定されていません。 プロパティ値を設定するには、湿度 (humidity) が 50、温度 (temperature) が 72 になるようにフィールドを編集します。 [Save](保存) アイコンを選択します。

[ツインのプロパティ] パネルが強調されている Azure Digital Twins Explorer のスクリーンショット。Room2 の Temperature と Humidity が設定されています。

IoT データを変更するクエリ

Azure Digital Twins では、SQL スタイルの "Azure Digital Twins クエリ言語" を使って、ツイン グラフのクエリを実行して環境に関する質問の回答を得ることができます。 グラフ内のツインに対してクエリを実行する方法の 1 つは、それらの "プロパティ" を条件にすることです。 プロパティに基づいてクエリを実行すると、環境に関する質問の回答を得たり、環境内の異常値を特定したりすることができます。 完全に接続されたデータドリブンのシナリオでは、ツインのプロパティは、環境内のセンサーに由来する IoT データや他の接続されたデータソースに対応して、頻繁に変更されます。 このクイックスタートでは、センサーの読み取り値の変化をシミュレーションするために、値を手動で変更します。

まず、環境内の温度が 75 を超えているツインの数を確認するクエリを実行します。 [クエリ エクスプローラー] パネルで次のクエリを実行します。

SELECT * FROM DIGITALTWINS T WHERE T.Temperature > 75

先ほどのツインのプロパティを見ると、Room0 の温度が 70、Room1 の温度が 80、Room2 の温度が 72 と表示されていました。 Floor ツインには、Temperature プロパティがまったくありません。 そのため、ここで結果として返されるのは Room1 のみです。

プロパティのクエリの結果が表示されている Azure Digital Twins Explorer のスクリーンショット。Room1 だけが表示されています。

ヒント

その他の比較演算子 (<、>、=、または !=) もサポートされます。 これらの演算子、さまざまな値、さまざまなツイン プロパティをクエリに組み込んで、独自の質問の答えを導き出してみてください。

気温データを編集する

完全に接続された Azure Digital Twins ソリューションの場合、グラフ内のツインは実際の IoT デバイスやその他のデータ ソースからライブ更新を受け取り、実際の環境と同期するように自動的にプロパティが更新されます。 わかりやすくするために、このクイックスタートでは Azure Digital Twins Explorer を使って、Room0 の温度を 76 に手動で設定します。

まず、次のクエリを再実行して、すべてのデジタル ツインを選択します。 これにより、[Twin Graph](ツイン グラフ) パネルに完全なグラフがもう一度表示されます。

SELECT * FROM DIGITALTWINS

Room0 を選択して、[Twin Properties](ツインのプロパティ) パネルにプロパティの一覧を表示します。

温度の値を 70 から 76 に変更し、[Save](保存) アイコンを選択して温度を更新します。

Room0 で編集できるプロパティが表示されている [ツイン プロパティ] パネルが強調されている Azure Digital Twins Explorer のスクリーンショット。

プロパティの更新に成功すると、[Patch Information](パッチ情報) ボックスが開き、更新を実行するための Azure Digital Twins API と共に、バックグラウンドで使用されたパッチ コードが表示されます。

温度更新のパッチ情報を示す Azure Digital Twins Explorer のスクリーンショット。

パッチ情報を閉じます。

クエリを実行して新しい結果を確認する

Room0 の新しい温度をグラフに反映させるには、先ほどのクエリを再実行して、環境内のツインのうち、温度が 75 以上のものをすべて取得します。

SELECT * FROM DIGITALTWINS T WHERE T.Temperature > 75

Room0 の温度が 70 から 76 に変更されたので、今度は、Room0 と Room1 のツインが結果に表示されているはずです。

プロパティのクエリの結果が表示されている Azure Digital Twins Explorer のスクリーンショット。Room0 と Room1 の両方が表示されています。

学習内容の復習とまとめ

このクイックスタートでは、Azure Digital Twins のインスタンスを作成し、Azure Digital Twins Explorer を使用してそれにサンプル シナリオを設定しました。 また、デジタル ツインを手動で追加しました。

その後、以下を行って、グラフを表示しました。

  • クエリを使用して、シナリオについての質問の回答を得る。
  • デジタル ツインのプロパティを編集する。
  • 更新の結果、どのように回答が変化したかを調べるために同じクエリを再実行しました。

この演習の意図は、Azure Digital Twins のグラフをどのように使用すれば、特に IoT 環境が変化し続ける中で、対象となる環境についての質問への回答が得られるかを示すことです。

このクイックスタートでは、温度を手動で更新しました。 Azure Digital Twins では、デジタル ツインがデバイス テレメトリ データに基づいて自動的に更新を受信できるよう、それらを実際の IoT デバイスに接続するのが一般的です。 また、他のデータ ソースを接続し、異なるシステムからのデータを統合して、ツインを独自のロジックを定義して更新することもできます。 このようにすると、環境の実際の状態を常に反映するライブ グラフを作成できます。 クエリを使用すると、環境内で起きていることについての情報をリアルタイムで取得できます。

また、Azure Digital Twins のデータを履歴追跡、データ分析、AI サービスにエクスポートすることで、より深い分析結果を得たり、環境シミュレーションを実行したりすることもできます。 Azure Digital Twins を IoT ソリューションに統合することで、より効果的に過去を追跡し、現在を制御し、未来を予測することができます。

リソースをクリーンアップする

このクイックスタートの後でクリーンアップするには、次に行うことに基づいて、削除する Azure Digital Twins リソースを選択します。

  • Azure Digital Twins のクイックスタートとチュートリアルを続行する場合、このクイックスタートのインスタンスをそれらの記事で再利用できるため、インスタンスを削除する必要はありません。
  • この記事の Azure Digital Twins インスタンスを引き続き使用するが、そのモデル、ツイン、リレーションシップをすべてクリアする場合は、次の az dt job deletion CLI コマンドを実行してください:

    az dt job deletion create -n <name-of-Azure-Digital-Twins-instance> -y
    

    これらの要素の一部のみを削除する場合は、az dt twin relationship deleteaz dt twin deleteaz dt model delete コマンドを使用して、削除する要素のみを選択的に削除できます。

  • Azure Digital Twins インスタンスが不要になった場合は、Azure portal を使ってインスタンスを削除できます。

    ポータルでインスタンスの [概要] ページに戻ります (そのタブを既に閉じている場合は、そのインスタンスをもう一度見つけるには、Azure portal の検索バーでインスタンス名を検索し、検索結果からインスタンスを選びます)。

    [削除] を選び、インスタンスを、そのすべてのモデルとツインを含めて削除します。

    Azure portal での Azure Digital Twins インスタンスの [概要] ページのスクリーンショット。[削除] ボタンが強調表示されています。

また、ローカル コンピューターからサンプル プロジェクトのファイルを削除しておくことをお勧めします。

次のステップ

次のクイックスタートに進み、3D 環境で Azure Digital Twins シナリオを視覚化します。

または、チュートリアルに進んで、SDK、ツイン グラフの作成、イベント フローの設定について詳しく学びましょう。