Azure IoT Hubを触ってみた② SDK編

前回から複数回に分けて、Azure IoT Suiteの1つ「IoT Hub」についてご紹介しています。
第二回はAzure公式から提供されているSDKツールを使ってIoT Hubへの通信を行います。

第一回の記事はこちらです。
AZURE IOT HUBを触ってみた① 作成編

IoT Hubと通信するには

前回はAzureポータルからIoT Hubの設定を行いましたが、ここからの作業はポータルではなくC#等のプログラム、CLIを利用する必要があります。

また、実際にデバイスからIoT Hubへ通信を行うためには、予めIoT Hub側の「デバイスIDレジストリ」にデバイスを登録する必要があります。

そこで、簡単に通信ができるようにとAzure公式ホームページからガイダンスプログラムやオープンソースSDKが提供されております。
https://azure.microsoft.com/ja-jp/develop/iot/

今回はGitHubで公開されているツールを利用します。
Visual Studioが必要ですが、IoT Hubへの通信を行うための情報をGUIベースで簡単に作成することができます。

また、後ほどIoT Hubの共有アクセスポリシーの接続文字列を入力するので予め控えておいてください。

オープンソースSDKツールの起動

GitHubの下記ページからダウンロードができます。
https://github.com/Azure/azure-iot-sdks

ダウンロードしましたら「azure-iot-sdks-master」→「tools」→「DeviceExplorer」の順に開き、「DeviceExplorer.sln」をVisual Studioで開きます。

Visual Studioでファイルを開いたら「開始」アイコンをクリックします。

しばらくするとツールが立ち上がります。

SDKツールの操作

SDKツールではSASトークン作成やデバイスID管理の他にデータのモニタリング、IoT Hubからデバイスへのメッセージ送信ができます。

今回は、SASトークンとデバイスIDを作成し、データの受信確認を行います。
まず、Configurationタブの「IoT Hub Connection String」の欄に、先ほど控えておいた共有アクセスポリシーの接続文字列を入力し、Updateをクリックします。
※Protocol Gateway HostNameは今回入力不要です。

Updateが完了したら「Shared Access Signature」エリアに共有アクセスポリシーの情報が入力されます。
TTLを設定した後、「Generate SAS」をクリックするとIoT Hubに接続するためのSASが作成されます。

続いて、デバイスIDの登録を行います。
Managementタブを開き、「Create」をクリックします。

この画面でデバイスIDとアクセスキーの命名を行います。
なお、自動生成させることも出来ます。

デバイスIDの登録が完了すると一覧で表示されます。
以上で準備は完了です。

動作テスト

以前、Event Hubの弊社記事の際にも利用した簡易APIテストツールでIoT Hubへの通信を行います。

AZURE EVENT HUBSを触ってみた④ REST API送信編

注意点としては、URIの中で先ほど登録したデバイスIDを指定する必要があります。

REST APIの通信が成功すると、SDKツールの「Data」タブで中身を確認することができます。

いかがでしたでしょうか。
IoT Hubを便利に利用できるSDKツールをご紹介しました。
今後もIoT Hubに関する記事をどんどんご紹介していきたいと思います。

お楽しみに!


Azure IoT Hubを触ってみた① 作成編

今回から複数回に分けて、Azure IoT Suiteの1つ「IoT Hub」についてご紹介します。
第一回はIoT Hubの作成方法と管理画面についてご紹介します。

IoT Hubとは

IoT Hubは、その名の通りIoTデバイスとクラウドを繋ぐ為のサービスです。
以前、似たようなサービスとして「Event Hubs」をご紹介しましたが、Event Hubsとの大きな違いは下記の通りです。

・デバイスとクラウドでの双方向通信が可能。
・デバイス毎にIDを登録して認証する為、よりセキュアに利用できる。

なお、2016年2月現在で利用可能なリージョンは、ヨーロッパ西部・北部、米国西部・東部、東アジア、東南アジアとなっております。

IoT Hubsの作成

Azureポータル左のメニューからIoT Hubを選択します。

左上の「追加」をクリックします。

この画面でIoT Hubの設定を行います。

「価格とスケールティア」の項目では現在3つの価格帯から選択できます。
それぞれ1日単位でやり取りすることができるメッセージ数が決まっている為、要件に合わせて選択する必要があります。

ユニット数・パーティション数の他、リソースグループやサブスクリプション、リージョンを指定したら「作成」をクリックします。

作成が完了したらIoT Hubの管理画面を操作できます。

管理画面でできること

IoT Hubの管理画面では基本情報や使用状況の確認の他、設定確認・変更ができます。
※現在メトリクスの監視は提供されていないようです。

設定ページでは監査ログの確認の他、価格帯変更やメッセージ送受信設定が可能です。
メッセージ送受信設定ページではTTLやパーティション数の設定の他、Event HubからIoT Hubに繋ぐための互換設定も確認できます。

また、共有アクセスポリシーのページではIoT Hubを扱う為のポリシー管理ができます。
デフォルトではそれぞれ役割の異なる5つのポリシーが準備されています。

次回はこの共有アクセスポリシーを用いてIoT Hubへのデバイス登録・通信を行います。

お楽しみに!


Azure Data Lakeを触ってみた② Analytics編

複数回に分けて、Azure Data Lakeの使い方についてご紹介します。
第二回はAzure Data LakeのAnalyticsを設定します。

前回の記事はこちらです。
Azure Data Lakeを触ってみた① Store編

Azure Data Lake Analytics

前回のおさらいとなりますが、2016年2月現在でAzure Data Lake は2つのサービスが提供されています。
・Azure Data Lake Store
・Azure Data Lake Analytics

主な役割としてはAzure Data Lake Storeがビッグデータを格納する為のリポジトリとなり、Azure Data Lake Analyticsで分散分析を行うというものになります。

前回はStoreの設定方法をご紹介したので、今回はAnalyticsの設定方法を紹介していきます。

Azure Data Lake Analyticsの設定

まずはAzureポータルにログインし、左のメニューから「Data Lake Analytics」を選択します。

左上のボタンより「追加」をクリックします。

この画面でAnalyticsの設定を行います。
Analyticsを利用するにあたっては、データの格納先としてData Lake Storeを指定する必要がある為、既存のStoreを指定するか新規に作成する必要があります。


設定が完了し、Analyticsがデプロイされるのを待ちます。

クイックスタートを試す

今回はAzureから提供されているサンプル用のプログラムを実行します。
「Settings」の「Quick Start」をクリックします。

「Browse Sample Jobs」をクリックします。

「Copy Sample」をクリックします。

サンプルデータをStoreにコピーします。

サンプルで使うU-SQLのjobが表示されます。
内容は「SearchLog.tsv」から指定のカラムを抜き出し、体系化してから「SerchLog_output.tsv」に出力するというものです。
「Submit Job」をクリックするとジョブが実行されます。

ジョブの実行中は「Preparing」と表示されます。これが「Succeeded」という表示に変わればジョブが完了しています。

INPUT(元データ)とOUTPUT(出力データ)はそれぞれ「File Preview」で確認できます。



いかがでしたでしょうか。

前回と合わせてAzure Data Lakeをご紹介してきました。
Storeには形式・サイズを気にせずデータを置くことができ、Analyticsを使えば加工・分析を簡単に実行することができます。
従来のクラウドサービスとは一線を画すビッグデータサービスなので是非ご利用をご検討ください。

次回もお楽しみに!


Azure Data Lakeを触ってみた① Store編

今回から数回に分けて、Azure Data Lakeの使い方についてご紹介します。
第一回はAzure Data LakeのStoreを設定します。

Azure Data Lakeの概要については下記記事でもご紹介しています。
AZURE DATA LAKE について

Azure Data Lakeのコンポーネント

昨年10月に正式プレビューされたAzure Data Lakeですが、2016年2月現在で2つのサービスが提供されています。
・Azure Data Lake Store
・Azure Data Lake Analytics

主な役割としてはAzure Data Lake Storeがビッグデータを格納する為のリポジトリとなり、Azure Data Lake Analyticsで分散分析を行うというものになります。

Azure Data Lake Storeの設定

まずはAzureポータルにログインし、左のメニューから「Data Lake Store」を選択します。

左上のボタンより「追加」をクリックします。

Storeの設定を行います。
利用料金は使った分だけ請求される形式となっております。
また、利用できるリージョンは米国東部2リージョンのみとなっております。
※2016年2月現在

設定が完了し、Storeがデプロイされるのを待ちます。

データのアップロード

デプロイが完了したら早速データをアップロードしてみます。
「Data Explorer」を開きます。

「New Folder」をクリックしフォルダを作成します。


続いてデータのアップロードを行います。
「アップロード」をクリックします。

今回利用するデータはAzureからサンプルとして提供されているものを利用します。
https://github.com/Azure/usql/tree/master/Examples/Samples/Data/AmbulanceData

アップロードが完了したファイルをクリックすると「File Preview」という形でデータの閲覧が出来ます。

左上の「Format」をクリックすると、表示形式や表示行数の変更、区切りの指定などができます。

また、どのくらいストレージの容量を使っているかはモニタリングされているので簡単に確認ができます。


いかがでしたでしょうか。

次回はStoreに上げたデータをAnalyticsで分析してみます。
お楽しみに!


Stream Analyticsを触ってみた② SQL databse編

今回は、前回作ったStream AnalyticsからSQL databaseへ出力する手順について紹介します。

※Stream Analyticsの基本操作とSQL databaseの作成方法は下記の記事を御覧ください。
STREAM ANALYTICSを触ってみた① 基本操作編

5分で立てるSQL DATABASE

SQL databaseの準備

まずはSQL databaseのテーブルを用意します。
今回はテスト用なので簡易なテーブルにします。

SQL構文は下記です。
CREATE TABLE [dbo].[recipesample] (
[DeviceId] NVARCHAR (15) NOT NULL,
[Temperature] NVARCHAR (15) NOT NULL
);

GO
CREATE CLUSTERED INDEX [pvTblIdx]
ON [dbo].[recipesample]([DeviceId] ASC);

Stream Analyticsの設定

Stream Analyticsのポータル画面を開き、「出力」タイルをクリックします。

「追加」をクリックします。

シンクの項目で「SQLデータベース」を選択し、データベース名やテーブル名等の接続情報を入力後、「作成」をクリックします。

続いてポータル画面に戻り、「クエリ」タイルをクリックします。

「INTO」の部分に先ほど作成した「出力」設定のエイリアスを入力し、保存をクリックすると設定は完了です。

動作確認

Stream Analyticsを開始し、上述の過去記事と同様にEvent Hubsに前回のサンプルファイルをREST APIで送信します。
設定が正しくなされていればSQL databaseのテーブルに出力されます。

ログの確認方法

Stream Analyticsに関するログは、他サービス同様に「監査ログ」から確認することができます。

フィルターでStream Analyticsのログだけ抽出することができます。

次回もお楽しみに!


Azure SQL Database にPHPで接続してみる

前回立てたAzure環境のSQL DatabaseにPHPのプログラムで接続する手順を紹介します。

前回の記事はこちら
5分で立てるSQL DATABASE

前準備

今回は下記の環境で接続を行います。

・Windows PC
・前回作成したAzure SQL database
・Xampp (PHP 5.6.15)
https://www.apachefriends.org/jp/index.html

・Drivers for PHP for SQLserver (SQLSRV32.EXE)を使用
https://www.microsoft.com/en-us/download/details.aspx?id=20098

接続してDBに入力する

recipetest1.php
[crayon-6080a9099a047843445968/]

注意点としては、Azure SQL Databaseに接続する際にDatabase名まで指定する必要があることです。
成功するとWeb画面では下の画像の様に表示されます。

Azure SQL databaseのテーブルを見ると、入力されていることが確認できます。

3.接続してDBから出力する
recipetest2.php
[crayon-6080a9099a04f186155088/]

成功すると下の画像のようにDBから出力されていることを確認できます。

いかがでしたでしょうか。
SQLdatabaseへの接続ということでC#や.NET以外の言語だと敷居が高いように思われたかも知れませんが、PHPでも簡単に接続が可能です。
次回もお楽しみに!


Azure Data Catalogを触ってみた② 操作編

前回に引き続きAzure IoTサービスの1つ「Data Catalog」についてご紹介します。

操作にあたってはAzure公式ページのチュートリアルに則って行います。
https://azure.microsoft.com/ja-jp/documentation/articles/data-catalog-get-started/

今回は、前回用意したデータソースをData Catalogに登録し、実際に操作してみます。

Azure Data Catalogへ登録

Data Catalogは現在プレビュー版となっている為か、Azure管理ポータルからではなく個別のポータル画面での操作となります。

公式ページの「製品」→「IoT」→「Data Catalog」の順にアクセスし、「はじめに」をクリックするとポータル画面へアクセスできます。

サインインする際にはMicrosoftアカウントではなくActive Directoryのアカウントを利用します。

この画面では「Data Catalog Name」に任意のカタログ名を入力し、サブスクリプションやData Catalogのロケーションを指定します。

入力に問題がなければ続いてデータソースの登録を行います。

下記の順番で登録を行います。
①画面左の「Server Hierarchy:」から「Production」を選択します。
②画面中央の「Available objects:」から「Product」「ProductCategory」「ProductDescription」「ProductPhoto」を選択し、下部の「Tables」「Views」にチェックを入れます。
③矢印をクリックすると選択した項目が確認表に移行します。

④登録する項目を確認したら、後々検索するためにタグ付けをします。
今回は「photo」とします。
⑤「REGISTER」をクリックします。

更に追加したい項目がある場合は「REGISTER MORE OBJECTS」をクリックします。
登録する内容を確認したら「VIEW PORTAL」をクリックします。

以上で登録完了です。

登録したデータの検索はData Catalogポータル右上の「Discover」から行います。
左上の検索窓から、データソースの名前やブール演算子を使用して検索・絞込が可能です。

いかがでしたでしょうか。

今回は使い方の説明ということでサンプルを利用しましたが、このサービスの真価を発揮するのはビッグデータ登録時ですので、ぜひご利用を検討してみてください。

次回もお楽しみに!


Azure Data Catalogを触ってみた① 準備編

今回からAzure IoTサービスの1つ「Data Catalog」についてご紹介します。

操作にあたってはAzure公式ページのチュートリアルに則って行います。
https://azure.microsoft.com/ja-jp/documentation/articles/data-catalog-get-started/

今回はデータソースの準備までを行います。

Azure Data Catalogとは

組織のユーザー達が持っているデータソースを登録・カタログ化することで、他ユーザーがデータソースを検索・検出をすることができるエンタープライズ向けサービスです。

ビッグデータを取り扱うにあたって、「どのデータベースに目当てのデータがあるのか」「関連しそうなデータはどこにあるのか」などを組織全体で把握し管理することは極めて大変ですが、このData Catalogに登録し一括管理することで、組織のユーザーが簡単にデータの検出・追記を行うことができます。

※2015年12月現在、プレビュー版となっております。

前準備

Data Catalogを使うにあたって下記の準備が必要となります。

・Azureサブスクリプション(無料利用枠で問題ありません)
・Azure Active Directoryの一般ユーザー
・データソース(今回はサンプルを使用)
・Microsoft SQL server 2014(サンプルを使うため。Express版でも可)

なお、注意点としてActive DirectoryのユーザーはMicrosoftアカウントではなく一般の組織内ユーザーで登録されていること、その上で組織内ユーザーがサブスクリプションを保持していることが必要となります。

まずはデータソースの準備を行います。

データソースの準備

今回使うデータソース「Adventure Works 2014 OLTP」をダウンロードします。

下記リンクの「Adventure Works 2014 Sample Databases」をクリックします。
http://msftdbprodsamples.codeplex.com/

「Adventure Works 2014 Full Database Backup.zip」をダウンロードします。

ダウンロードしたファイルをSQL serverに解凍します。
Express64bit版では下記に解凍します。
C:\Program Files\Microsoft SQL server\MSSQL12.SQLEXPRESS\MSSQL\Backup

続いて「SQL Server Management Studio」を使ってSQL Serverインスタンスに接続します。

※SQL Server Management Studioが無い場合は下記からダウンロードできます。
https://www.microsoft.com/ja-jp/download/details.aspx?id=42299

SQLサーバー名を指定し、接続をクリックします。

管理画面が開いたらツールバーの「新しいクエリ」をクリックします。

下記のようにクエリを入力します。
※環境に応じて指定パスを変更する必要があります。

[crayon-6080a9099aa21594595904/]

入力に成功し、指定した箇所にAdventureWorksのファイルが展開されていればSQL server側の準備が完了です。

次回はAzure Data Catalogの操作を行います。

お楽しみに!


5分で立てるSQL Database

今回は、Azure環境で「SQL Database」を立ててみます。

SQL Databaseとは

Azureのサービスとして提供されているリレーショナルデータベースです。
ハードウェアやOS、ソフトウェアの管理の他、レプリケーションやバックアップもプランに応じてAzure側で実施してくれる為、利用者は管理の手間なく開発することができます。

なお、Azure環境でデータベースを使う方法は他にもAzure Virtual Machineを立ててSQL Serverをインストールするというものもあります。
サイズが1TBを超えるものや、ライセンスを移行して使いたい際にはこちらの方法を実行する必要があります。

作成

先日、プレビューポータルが正式のポータルになりましたので、そちらから作成します。
※なお、旧ポータルはクラシックポータルという名称になっています。

ポータル画面左上の新規アイコンより「データ+ストレージ」を開き「SQL Database」をクリックします。

まずはSQL Databaseの名前を設定します。

次に内部のSQL serverを設定します。
なお、サーバー管理者名には「admin」や「root」等の名前が使えないのでご注意ください。

次にソースの選択という項目に進みます。
新規にデータを入れる場合は「空のデータベース」を選択します。
今回はテストなので「サンプル」を選択します。

次に価格レベルを選択します。
「Basic」「Standard」「Primium」の区分があり、料金に応じて性能・容量・レプリケーションに違いがあります。

リソースグループとサブスクリプションを確認したら、下部の作成をクリックします。

作成は以上で完了です。

接続

SQL Databaseの作成が完了すると下記の管理画面が表示されます。
今回はVisual StudioでSQL Databaseにアクセスします。
なお、後ほど「サーバー名」の項目を入力するので控えておいてください。

SQL Databaseにアクセスする際にはファイアウォールの設定をする必要があります。

「クライアントIPの追加」をクリックすると自動でIPが検出されるのでそのまま「保存」をクリックします。

接続する際には認証を求められます。
サーバー名:先ほどの管理画面で表示されたサーバー名
認証:SQL Server認証
ログイン:作成時に設定したサーバー管理者名
パスワード:作成時に設定したサーバー管理者名

サーバーにログイン後は、サンプルで入力したテーブルを閲覧できます。

次回はPHPからAzureのSQL serverに接続してみます。
お楽しみに!