Azure: 新しいリアルタイム データ ストリーミング サービスとData Factoryサービス

Posted: 2014/11/06 カテゴリー: Uncategorized
タグ:, , , , , ,

ここ3週間は、Azureにとって忙しいものでした。2週間前、Linux、Windows Server、Microsoft Azure上でコンテナー ベースの開発エクスペリエンスを可能にするために、Dockerとの提携を発表しました (英語 / 日本語)

先週、Cloud Dayイベントを開催し、Azure Virtual Machinesの新しいG-SeriesとPremium Storage機能を発表しました (英語 / 日本語)。G-Series VMは、パブリック クラウドで現在利用可能な最大のVMサイズを提供します (AWSの最大サイズの2倍に近く、Googleの最大サイズの4倍のメモリを搭載しています)。(D-Series、G-Series両方のVMとともに動作する) 新しいPremium Storage機能は、VMあたり最大32TBのストレージ、VMあたり50,000IOPS以上のディスクI/Oをサポートし、1ミリ秒以下の読み取りレイテンシを可能にします。これらを組み合わせることで、さらに巨大で素晴らしいソリューションをクラウドで実行できる、莫大な力が提供されます。

今週、世界中で運用されている18番目、19番目のAzureリージョンとなる、Azureのオーストラリア リージョン (英語 / 日本語) を正式にオープンしました。それから、TechEd Europeで、新しいAzure Marketplace (英語 / 日本語 / 日本語) の開始、一連の素晴らしいネットワークの改善、新しいAzure Batchコンピューティング サービス (英語 / 日本語)Azure Automationサービス (英語 / 日本語) のGA (一般提供) といった、一連の新機能を発表しました (英語 / 日本語)

本日、Azureのデータ領域で今週リリースしたさらなる新サービスについてブログを書くことができて、興奮しています。新サービスは、次の通りです:

  • Event Hubs: Webサイト、クライアント アプリ、IoTセンサーからデータを取り込み格納するための、スケーラブルなサービス
  • Stream Analytics: イベント ストリームからリアルタイムの洞察を発見するのに役立つ、コスト効率の良いイベント処理エンジン
  • Data Factory: 多様なデータとデータ移動を調整、管理することで、より良い情報生成を可能に

Azure Event Hubsは、GA (一般提供) として利用可能になりました。新しいAzure Stream AnalyticsサービスとAzure Data Factoryサービスは、パブリック プレビューになりました。

Event Hubs: ほぼリアルタイムに毎秒数百万イベントをログ記録

Azure Event Hubsサービス (英語 / 日本語) は、ほぼリアルタイムに毎秒数百万イベントをログ記録できる、スケーラビリティの高いテレメトリ取り込みサービスです。Event Hubsサービスを使って、任意のIoTデバイスから、任意のアプリ (Web、モバイル、またはバックエンド サービス) から、または、ソーシャル ネットワークなどのフィードを介して、データ/イベントを収集できます。我々は、Microsoft最大のオンライン システムを監視するために、内部でEvent Hubsサービスを使っています。

Event Hubsでイベントを収集したら、(Apache Stormや、新しいAzure Stream Analyticsサービスなど) 任意のリアルタイム分析システムを使ってデータを分析し、(HDInsightやHadoopベースのソリューションなど) 任意のデータ ストレージ システムにデータを変換/格納できます。
できます。

Event Hubsは、Azure上のマネージド サービスとして提供されます (これは、我々がEvent Hubsの実行、スケール、パッチ適用を行い、エンタープライズSLAを提供することを意味します)。Event Hubsは、次の機能を提供します:

  • ほぼリアルタイムに毎秒数百万イベントをログ記録する機能
  • 中断なしにスケール アップ/ダウンできる機能を備えた、伸縮自在なスケールのサポート
  • HTTPベース、AMQPベースのイベントのサポートを含む、複数プロトコルのサポート
  • 柔軟な認可とデバイスの調整 (throttling) のポリシー
  • イベント順序を保持する、時間ベースのイベント バッファリング

Event Hubsの料金モデルは、非常に柔軟です。わずか11ドル/月 (1,122円/月) で、自分のイベント ハブに送信された1MB/秒のイベントを捕捉する、保証されたパフォーマンス キャパシティを持つ、Basicレベルのイベント ハブをプロビジョニングできます。イベント トラフィックがより多くなる場合は、必要に応じて多数の追加キャパシティ ユニットをプロビジョニングできます。

イベント捕捉の作業の開始

Azureポータル、またはコマンドラインを使って、新しいイベント ハブを作成できます。これを行うには、ポータルで「新規」>「アプリケーション サービス」>「Service Bus」>「イベント ハブ」を選択します:

image

イベント ハブを作成したら、厳密に型指定されたAPI (たとえば、.NETやJavaのクライアント ライブラリ) を使って、または、単に生のHTTPやAMQPのメッセージをサービスに送信することで、イベント ハブにイベントを送信できます。単に標準のHTTP POSTリクエストを使ってIoTイベントをイベント ハブにログ記録するのが、どれだけ簡単かを示す単純な例を、次に示します。HTTP POSTのAuthorizationヘッダーに注意してください。デバイスに対する柔軟な認証/認可を有効化するために、オプションとしてこのヘッダーを使えます:

POST https://your-namespace.servicebus.windows.net/your-event-hub/messages?timeout=60&api-version=2014-01 HTTP/1.1
Authorization: SharedAccessSignature sr=your-namespace.servicebus.windows.net&sig=tYu8qdH563Pc96Lky0SFs5PhbGnljF7mLYQwCZmk9M0%3d&se=1403736877&skn=RootManageSharedAccessKey
ContentType: application/atom+xml;type=entry;charset=utf-8
Host: your-namespace.servicebus.windows.net
Content-Length: 42
Expect: 100-continue

{ "DeviceId":"dev-01", "Temperature":"37.0" }

イベント ハブは、それぞれがその中に希望のデータ スキーマを格納したこのようなメッセージを、毎秒最大数百万メッセージまで収集できます。Event Hubsサービスは、あなたが後でメッセージを読み取る/消費するために、これらのメッセージを順序正しく格納します。

下流のイベント処理

イベントを収集したら、きっとそのイベントで何かを行いたいでしょう。Event Hubsには、リーダーにわたる自動的なパーティション管理と負荷分散を可能にする、インテリジェントな処理エージェントが含まれています。リーダー内で希望の任意のロジックを実装できます。リーダーに送信されるデータは、イベント ハブに送信された順序で配信されます。

カスタムのイベント リーダーを書く機能のサポートに加えて、事前構築済みのストリーム処理システムと連携する2つの簡単な方法もあります。新しいAzure Stream AnalyticsサービスとApache Stormとの連携です。新しいAzure Stream Analyticsサービスは、Event Hubsからの直接のストリーム処理の実行をサポートしています。また、Microsoftは、Apache Stormクラスターで使うために、Event Hubs Storm Spoutを作成しました。

次の図は、イベント/データを収集し、処理のためにイベント/データを引き渡すために、Event Hubsを使える高度な方法のいくつかを示しています:

image

Event Hubsは、クラウドにストリーミングできる任意のイベントやデータを収集するために使える、非常に柔軟でコスト効率の良い構成要素を提供します。Event Hubsは、非常にコスト効率が良く、あらゆるニーズを満たすために必要となるスケーラビリティを提供します。

Event Hubsについてさらに学ぶ

Azure Event Hubsのさらなる情報については、次のリソースを確認してください:

Stream Analytics: Azureの分散ストリーム処理サービス

新しいAzure Stream Analyticsサービスのプレビューを発表できて、興奮しています。これは、クラウドで、エンタープライズ級のSLAを備えた、レイテンシの低いスケーラブルなストリーミングされたデータの処理を提供する、フル マネージドのリアルタイム分散ストリーム計算サービスです。新しいAzure Stream Analyticsサービスは、わずか数KB/秒のスループットの小さいプロジェクトから、GB/秒以上のストリーミングされたデータ メッセージ/イベントまで、簡単にスケールします

Stream Analyticsの料金モデルによって、低いスループットのストリーミングのワークロードを低コストで継続的に実行でき、ビジネスが拡張を必要とした際にだけ、スケール アップしなくてはならないようにできます。我々は、ミッション クリティカルなビジネス継続性を可能にする、組み込みのイベント配信保証と高速な復旧のための状態管理を維持しつつ、これを行います。

データのストリーム処理のための、劇的に簡素化された開発者エクスペリエンス

Stream Analyticsは、SQLに似た言語をサポートしています。この言語は、スケーラブルなストリーム処理ソリューションを作成するために必要となる開発者の専門知識の障壁を、劇的に引き下げます。開発者は、基本的なバッファリング、時間的な分析操作、複数のデータのライブ ストリームと他の静的データ ソースとの結合、ストリーム パターン (または、パターンの欠如) の検出といった、一般的な操作を行うために、単に数行のSQLを書けます。

これは、データのリアルタイム ストリームに対する時間依存の計算を開発、保守、適用するのに必要となる複雑性と時間を、劇的に削減します。現在利用可能な他のほとんどのストリーミング ソリューションでは、複雑なカスタム コードを書く必要がありますが、Azure Stream Analyticsでは、単純で宣言的でなじみのあるSQLを書けます。

設定が簡単なフル マネージド サービス

Stream Analyticsでは、デバイス、センサー、インフラストラクチャ、アプリケーションからのデータに対する、価値あるリアルタイムの洞察と分析を迅速に導き出せる方法を、劇的に加速できます。Azureポータルでの数クリックで、ストリーミング パイプラインを作成し、その入出力を構成し、データに対して行いたい希望のストリーム変換/分析を記述する、SQLに似たクエリを提供できます。パイプラインを実行したら、自分の全体的なストリーミング パイプラインのスケール/速度を監視し、希望のスループットとレイテンシを達成するために、調整できます。

Azureポータルで「新規」>「データ サービス」>「Stream Analytics」を選択することで、Stream Analyticsジョブを新規作成できます:

image

ストリーミング データ入力の設定

ジョブを作成したら、最初の手順は、ストリーミング データ入力を追加することです。これによって、ストリーム処理を行いたい対象のデータがどこから来るのかを指定できます。ポータル内で「Inputs」タブ >「Add An Input」を選択し、これを指定できるウィザードを起動できます:

image

Azure Event Hubsサービスを使って、処理を実行したい対象のデータのストリームを配信できます。イベント ハブを作成済みの場合は、上のウィザードで一覧からイベント ハブを選択できます。また、そのイベント ハブで入力イベントをシリアル化するために使うフォーマット (たとえば、JSON、CSV、Avroフォーマット) を指定するよう、求められます。

出力位置の設定

Stream Analyticsジョブの開発における次の手順は、ストリーミング出力位置を追加することです。これは、自分のストリーム処理パイプラインの出力結果をどこに格納したいかを、構成します。BLOBストレージ、別のイベント ハブ、またはSQLデータベースに、結果を簡単に出力することを選択できます。

image

別のイベント ハブをターゲットに使えることで、複数のストリームを接続し複数ステップの全体的なパイプラインにする、強力な方法が提供されることに注意してください。

ストリーミング クエリの作成

入出力ソースを構成したので、1つの入力 (あるいは、複数の入力ソースがある場合は、一連の入力) を変換、集約、関連付けを行い、それを出力ターゲットに出力するための、SQLクエリを書けます。ポータルで上部の「Query」タブを選択することで、これを行えます。

image

データの入力ストリームを処理するために書ける、多数の興味深いクエリがあります。たとえば、このブログ ポストのEvent Hubsセクションで、IoTデバイスからイベント ハブに、次のようなJSONフォーマットでJSONベースの温度データを送信するために、HTTP POSTコマンドを使える方法を示しました:

{ "DeviceId":"dev-01", "Temperature":"37.0" }

複数のデバイスが、このように自分のイベント ハブに同時にイベントをストリーミングすると、次のようなシーケンスに見える、連続的なデータ イベントのストリームとして、それらのイベントが自分のStream Analyticsジョブに送り込まれます:

image

時間ウィンドウの観点でこのデータを分析できたら、興味深いと思いませんか? たとえば、過去5分間の複数の読み取りで各デバイスの平均温度がどうだったかを、リアルタイムに計算することは、有益でしょう。

Stream Analyticsサービスでは、次のようなSQLクエリを書くだけで、データの入力ライブ ストリームに対して。動的にこれを計算できるようになりました:

SELECT DateAdd(second,-5,System.TimeStamp) as WinStartTime, system.TimeStamp as WinEndTime, DeviceId, Avg(Temperature) as AvgTemperature, Count(*) as EventCount 
    FROM input
    GROUP BY TumblingWindow(second, 5), DeviceId

自分のStream Analyticsジョブでこのクエリを実行すると、データ イベントの入力ストリームを集約/変換し、自分のジョブで構成した出力ソース (たとえば、BLOBストレージのファイルやSQLデータベース) に次のようなデータを出力します:

image

このアプローチで素晴らしいことは、データが、ストリーミングされるイベントとしてリアルタイムに集約/変換され、文字通り毎秒数GBのストリーミングされるデータ イベントを処理するために、スケールすることです。

Stream Analyticsジョブのスケール

Stream Analyticsジョブを定義したら、Azureポータルで自分のジョブのアクティビティを簡単に監視できます:

image

「Scale」タブを使って、ストリーム処理のスケール キャパシティを動的に増減できます。これによって、必要なコンピューティング キャパシティだけに料金を払い、数GB/秒のストリーミングされたデータのジョブを処理できます。

Stream Analyticsサービスについてさらに学ぶ

Stream Analyticsの更なる情報については、次のリソースを確認してください:

Data Factory: 情報生成パイプラインを構築、管理するフル マネージド サービス

組織は、ますますビジネスが利用可能なすべてのデータを完全に活用しようとしています。組織がそうしているので、データ処理の状況は、かつてないほど多様になってきています。地理的位置にわたって、オンプレミスとクラウドで、幅広いデータ型とデータ ソース (SQL、NoSQL、Hadoopなど) にわたってデータが処理され、処理する必要のあるデータ量は飛躍的に増加しています。現在、開発者は、このデータと処理作業のすべてを管理、調整できる情報生成システムを提供するために、しばしば大量のカスタム ロジックを書いています。

このプロセスをより単純にするための、新しいAzure Data Factoryサービスのプレビューを発表できて、興奮しています。これは、データ ストレージ、処理、データ移動のサービスを組み合わせ、合理化されたスケーラブルで信頼性の高いデータ生成パイプラインにすることを簡単にする、フル マネージド サービスです。パイプラインをデプロイすると、Data Factoryによってパイプラインの簡単な監視と管理が可能になり、運用コストを大きく削減します。

簡単な作業の開始

Azure Data Factoryはフル マネージド サービスです。Data Factoryでの作業の開始は単純です。Azureプレビュー ポータルでの数クリックで、あるいは、コマンド ライン操作を介して、開発者はデータ ファクトリを新規作成し、そのデータ ファクトリをデータと処理のリソースにリンクできます。Azureプレビュー ポータルの新しいAzure Marketplaceで「Data + analytics」>「Data Factory」を選択し、Azureでインスタンスを新規作成します:

image

複数のデータ ソースにわたる、情報生成パイプラインの調整

Data Factoryによって、(クラウド、オンプレミスの両方を含む) 多様な位置にあるデータ ソースを調整、管理するのが簡単になります。今週のプレビュー リリースでは、オンプレミスのSQL Server内部、Azure BLOBストレージ、テーブル ストレージ、HDInsight Hadoopシステム、SQL Databaseのデータをサポートしています。

オンプレミスのSQL Serverへのセキュアな接続の簡単な構成、管理を可能にするデータ管理ゲートウェイを通して、オンプレミスのデータへのアクセスがサポートされています。Data Factoryは、クラウド、Hadoop、非リレーショナル プラットフォームが提供するスケール、俊敏性と、ハイブリッド環境での情報生成を可能にするためにエンタープライズ システムが必要とする管理、監視のバランスを取ります。

Hive、Pig、C#を使った、カスタムのデータ処理アクティビティ

今週のプレビューでは、Hive、Pig、カスタムのC#コードのアクティビティを使ったデータ処理を可能にしています。データのクリーニング、重要なデータ フィールドの匿名化/マスク、多様な複雑な方法でのデータの変換のために、Data Factoryのアクティビティを使えます。

自分で作成したHDInsightクラスター上で、HiveとPigのアクティビティを実行できます。あるいは、自分に代わって、Data FactoryにHadoopクラスターのライフサイクルを完全に管理させることもできます。自分のアクティビティを作成し、それらをパイプラインに組み合わせ、実行スケジュールを設定すれば、完了です。Hadoopクラスターの手動の設定、管理は不要です。

組み込みの情報生成の監視とダッシュボード

また、Data Factoryは、即時の監視ダッシュボードを提供しています。これは、自分のデータ パイプラインをデプロイすると、自分の監視ダッシュボードの一部として即座にそのパイプラインを表示し始められることを意味しています。自分のデータ ファクトリにパイプラインを作成、デプロイしたら、迅速にエンド ツー エンドのデータ パイプラインの正常性を評価し、問題を特定し、必要に応じて修正措置を取ることができます。

Azureプレビュー ポータルで、自分のすべてのパイプラインとデータ入出力の視覚表示を得られます。すべてのソースにわたる自分のデータ パイプラインの関係と依存関係を確認できるので、データがどこから来てどこに行くのか一目で分かります。また、単一の監視ダッシュボードで、ジョブ実行の履歴、データ生成の状態、システムの正常性を提供しています。

image

Data Factoryサービスについてさらに学ぶ

Data Factoryの更なる情報については、次のリソースを確認してください:

他の素晴らしいデータ関連の改善

本日のリリースによって、お客様がクラウドでデータの移動をストリーミング、処理、管理するのがさらに簡単になります。また、ここ数か月にわたって、Azureを任意のデータ関連のニーズを満たす素晴らしいプラットフォームにする、多数の他の素晴らしいデータ関連のアップデートもリリースしました。8月以降のアップデートは、次の通りです:

SQL Databaseサービスに対する主要なアップデートをリリースしました。これは、サービスとしてのリレーショナル データベース機能です。新しいSQL Databaseのエディション (英語 / 日本語) (Basic/Standard/Premium) は、99.99%のSLA、より大きなデータベース サイズ、占有パフォーマンス保証、ポイント イン タイム復元、新しい監査機能、アクティブ地理DR機能を簡単に設定する機能をサポートしています。

新しいDocumentDBサービスのプレビューをリリースしました。これは、JSONベースのデータの格納とクエリをサポートする、フル マネージドでスケーラビリティの高いNoSQLドキュメント データベース サービス (英語 / 日本語) です。これによって、ドキュメント ストアを線形にスケールでき、任意のアプリケーション サイズにスケールできます。Microsoft MSNポータルは、最近、DocumentDBを使うように書き直され (英語 / 日本語)、DocumentDBに20TB以上のデータを格納しています。

新しいRedis Cacheサービスをリリースしました。これは、Microsoftがサービスとして管理する、セキュアな占有Redisキャッシュ機能 (英語 / 日本語) です。Redisは、パフォーマンスの高いデータ型を可能にする、人気の高いオープン ソースのソリューションです。Redis Cacheサービスによって、任意のアプリケーションのパフォーマンスをずっと高速化できるインメモリ キャッシュを起動できます。

HDInsight Hadoopサービスに対する主要なアップデートをリリースしました。これは、クラウドにおける100% Apache Hadoopベースのサービスです。また、Hadoopエコシステムの人気の高い2つのフレームワーク (Apache HBase (英語 / 日本語)Apache Storm (英語 / 日本語)) を使うための組み込みサポートも追加しました。

新しいサービスとしての検索機能であるAzure Searchのプレビューをリリースしました。これは、任意のWeb/モバイル アプリケーションに簡単に統合できる、ElasticSearchを基にしたマネージドの検索機能 (英語 / 日本語) を提供します。これによって、(SQL Database、DocumentDB、Hadoopなど) 自分のアプリケーションが使う任意のデータに対して、検索エクスペリエンスを構築できます。

そして、Machine Learningサービスのプレビューをリリースしました。これは、強力なクラウド ベースの予測分析サービス (英語 / 日本語) を提供します。これは、新人のデータ サイエンティスト、経験豊かなデータ サイエンティストの両方向けに設計されており、オープン ソースの世界とMicrosoft Researchからの数百のアルゴリズムを提供し、人気の高いオープン ソース言語であるRを使ったMachine Learningソリューションの作成をサポートしています。

今後数か月で、主要なデータ関連のアップデートをリリースし続ける予定です。今後の心躍る改善のロードマップがあります。

まとめ

Microsoft Azureの本日のリリースによって、いくつかの素晴らしいデータ関連の新シナリオが可能になり、クラウドでデータを扱うアプリケーションの構築がさらに簡単になります。

もしAzureアカウントをまだ持っていない場合は、無料評価版 (英語 / 日本語) に登録して、これらの機能すべてを今すぐ使い始めることができます。それから、Microsoft Azureデベロッパー センター (英語 / 日本語) にアクセスして、アプリの構築方法についてさらに学んでください。

関連情報

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中