結果を保持するための Azure SQL DB を作成する

このユニットでは、Azure Cloud Shell を使って Azure SQL データベースを作成します。 このデータベースでは、Stream Analytics に接続された Azure 関数からの出力が収集されます。

ポータルでの作業中に Azure Cloud Shell がタイムアウトした場合は、再接続してください。 すべてのファイルとフォルダーはまだ存在していますが、これは新しいターミナル セッションであるため、前に設定した環境変数は失われます。 続ける前に、適切な値で次のステートメントを実行してください。

export HUB_NAME={iot-hub-name}
export ACCOUNT_NAME={storage-account-name}
  1. 右側の Cloud Shell で、プロジェクト フォルダー photoproc にいることを確認します。 シェルで cd コマンドを使って、適切なフォルダーに切り替えられることを思い出してください。

  2. Azure SQL DB の名前を保持する環境変数を作成します。 サーバー名は Azure 内で一意である必要があります。

    export SERVER_NAME={server-name}
    
  3. Cloud Shell で次のコマンドを実行して、リソース グループにデータベース サーバーを作成します。

    • {username}{pw} は、管理者ユーザーのユーザー名とパスワードに置き換えます。 後で必要になるので、入力したユーザー名とパスワードを憶えておいてください
    az sql server create --name $SERVER_NAME \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --location southcentralus \
        --admin-user {username} --admin-password {pw}
    

    重要

    管理者パスワードは、8 文字以上でなければなりません。 ユーザー名は、SQL Server で予約されている名前 ("admin" や "sa" など) にすることはできません。 ユーザー名 "adminuser" は有効なので、使いたければ使用できます。

  4. 次のコマンドを使って、お使いの Azure SQL サーバーに photodb データベースを作成します。

    az sql db create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --server $SERVER_NAME \
        --name photodb \
        --service-objective S0
    

データベースへのネットワーク アクセスをセットアップする

レポートのために他の Azure サービスおよび Power BI からデータベースにアクセスする必要があります。 Azure portal を使って、これらの規則をファイアウォールに追加します。

  1. Azure portal に切り替えて、データベース サーバーを見つけます。使った名前を画面上部のグローバル検索ボックスに入力し、リソースを簡単に検索できます。

  2. 左側のメニューの [ファイアウォールと仮想ネットワーク] を選択します。

  3. [Azure サービスへのアクセスを許可する] をオンにして、他の Azure サービスがサーバーに接続することを許可します。

  4. Power BI Desktop からデータベースに接続できるように、[+ クライアント IP の追加] を選択します。

  5. ビューの上部にある [保存] をクリックして、変更を保存します。

    Azure にデータベース サーバーへのアクセスを許可する

データベース テーブルを作成する

シロクマの目撃を保持するテーブルが必要です。 Azure portal で作成してみましょう。

  1. サーバーで作成したデータベースを選択します。 [概要] ウィンドウに切り替えてそこからデータベースを選択するか、左のサイド バーで [SQL データベース] を選択してからデータベースを選択します。

  2. 左側のメニューで [クエリ エディター] を選択し、サーバーを作成するときに指定したユーザー名とパスワードを入力します。

  3. [OK] を選択してデータベースにサインインします。

    データベース サーバーへのログイン

  4. クエリ ウィンドウに次のステートメントを貼り付けた後、[実行] をクリックしてデータベース テーブルを作成します。

    CREATE TABLE [dbo].[PolarBears]
    (
        [Id] [uniqueidentifier] NOT NULL,
        [CameraId] [nvarchar](16) NULL,
        [Latitude] [real] NULL,
        [Longitude] [real] NULL,
        [Url] [varchar](max) NULL,
        [Timestamp] [datetime] NULL,
        [IsPolarBear] [bit] NULL,
        PRIMARY KEY CLUSTERED ([Id] ASC)
        WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    )
    ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
    
    ALTER TABLE [dbo].[PolarBears] ADD DEFAULT (newid()) FOR [Id]
    GO
    
    ALTER TABLE [dbo].[PolarBears] ADD DEFAULT (getdate()) FOR [Timestamp]
    GO
    
    ALTER TABLE [dbo].[PolarBears] ADD DEFAULT ((0)) FOR [IsPolarBear]
    GO
    
  5. 左側のツリー ビューでテーブルの一覧を展開し、PolarBears テーブルが作成されたこと、および次のスキーマを持っていることを確認します。

    データベースの "PolarBears" テーブル

主に必要な列の名前は IsPolarBear であり、対応する画像にシロクマが含まれるかどうかを示す 1 または 0 に設定されます。