Azure Stream Analytics とはWhat is Azure Stream Analytics?

Azure Stream Analytics は、複数のソースからの大量の高速ストリーミング データを同時に分析および処理するように設計された、リアルタイムの分析および複合イベント処理エンジンです。Azure Stream Analytics is a real-time analytics and complex event-processing engine that is designed to analyze and process high volumes of fast streaming data from multiple sources simultaneously. パターンやリレーションシップは、デバイス、センサー、クリックストリーム、ソーシャル メディア フィード、アプリケーションなどのいくつかの入力ソースから抽出された情報内で識別できます。Patterns and relationships can be identified in information extracted from a number of input sources including devices, sensors, clickstreams, social media feeds, and applications. これらのパターンを使用してアクションを起動し、アラートの作成、レポート作成ツールへの情報のフィード、または後で使用するための変換されたデータの保存などのワークフローを開始できます。These patterns can be used to trigger actions and initiate workflows such creating alerts, feeding information to a reporting tool, or storing transformed data for later use. また、Stream Analytics は Azure IoT Edge ランタイム上で利用可能であり、クラウドとまったく同じ言語または構文をサポートします。Also, Stream Analytics is available on Azure IoT Edge runtime, and supports the same exact language or syntax as cloud.

次のシナリオは、Azure Stream Analytics を使用できる場合の例です。The following scenarios are examples of when you can use Azure Stream Analytics:

  • IoT デバイスからのリアルタイムのテレメトリ ストリームの分析Analyze real-time telemetry streams from IoT devices
  • Web ログ/クリックストリーム分析Web logs/clickstream analytics
  • フリート マネジメントや無人車両用の地理空間分析Geospatial analytics for fleet management and driverless vehicles
  • 高価な資産のリモート監視と予測メンテナンスRemote monitoring and predictive maintenance of high value assets
  • 販売時点管理データのリアルタイム分析による在庫管理や異常検出Real-time analytics on Point of Sale data for inventory control and anomaly detection

Stream Analytics の動作How does Stream Analytics work?

Azure Stream Analytics ジョブは、入力、クエリ、および出力で構成されます。An Azure Stream Analytics job consists of an input, query, and an output. Stream Analytics は、Azure Event Hubs、Azure IoT Hub、または Azure Blob Storage からデータを取り込みます。Stream Analytics ingests data from Azure Event Hubs, Azure IoT Hub, or Azure Blob Storage. SQL クエリ言語に基づくクエリを使用して、ストリーミング データの一定期間にわたるフィルター処理、並べ替え、集計、および結合を容易に行うことができます。The query, which is based on SQL query language, can be used to easily filter, sort, aggregate, and join streaming data over a period of time. この SQL 言語は、JavaScript および C# のユーザー定義関数 (UDF) で拡張することもできます。You can also extend this SQL language with JavaScript and C# user defined functions (UDFs). 単純な言語コンストラクトや構成を使用して集計操作を実行するときに、イベントの順序付けのオプションや時間枠の期間を簡単に調整できます。You can easily adjust the event ordering options and duration of time windows when preforming aggregation operations through simple language constructs and/or configurations.

各ジョブには変換されたデータの出力が与えられるため、分析した情報に応じてどのような処理を実行するかを制御できます。Each job has an output for the transformed data, and you can control what happens in response to the information you've analyzed. たとえば、次のように操作できます。For example, you can:

  • Azure Functions、Service Bus Topics、Queues などのサービスにデータを送信して、通信またはダウンストリームのカスタム ワークフローをトリガーする。Send data to services such as Azure Functions, Service Bus Topics or Queues to trigger communications or custom workflows downstream.
  • リアルタイムのダッシュボード作成のためにデータを Power BI ダッシュボードに送信する。Send data to a Power BI dashboard for real-time dashboarding.
  • 履歴データに基づいて機械学習モデルをトレーニングするか、またはバッチ分析を実行するために、データを他の Azure Storage サービスに格納する。Store data in other Azure storage services to train a machine learning model based on historical data or perform batch analytics.

次の図は、データがどのように Stream Analytics に送信され、分析され、さらに格納やプレゼンテーションなどの他のアクションのために送信されるかを示しています。The following image shows how data is sent to Stream Analytics, analyzed, and sent for other actions like storage or presentation:

Stream Analytics 導入のパイプライン

主要な機能と利点Key capabilities and benefits

Azure Stream Analytics は、あらゆるジョブの規模に対応するスケーラビリティ、使いやすさ、柔軟性、信頼性を実現する設計になっています。Azure Stream Analytics is designed to be easy to use, flexible, reliable, and scalable to any job size. 複数の Azure リージョンにまたがって使用できます。It is available across multiple Azure regions. 次の図は、Azure Stream Analytics の主な機能を示しています。The following image illustrates the key capabilities of Azure Stream Analytics:

Stream Analytics の主な機能

簡単に始められるEase of getting started

Azure Stream Analytics は、簡単に始めることができます。Azure Stream Analytics is easy to start. 何回かクリックして複数のソースやシンクに接続するだけで、エンド ツー エンドのパイプラインが作成されます。It only takes a few clicks to connect to multiple sources and sinks, creating an end-to-end pipeline. Stream Analytics は、ストリーミング データ インジェストのためには Azure Event HubsAzure IoT Hub に、履歴データの取り込みのためには Azure Blob Storage に接続できます。Stream Analytics can connect to Azure Event Hubs and Azure IoT Hub for streaming data ingestion, as well as Azure Blob storage to ingest historical data. また、ストリーミング データに結合して参照操作を実行するために使用できる Azure Blob Storage または SQL Database からの静的な、またはゆっくり変化する参照データをジョブ入力に含めることもできます。Job input can also include static or slow-changing reference data from Azure Blob storage or SQL Database that you can join to streaming data to perform lookup operations.

Stream Analytics は、Azure Blob StorageAzure SQL DatabaseAzure Data Lake StoreAzure CosmosDB などのさまざまなストレージ システムにジョブ出力をルーティングできます。Stream Analytics can route job output to many storage systems such as Azure Blob storage, Azure SQL Database, Azure Data Lake Store, and Azure CosmosDB. Azure HDInsight を使用して格納済みの出力に対してバッチ分析を実行したり、消費のための Event Hubs やリアルタイムの視覚化のための Power BI などの別のサービスに出力を送信したりできます。You can run batch analytics on stored output with Azure HDInsight, or you can send the output to another service, like Event Hubs for consumption or Power BI for real-time visualization.

Stream Analytics の出力の完全な一覧については、「Azure Stream Analytics からの出力を理解する」を参照してください。For the entire list of Stream Analytics outputs, see Understand outputs from Azure Stream Analytics.

プログラマの生産性Programmer productivity

Azure Stream Analytics では、移動中のデータを分析するための強力な時間的制約によって拡張された単純な SQL ベースのクエリ言語を使用します。Azure Stream Analytics uses a simple SQL-based query language that has been augmented with powerful temporal constraints to analyze data in motion. ジョブの変換を定義するには、単純な SQL コンストラクトで複雑なテンポラル クエリおよび分析を作成することができる、シンプルな宣言型の Stream Analytics クエリ言語を使用します。To define job transformations, you use a simple, declarative Stream Analytics query language that lets you author complex temporal queries and analytics using simple SQL constructs. Stream Analytics クエリ言語は SQL 言語と整合性があるため、SQL に精通していれば十分にジョブの作成を開始できます。Because Stream Analytics query language is consistent to the SQL language, familiarity with SQL is sufficient to start creating jobs. ジョブはまた、Azure PowerShell、Stream Analytics Visual Studio ツール、the Stream Analytics Visual Studio Code 拡張機能、Azure Resource Manager テンプレートなどの開発者ツールを使用して作成することもできます。You can also create jobs by using developer tools like Azure PowerShell, Stream Analytics Visual Studio tools, the Stream Analytics Visual Studio Code extension, or Azure Resource Manager templates. 開発者ツールを使用することで、変換クエリをオフラインで開発したり、CI/CD パイプラインを使用して Azure にジョブを送ったりすることができます。Using developer tools allow you to develop transformation queries offline and use the CI/CD pipeline to submit jobs to Azure.

Stream Analytics クエリ言語には、ストリーミング データを分析および処理するための幅広い関数が用意されています。The Stream Analytics query language offers a wide array of functions for analyzing and processing streaming data. このクエリ言語は、単純なデータ操作、集計関数、および複雑な地理空間関数をサポートしています。This query language supports simple data manipulation, aggregation functions, and complex geospatial functions. ポータルでクエリを編集し、ライブ ストリームから抽出されたサンプル データを使用してそれをテストできます。You can edit queries in the portal and test them using sample data that is extracted from a live stream.

クエリ言語の機能は、別の関数を定義したり呼び出したりすることで拡張することができます。You can extend the capabilities of the query language by defining and invoking additional functions. Azure Machine Learning ソリューションを利用するために Azure 機械学習で関数呼び出しを定義したり、Stream Analytics クエリの一部として複雑な計算を実行するために JavaScript または C# のユーザー定義関数 (UDF) またはユーザー定義集計を統合したりすることができます。You can define function calls in the Azure Machine Learning to take advantage of Azure Machine Learning solutions, and integrate JavaScript or C# user-defined functions (UDFs) or user-defined aggregates to perform complex calculations as part a Stream Analytics query.

フル マネージドFully managed

Azure Stream Analytics は、Azure のフル マネージド サーバーレス (PaaS) プランです。Azure Stream Analytics is a fully managed serverless (PaaS) offering on Azure. ジョブを実行するために、ハードウェアをプロビジョニングしたり、クラスターを管理したりする必要はありせん。You don’t have to provision any hardware or manage clusters to run your jobs. Azure Stream Analytics は、クラウド内の複雑なコンピューティング クラスターを設定し、ジョブを実行するために必要なパフォーマンスのチューニングを処理することによって、ジョブを完全に管理します。Azure Stream Analytics fully manages your job by setting up complex compute clusters in the cloud and taking care of the performance tuning necessary to run the job. Azure Event Hubs や Azure IoT Hub との統合により、ジョブは、コネクテッド デバイス、クリック ストリーム、ログ ファイルを含む複数のソースから来る 1 秒あたり数百万のイベントを取り込むことができます。Integration with Azure Event Hubs and Azure IoT Hub allows your job to ingest millions of events per second coming from a number of sources, to include connected devices, clickstreams, and log files. Event Hubs のパーティション分割機能を使用すると、計算を、それぞれがスケーラビリティ向上のためにさらにパーティション分割される機能を持つ論理的なステップにパーティション分割できます。Using the partitioning feature of Event Hubs, you can partition computations into logical steps, each with the ability to be further partitioned to increase scalability.

クラウドまたはインテリジェント エッジ上で実行Run in the cloud or on the intelligent edge

Azure Stream Analytics は、大規模な分析のためにクラウドで実行するか、または待機時間が極端に短い分析のために IoT Edge で実行できます。Azure Stream Analytics can run in the cloud, for large-scale analytics, or run on IoT Edge for ultra-low latency analytics. Azure Stream Analytics はクラウドとエッジの両方で同じクエリ言語を使用しているため、開発者は、ストリーム処理のための真にハイブリッドなアーキテクチャを構築できます。Azure Stream Analytics uses the same query language on both cloud and the edge, enabling developers to build truly hybrid architectures for stream processing.

低い総保有コストLow total cost of ownership

クラウド サービスである Stream Analytics は、コストに最適化されています。As a cloud service, Stream Analytics is optimized for cost. 関連する初期費用はありません。消費するストリーミング ユニットと処理されるデータ量に対して支払うだけです。There are no upfront costs involved - you only pay for the streaming units you consume, and the amount of data processed. コミットメントやクラスターのプロビジョニングは必要ないため、ビジネス ニーズに基づいて、ジョブをスケールアップまたはスケールダウンできます。There is no commitment or cluster provisioning required, and you can scale the job up or down based on your business needs.

ミッション クリティカル対応Mission-critical ready

Azure Stream Analytics は世界中の複数のリージョンで使用でき、信頼性、セキュリティ、コンプライアンスの要件をサポートすることで、ミッション クリティカルなワークロードを実行するように設計されています。Azure Stream Analytics is available across multiple regions worldwide and is designed to run mission-critical workloads by supporting reliability, security and compliance requirements.

[信頼性]Reliability

厳密には、Azure Stream Analytics で保証されるイベントの処理は 1 回、イベントの配信は 1 回以上となります。そのため、イベントが失われることはありません。Azure Stream Analytics guarantees exactly-once event processing and at-least-once delivery of events, so events are never lost. イベント配信の保証に関するページで説明されているように、選択した出力が提供される厳密に 1 回だけの処理が保証されます。Exactly-once processing is guaranteed with selected output as described in Event Delivery Guarantees.

Azure Stream Analytics には、イベントの配信に失敗した場合のために、組み込みの回復機能が備わっています。Azure Stream Analytics has built-in recovery capabilities in case the delivery of an event fails. Stream Analytics にはまた、ジョブの状態を保持するための組み込みのチェックポイントも用意されており、反復可能な結果が提供されます。Stream Analytics also provides built-in checkpoints to maintain the state of your job and provides repeatable results.

Stream Analytics は、マネージド サービスとして、分レベルの細分性で 99.9% の可用性のイベント処理が保証されます。As a managed service, Stream Analytics guarantees event processing with a 99.9% availability at a minute level of granularity. 詳細については、「Stream Analytics の SLA」のページを参照してください。For more information, see the Stream Analytics SLA page.

SecuritySecurity

セキュリティに関しては、Azure Stream Analytics では、すべての着信および発信の通信が暗号化され、TLS 1.2 がサポートされています。In terms of security, Azure Stream Analytics encrypts all incoming and outgoing communications and supports TLS 1.2. 組み込みのチェックポイントも暗号化されます。Built-in checkpoints are also encrypted. Stream Analytics では、すべての処理はメモリ内で実行されるため、受信データが格納されることはありません。Stream Analytics doesn't store the incoming data since all processing is done in-memory.

コンプライアンスCompliance

Overview of Microsoft Azure compliance (Microsoft Azure のコンプライアンスの概要)」で説明されているように、Azure Stream Analytics は複数のコンプライアンス認定に従っています。Azure Stream Analytics follows multiple compliance certifications as described in the overview of Azure compliance.

パフォーマンスPerformance

Stream Analytics は、1 秒間に何百万というイベントを処理できるため、きわめて短い待ち時間で結果を配信することができます。Stream Analytics can process millions of events every second and it can deliver results with ultra low latencies. 大規模でリアルタイムの複雑なイベント処理アプリケーションに対応するために、スケールアップまたはスケールアウトを行うことができます。It allows you to scale-up and scale-out to handle large real-time and complex event processing applications. Stream Analytics は、パーティション分割によってより高いパフォーマンスをサポートしているため、複雑なクエリを並列化し、複数のストリーミング ノードで実行できます。Stream Analytics supports higher performance by partitioning, allowing complex queries to be parallelized and executed on multiple streaming nodes. Azure Stream Analytics の基盤となっている Trill は、Microsoft Research と共同で開発された、高パフォーマンスのメモリ内ストリーミング分析エンジンです。Azure Stream Analytics is built on Trill, a high-performance in-memory streaming analytics engine developed in collaboration with Microsoft Research.

次のステップNext steps

Azure Stream Analytics の概要は以上です。You now have an overview of Azure Stream Analytics. 次はさらに踏み込んで、初めての Stream Analytics ジョブを作成してみましょう。Next, you can dive deep and create your first Stream Analytics job: