概要

本章の記載内容は、12月にリリースを予定している新機能「ストリーミング処理機能」(有償)に関するプレビュー版文書です。リリース前にはご利用できませんのでご注意ください。

Apama EPLを使用したストリーミング分析

Apamaストリーミング分析を使用すると、独自のロジックをご自身のIoTソリューションに追加して、デバイスまたは他のデータソースからの受信データを即座に処理することができます。これらのユーザー定義のオペレーションでは、たとえば、新しく受信したデータをアプリケーションに通知したり、受信したデータに基づいた新しいオペレーションの作成(センサーのしきい値を超えた場合のアラームの送信など)したり、またはデバイス上でオペレーションをトリガーすることができます。

オペレーションのロジックは、Apamaのイベント処理言語(Apama EPL)に基づいています。

重要事項: イベント言語(Esper)を使用したストリーミング分析のサポートは廃止予定です。すべての新しいThings Cloudサブスクリプションは、Apama CEPエンジンを使用します。Esper CEPエンジンの使用についてはストリーミング処理機能リリース後(2021/12を予定)、新しいサブスクリプションには提供されなくなり、将来的に運用されません。

Esperに基づく非推奨のイベント言語機能の使用に関するドキュメントについては、イベント言語ガイドをご覧ください。

移行についての詳細は イベント言語(Esper)からApamaへの移行をご覧ください。

典型的なリアルタイムでの分析ユースケースには以下が含まれます:

次のセクションでは、独自分析、他のサーバー側のビジネスロジックや自動化を作成する方法について説明します。これは、スマートルール、Analytics Builderモデル、およびApama EPL Appsを使用して実行することができます。

備考: このドキュメントは、Apamaアプリケーション開発に関する基本的な知識があることを前提としています。詳細については About this Documentationをご覧ください。

Apama EPL Apps

Apama EPL Appsは、アプリケーションメニューから利用できるWebアプリケーションです。Things Cloud上に直接、Apama EPLを使用したEPLアプリ(つまり、単一の*.mon ファイル)を開発できます。さらに、既存の*.monファイルをEPLアプリとしてThings Cloudにインポートすることもできます。Apama EPL Apps Webアプリケーションを介してEPLアプリを有効化すると、Things Cloudにデプロイされます。

詳細については基本機能をご覧ください。

Apama Analytics Builder

Apama Analytics Builderは、アプリケーションメニューから利用できるWebアプリケーションです。新しいデータを生成したりイベントを出力したりするために、ストリーミングデータを変換または処理する分析モデルを構築できます。モデルは、リアルタイムでデータを処理できます。

事前に構築されたブロックを組み合わせをモデルにすることにより、グラフィックな環境でモデルを構築します。モデル内のブロックは少量のロジックをパッケージ化し、多くの入力、出力、パラメーターを含みます。各ブロックは、センサーからのデータの受信、計算の実行、状態の検出、出力信号の生成など、特定の機能を実装しています。ブロックの構成設定を定義し、ワイヤーを使用してブロックを繋げます。モデルを編集したり、履歴データで展開をシミュレーションしたり、稼働中のシステムに対して実行したりできます。

詳細については About this Documentation のドキュメントをご覧ください。

また、Apama Analytics Builder の使用例については開発者レポート 「Apama Analytics Builder でイベント分析モデルを作成する」 もご覧ください。

注意: 現バージョンの Apama Analytics Builder では日本語はご利用いただけません。ご利用の際は言語設定を英語、もしくはドイツ語、ポーランド語に変更してください。今後のバージョンで日本語にも対応予定です。

マイクロサービスのランタイムとアプリケーション

カスタムEPLアプリ(個々の*.monファイル)、Apama Analytics Builderモデル、およびスマートルールは、Apama-ctrlマイクロサービスで実行されます。これらは、テナントごとに独立領域が与えられます。つまり、登録している各テナントは、専用のリソース(メモリやCPU使用率)を持つApamaコンテナの独自インスタンスを持ちます。コンテナは他のテナントから隔離されているため、他のコンテナのCPU負荷またはメモリの問題は個別に追跡され、リソースが割り当てられます。

分析モデルの構築には、定義済みのルール(スマートルールを参照)を使用するか、Apama EPL Appsを使って独自のカスタムルールを定義するか、Apama Analytics Builderを使用できます。これには、次のマイクロサービスやアプリケーションが必要です:

以下をするには 以下のものが必要です
定義済みのルールの使用 Apama-ctrlマイクロサービス と スマートルールマイクロサービス(Things Cloud標準テナントに含まれます)
カスタムルールの定義 Apama-ctrlマイクロサービス と Apama EPL Apps
Apama Analytics Builderの使用 Apama-ctrlマイクロサービス と Apama Analytics Builder

他にも、ユーザーガイド内の アプリケーションの管理 に記載された利用可能アプリケーションの一覧表をご覧下さい。

機能の追加については、Things Cloud Supportにお問い合わせください。

備考: テナントがApamaスマートルール専用マイクロサービス(「Apama-ctrl-smartrules」とも呼ばれる)を購読している場合、Apama EPL AppsおよびApama Analytics Builderは使用できません。

イベント言語(Esper)からApamaへの移行

既存のイベント言語(Esper)でのカスタムCEPコードをご利用中のユーザー様に関しては、2021/9/1時点でのご利用状況を元にNTTコミュニケーションズより個別にマイグレーションのご連絡をさせていただいております。

スマートルールのみを使用している場合のイベント言語からの移行

テナントがスマートルールのみを使用し、カスタムルールを使用していない場合は、テナントからイベント言語を登録解除し、代わりにApamaを登録できます。

過去に構成設定したスマートルールは再起動されます。ステートフルなスマートルールの場合、スマートルールをホストするマイクロサービスの再起動時、スマートルール内の状態が失われます。この場合、スマートルールが以前と同じように機能するには、該当するデバイスの入力(メジャーメント、アラームなど)を再度送信する必要があります。

スマートルールは、イベント言語からApamaに移動する場合にのみ正しく機能し、逆方向には機能しません。

次の表に示すスマートルールはステートフルです。

このスマートルールの場合 次のことを確認してください。
ジオフェンス時 アラームを作成 ジオフェンスに現在含まれている、または含まれていないデバイスはどれですか。
ジオフェンス時 Eメールを送信 ジオフェンスに現在含まれている、または含まれていないデバイスはどれですか。
アラーム継続時間 重大度を上げる どのアラームが作成されましたか。
計算 エネルギー消費 最後のメーターの数値は何ですか。
計測値がない場合 アラームを作成 前回の計測値の時刻と、その計測値を送信したデバイスとは。

次のスマートルールはステートレスです。

カスタムルールも使用している場合のイベント言語からの移行

イベント言語で記述されたカスタムルールからApama EPLへの移行には、カスタムルールの書き換えと再テストが必要です。スクリプトやプログラミングと同様に、本番環境にデプロイする前に重要な変更を徹底的にテストする必要があります。したがって、推奨されるアプローチは、Apamaルールが開発されたときにそれをホストする別のテナントを作成し、そのテナントで必要な入力データを複製することです。これを行うには、次の手順を実行します。

  1. 変更を防ぐために、既存のテナントのCEPカスタムルールをロックダウンします。
  2. Apamaが有効になっている新しいテナントを利用可能にします。
  3. 新しいテナント上で、既存のテナントにあるすべてのCEPカスタムルールを、同等のApama EPLアプリケーションへ手動で変換します。
  4. 新しいテナント上で、既存のテナントにあるすべてのスマートルールを手動で再作成します。
  5. 新しいテナント上で、既存のテナントにあるスケジュールされたエクスポートを手動で再作成します。
  6. 新しいカスタムルールの動作をテストし、メモリリークとパフォーマンス、および正確性を確認します。
  7. すべてのCEPカスタムルール、スマートルール、およびスケジュールされたエクスポートが新しいテナントに移動または再作成された後、既存のテナントを削除します。