継続的にストリーミングされたデータを処理するためのストリーミングジョブ - Amazon EMR

継続的にストリーミングされたデータを処理するためのストリーミングジョブ

EMR Serverless のストリーミングジョブは、ストリーミングデータをほぼリアルタイムで分析、処理できるジョブモードです。これらの長時間実行されるジョブは、ストリーミングデータをポーリングし、データが到着すると継続的に結果を処理します。ストリーミングジョブは、ほぼリアルタイムの分析、不正検出、レコメンデーションエンジンなど、リアルタイムのデータ処理を必要とするタスクに最適です。EMR Serverless ストリーミングジョブは、組み込みジョブの耐障害性、リアルタイムモニタリング、拡張ログ管理、ストリーミングコネクタとの統合などの最適化を提供します。

ストリーミングジョブのユースケースを次に示します。

  • ほぼリアルタイムの分析 – Amazon EMR Serverless のストリーミングジョブを使用すると、ストリーミングデータをほぼリアルタイムで処理できるため、ログデータ、センサーデータ、クリックストリームデータなどの継続的なデータストリームに対してリアルタイム分析を実行してインサイトを取得し、最新の情報に基づいてタイムリーな意思決定を行うことができます。

  • 不正検出 – データストリームを分析し、疑わしいパターンや異常が発生したときに特定すると、ストリーミングジョブを使用して、金融取引、クレジットカードオペレーション、オンラインアクティビティでほぼリアルタイムの不正検出を実行できます。

  • レコメンデーションエンジン – ストリーミングジョブは、ユーザーアクティビティデータを処理してレコメンデーションモデルを更新できます。そうすることで、行動や好みに基づいてパーソナライズされたリアルタイムのレコメンデーションの可能性が広がります。

  • ソーシャルメディア分析 – ストリーミングジョブは、ツイート、コメント、投稿などのソーシャルメディアデータを処理できるため、組織はトレンドの監視、感情分析、ブランドの評判の管理をほぼリアルタイムで行うことができます。

  • モノのインターネット (IoT) 分析 – ストリーミングジョブは、IoT デバイス、センサー、接続された機械からの高速ストリームを処理、分析できるため、異常検出、予知保全、その他の IoT 分析のユースケースを実行できます。

  • クリックストリーム分析 – ストリーミングジョブは、ウェブサイトやモバイルアプリケーションからのクリックストリームデータを処理して分析できます。このようなデータを使用する企業は、分析を実行してユーザーの行動を詳細に把握し、ユーザーエクスペリエンスをパーソナライズし、マーケティングキャンペーンを最適化できます。

  • ログの監視と分析 – ストリーミングジョブは、サーバー、アプリケーション、ネットワークデバイスからのログデータを処理することもできます。これにより、異常検出、トラブルシューティング、システムの正常性とパフォーマンスが得られます。

主な利点

EMR Serverless でのストリーミングジョブは、ジョブの耐障害性を自動的に提供します。これは、以下の要素の組み合わせです。

  • 自動再試行 – EMR Serverless は、失敗したジョブをユーザーから手動で入力することなく自動的に再試行します。

  • アベイラビリティーゾーン (AZ) の耐障害性 – EMR Serverless は、元の AZ で問題が発生するとストリーミングジョブを正常な AZ に自動的に切り替えます。

  • ログ管理:

    • ログローテーション – ディスクストレージ管理をより効率的にするために、EMR Serverless は長時間のストリーミングジョブのログを定期的にローテーションします。これにより、すべてのディスク領域を消費する可能性のあるログの蓄積を防ぐことができます。

    • ログの圧縮 — マネージド永続化でログファイルを効率的に管理および最適化できます。圧縮により、マネージド Spark 履歴サーバーを使用する場合のデバッグのエクスペリエンスも向上します。

サポートされているデータソースとデータシンク

EMR Serverless は、多数の入力データソースと出力データシンクで動作します。

  • サポートされている入力データソース – Amazon Kinesis Data Streams、Amazon Managed Streaming for Apache Kafka、セルフマネージド Apache Kafka クラスター。デフォルトでは、Amazon EMR リリース 7.1.0 以降には Amazon Kinesis Data Streams コネクタが含まれているため、追加のパッケージを構築またはダウンロードする必要はありません。

  • サポートされている出力データシンク – AWS Glue Data Catalog テーブル、Amazon S3、Amazon Redshift、MySQL、PostgreSQL Oracle、Oracle、Microsoft SQL、Apache Iceberg、Delta Lake、Apache Hudi。

考慮事項と制限事項

ストリーミングジョブを使用するときは、以下の考慮事項と制限事項に留意してください。

  • ストリーミングジョブは、Amazon EMR リリース 7.1.0 以降でサポートされています。

  • EMR Serverless ではストリーミングジョブが長時間実行されることが予想されるため、ジョブの実行時間を制限する実行タイムアウトを設定できません。

  • ストリーミングジョブは、構造化ストリーミングフレームワークの上に構築された Spark エンジンとのみ互換性があります。

  • EMR Serverless はストリーミングジョブを無期限に再試行します。最大試行回数はカスタマイズできません。失敗した試行回数が 1 時間ごとの時間枠で設定されたしきい値を超えた場合、スラッシュ防止が自動的に組み込まれてジョブの再試行が停止します。デフォルトのしきい値は、1 時間あたり 5 回の試行の失敗です。このしきい値は、1~10 回試行するように設定できます。詳細については、「Job resiliency」を参照してください。

  • ストリーミングジョブにはランタイムの状態と進行状況を保存するチェックポイントがあるため、EMR Serverless は最新のチェックポイントからストリーミングジョブを再開できます。詳細については、Apache Spark ドキュメントの「Recovering from failures with Checkpointing」を参照してください。