AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

Atlas Stream Processing アーキテクチャ

Atlas Stream Processing は、Atlas Infinite クラスターと Atlas Core クラスターの両方でサポートされています。

Atlas Stream Processing の主要抽象化はストリーム プロセッサです。ストリーム プロセッサは、指定されたソースからのストリーミングデータに対して継続的に動作し、出力を Sink に書込むMongoDB集計パイプラインです。詳細については、ストリーム プロセッサの構造 を参照してください。

ストリーム処理は Stream Processing ワークスペース上で実行されます。各 Stream Processing ワークスペースは、以下を関連付ける Atlas 名前空間です。

  • それぞれ独自の RAM と CPU の割り当てで実行されている1つ以上のストリーム プロセッサ。

  • 階層を指定しない場合に各ストリーム プロセッサで使用可能なメモリとコンピュートの量を決定するデフォルトの階層。

  • 最大階層。その Stream Processing ワークスペース内のポッドに割り当てることができるメモリとコンピュートの最大量を決定します。

  • クラウドプロバイダーとクラウド リージョン。

  • ストリーミング データの利用可能なソースとシンクのリストを保存する接続レジストリ。

  • ユーザー認証を定義するセキュリティ コンテキスト。

  • Stream Processing ワークスペース自体への 文字列接続。

ストリーム プロセッサを定義すると、そのストリーム プロセッサを定義するストリーム処理ワークスペースでのみ使用可能になります。各ストリーム プロセッサは、その階層に応じて割り当てられたリソースで実行されます。Atlas Stream Processing は、ストリーム プロセッサがを実行中間のみ、ストリーム プロセッサに対して 請求を行います。

階層サイズを宣言せずにストリーム プロセッサを起動すると、Stream Processing ワークスペースの階層で実行されます。Stream Processing ワークスペースの最大階層まで、任意の階層のストリーム プロセッサを起動できます。

例

myWorkspace という名前の Stream Processing ワークスペースに、デフォルトの階層を SP10、最大階層を SP50 として、ストリーム プロセッサを定義します。階層を指定せずにプロセッサを起動すると、Atlas Stream Processing はそれを SP10 ポッドに割り当てます。ただし、「SP2」から「SP50」までの任意の階層を宣言することができ、Atlas Stream Processing はプロセッサを適切なサイズのポッドに割り当てます。

ストリームプロセッサーの階層は手動で調整できます。または、垂直オートスケーリングを有効にすることで、Atlas Stream Processing が、プロセッサーのリソース使用状況に応じて階層を自動的に変更するようにすることができます。

接続レジストリには 1 つ以上の接続が保存されます。 各接続は、ストリーム プロセッサが外部サービスと交流できるようにするネットワークとセキュリティの詳細の組み合わせに名前を割り当てます。 接続では、次の動作が見られます。

  • 特定の Stream Processing ワークスペースの接続レジストリで定義された接続のみが、その Stream Processing ワークスペース上のストリーミング配信するプロセッサ ホストにサービスを提供できます。

  • 各接続は任意の数のストリーム プロセッサを処理できます

  • 単一の接続のみが、特定のストリーム プロセッサのソースとして機能できます。

  • 1 つの接続のみが、特定のストリーム プロセッサのシンクとして機能できます。

  • 接続は、ソースまたはシンクのいずれかとして最初に定義されることはありません。 ストリーム プロセッサがその接続を呼び出す方法に応じて、任意の接続がどちらの機能も提供できます。

Atlas Stream Processing は、マルチテナント インフラストラクチャ上に VM レベルの分離を持つ専用のカスタマーコンテナで各ストリーム プロセッサを実行します。MongoDBのセキュリティとコンプライアンスの詳細については、 MongoDB信頼センター を参照してください。

Atlas Stream Processing は、 チェックポイント を使用してストリーム プロセッサの状態を取得します。各チェックポイントは一意のIDを持ち、ストリーム プロセッサ ロジックのフローに従います。ストリーム プロセッサのすべての演算子がその状態をチェックポイントに追加した後、Atlas Stream Processing はチェックポイントをコミットし、2 種類のレコードを生成します。

  • チェックポイントIDとそれが属するストリーム プロセッサを検証する単一のコミットレコード

  • Atlas Stream Processing がチェックポイントをコミットした時点での、関連するストリーム プロセッサの各ステートメント操作の状態を説明するレコードのセット。

中断後にストリーム プロセッサを再起動すると、Atlas Stream Processing は最後にコミットされたチェックポイントをクエリし、記述された状態から操作を再開します。

チェックポイントは、ソース ドキュメントのコピーではなく、ソース オフセットをレコードします。例えば、Atlas Stream Processing は、変更ストリーム ソースの oplog 再開トークンと Kafka ソースのパーティション オフセットを保存します。Atlas Stream Processing がチェックポイントをコミットした後にソース ドキュメントを削除または期限切れにしても、プロセッサーの再開は防止されません。

プロセッサを再起動したときに、Atlas Stream Processing が最後のチェックポイントに保存した oplog 再開トークンがソースクラスターの oplog にない場合、Atlas Stream Processing はそのチェックポイントから再開できません。復旧するには、resumeFromCheckpoint=false でプロセッサを再起動します。このリスクを軽減するには、ソースクラスターに適切な oplog window を設定します。oplog window の設定方法については、「最小 oplog window の設定」を参照してください。

注意

ソースレプリカセットのノードが独自の最初の同期を実行すると、MongoDB はそのノードの oplog を切り捨てます。この oplog の切り捨ては、oplog データに依存する Change Streams などのプロセスに影響を与える可能性があります。詳細については、「最初の同期」および「Change Streams」を参照してください。

変更ストリーム $source の構成で initialSync が有効な場合、Atlas Stream Processing はソース コレクションをコピーする最初の同期フェーズと通常の変更イベント プロセシング フェーズの両方のチェックポイントを作成します。最初の同期中、Atlas Stream Processing は開始 oplog ポジションをレコードし、ソース コレクションをパーティションに分割します。プロセッサーはパーティションを介して既存のドキュメントをコピーし、コピーが完了すると、最初にレコードされたポジションから変更イベントを再生します。Atlas Stream Processing は最初の同期中にチェックポイントを作成し、中断が発生した場合、プロセッサーは再開できます。

Atlas Stream Processing は、サポートされているすべての _id タイプに対して最初の同期のチェックポイントを設定します。Atlas Stream Processing が予測可能な順序で読み取れない _id の値を持つコレクションはコピーに時間がかかりますが、ObjectId または順序付きの int または long の値を使用するコレクションと同様に復旧可能です。中断されたプロセッサーは、コレクションのコピーを再開するのではなく、最後のチェックポイントから再開します。initialSync がサポートする _id のタイプと、より長い操作に必要な oplog のサイジングについては、Atlas Stream Processing の制限 を参照してください。

Atlas Stream Processing はチェックポイントをコミットした後、 Kafkaのコンシューマー グループ オフセットを非同期に更新します。Apache Kafka を$source として使用すると、コンシューマー グループはこれらのチェックポイントを、各パーティションのKafkaクラスターでコミットされたオフセットとして追跡します。

これらの更新は定期的かつ非同期的に行われるため、コンシューマーグループのコミットされたオフセットは、最新のチェックポイントより一時的に遅れることがあります。これにより、kafka-consumer-group CLI ツールなど、Kafka からコミットされたオフセットを読み取るツールでは、モニタリングに短期的な遅延が発生し、メトリクスが遅れる可能性があります。これらのツールでは、コンシューマーグループがストリームプロセッサーの真の内部ポジションよりも "遅れている" と表示される可能性があります。

内部チェックポイントとコミットされたKafkaオフセットの間の遅延量は固定されず、ワークロードと構成によって異なる場合があります。一般的なワークロードでは 秒単位ですが、厳格な上限はありません。

Atlas Stream Processing は、Atlas データベースのコレクションをデッドレターキュー (DLQ) として使用することをサポートしています。Atlas Stream Processing がデータ ストリームからのドキュメントを加工できない場合、プロセシング失敗の詳細とともにドキュメントの内容を DLQ に書き込み (write)ます。ストリーム プロセッサの定義でコレクションを DLQ として割り当てることができます。

一般に、Atlas Stream Processing はドキュメントのデータに問題がある場合、ドキュメントを DLQ に書き込みます。次のリストには、Atlas Stream Processing がドキュメントを DLQ に書き込む原因となる一般的な処理エラーが含まれています。

  • 誤形した JSONが含まれている場合など、ドキュメントの解析に失敗します。

  • パイプラインの式がドキュメントの評価に失敗しました。

  • ドキュメントがターゲットシンクのサイズ制限を超えています。

  • シンクのパーティションキーを生成する際に、プロセッサでエラーが発生します。

  • ドキュメントは、許容遅延期間のウィンドウが期限切れになった後に到着します。

詳細は、以下を参照してください。

ストリーム プロセッサは、ライフサイクル全体で異なる状態間を移行します。これらの状態を理解することで、Stream Processing操作のモニターとトラブルシューティングに役立ちます。

可能な状態には、次のものが含まれます。

状態
説明

STARTED

ストリーム プロセッサはアクティブにデータ処理を行い、正常に動作しています。これは、プロセッサがソースからのデータを消費し、変換を適用し、Sink に書込む必要のある動作状態です。

STOPPED

ストリーム プロセッサは手動で停止されており、データを処理していません。ストリーム プロセッサを起動する方法については、ストリーム プロセッサの起動を参照してください。

PROVISIONING

ストリーム プロセッサは、リソースを割り当てるプロセスまたはインフラストラクチャのスケーリング プロセスにあります。

一般的な原因は次のとおりです。

  • 追加のリソースを必要とする新しいストリームプロセッサの起動

  • キャパシティーに達した既存のリソースを使用した場合の拡大操作。

  • ピーク使用期間におけるインフラストラクチャのリバランシング

  • ワークロードの需要に基づく自動リソースプロビジョニング

  • リソースの再割り当てが必要な Atlas Stream Processing ワークスペース階層の変更

潜在的な影響には、次のものが含まれます。

  • ストリーム プロセッサのスタートアップの一時的な遅延(通常は 2-5 分)

  • 移行中にデータ処理が短時間中断される

プロビジョニングが完了すると、プロセスは自動的に再開されます。Atlas Stream Processing は チェックポイント を通じて状態を保持するため、データの損失は発生しません。

FAILED

ストリームプロセッサーで、実行を防止するエラーが発生しました。これは、ユーザーエラーまたは構成の問題によって発生します。失敗の原因と復旧に関する詳細については、「エラー処理と再試ポリシー」を参照してください。

注意

システムがリソースを割り当てるときに、ストリーム プロセッサが断続的に モニタリング ダッシュボードにプロビジョニング状態として表示されることがあります。これは、スケーリング操作中の通常の動作です。プロセッサが長時間 プロビジョニング 状態のままになる場合(>10 分)は、ストリーム処理ワークスペースのリソース制限と階層構成を確認します。

Atlas Stream Processing は、フェイルオーバープロセサの形式で高可用性を提供します。フェイルオーバープロセサは、チェックポイントレプリケーションを使用してアクティブな Stream Processing プロセサをミラーリングし、Stream Processing ワークスペースのプライマリリージョンでサービス中断が発生した場合に、最新の状態から Stream Processing をシームレスに再開できるようにします。Atlas Stream Processing は、アクティブプロセサの集計パイプラインに加えた変更をフェイルオーバープロセサに自動的に同期します。

フェイルオーバー プロセッサーを使用するには、次の操作が必要です。

  • プロセッサーを SP10 以上の階層で構成します。

  • 対象の Stream Processing ワークスペースで 1 つ以上のフェイルオーバー リージョンを構成します。

  • Stream Processing ワークスペース内の接続を、フェイルオーバー リージョンをサポートするように構成します。これは、接続を作成する際に行うことができます。または、既存の接続を変更して、フェイルオーバー リージョンをサポートすることもできます。各接続タイプがフェイルオーバー リージョン間でどのように動作するかを学ぶには、フェイルオーバー接続を参照してください。

  • ターゲット ストリーム プロセッサーに対して 1 つ以上のフェイルオーバー プロセッサーを構成します。これは、プロセッサーを作成するときに行うことも、既存のプロセッサーを修正してフェイルオーバー プロセッサーを使用することもできます。

フェイルオーバー後も Stream Processing プロセッサーがプロセシングを継続することを確実にするには、Stream Processing ワークスペースと同じプロジェクト内のフェイルオーバーリージョンにノードを持つマルチリージョンクラスターを使用します。Atlas Stream Processing は、シングルリージョンクラスターのフェイルオーバーをブロックしませんが、MongoDB はマルチリージョンクラスターを推奨します。

フェイルオーバー イベントは、次の 3 つのタイプのいずれかを開始できます。

タイプ
説明

グレースフル

アクティブなプロセッサーをシャットダウンし、チェックポイントを作成してコピーし、最新のチェックポイントからプロセシングを再開します。

強制

アクティブなプロセッサが停止しない場合でも、フェイルオーバー プロセッサをアクティブ化します。デフォルトでは、フェイルオーバー プロセッサは最新のチェックポイントから再開されます。または、正常なフェイルオーバーを実行できない場合は、オプションでチェックポイントをクリアできます。

ドライバーは

データを消費せずにフェイルオーバープロセスをテストし、本番環境に導入する前にフェイルオーバー構成を検証できます。

Stream Processing ワークスペースのフェイルオーバー リージョンを作成できます。ワークスペースを初期に 作成 するとき、または、既存の Stream Processing ワークスペースをフェイルオーバー リージョンを使用するように変更できます。

個別のプロセッサー、所定のワークスペース内のすべてのプロセッサー、または指定されたリージョンでフェイルオーバーが構成されているすべてのプロセッサーのフェイルオーバーを trigger できます。

フェイルオーバープロセッサは、少なくとも 1 回のプロセシングセマンティクスを保証します。

フェイルオーバープロセッサーの要件と制限の詳細については、制限を参照してください。

フェイルオーバー プロセッサーの価格については、請求ドキュメントを参照してください。

フェイルオーバーは別個の接続タイプを使用しません。Stream Processing ワークスペース内の各接続には名前が付いています。リージョンをサポートする接続タイプの場合、元の接続と同じ名前とタイプを持ち、固有のリージョンとエンドポイントとなる接続されたデバイスの設定を持つリージョン固有の接続を作成できます。リージョン固有の接続は、お使いの Stream Processing ワークスペースに構成されたフェイルオーバー リージョンのみで作成できます。

フェイルオーバー リージョン間での接続の動作は次のとおりです。

  • Atlas クラスター接続はすべてのリージョンで共有されます。リージョン固有のAtlas接続は作成できません。

  • `Apache Kafka <https://kafka.apache.org/>`__ 接続は、リージョンをサポートする唯一の接続タイプです。リージョン固有の接続が必要かどうかは、接続のネットワーク構成によって異なります。

    • 接続でパブリック ネットワークを使用する場合、リージョン固有の接続を使用する必要はなく、すべてのリージョンで使用できます。

    • 接続で Private Link または VPC ピアリングを使用する場合、各フェイルオーバーリージョンで、そのリージョンのエンドポイントとなる接続されたデバイスを指すリージョン固有の接続を作成する必要があります。リージョンごとにエンドポイントとなる接続されたデバイスとキーストアが異なるため、mTLS を使用する Private Link 接続が含まれます。

既存のStream Processingワークスペースにフェイルオーバーリージョンを追加すると、Atlas Stream Processingは既存のApache Kafka接続にリージョンを割り当てます。

接続を使用するストリーム プロセッサーが実行中である間は、接続を変更できません。

リージョン固有の接続を作成するには、1 つのフェイルオーバー ストリーム接続を作成エンドポイントとなる接続されたデバイス、Atlas CLI、Terraform、または Atlas UI を使用します。mongoshを使用して接続を作成または変更することはできません。

Atlas Stream Processing は、確実なストリーム処理を確保するために、包括的なエラー処理と再試行ポリシーを実装します。システムはさまざまなタイプのエラーを区別し、エラー分類に基づいて適切な再試行戦略を適用します。

Atlas Stream Processing はエラーを主要 2 つのカテゴリに分類します。

ユーザー エラー

Atlas Stream Processing の制御外のユーザー構成、データの問題、または外部サービスの問題によって発生するエラー。例としては、次のものが含まれます。

  • 無効な接続認証情報

  • 外部サービスへのネットワーク接続の問題

  • 処理できない不正データ

  • 外部リソースへのアクセス権限の問題

内部エラー

Atlas Stream Processing システム自体で発生するエラー。通常、一時的なインフラストラクチャの問題やサービスの中断が原因で、Atlas Stream Processing システム自体で発生するエラー。これらは、解決する Atlas Stream Processing サービスの責任と見なされます。

再試行動作は、エラーの分類によって異なります。

ユーザー エラー再試行ポリシー

  • Atlas Stream Processing は、ストリーム プロセッサを 5 分の期間にわたって限定的に再起動しようとします

  • この時間枠内ですべての再試行が失敗すると、ストリーム プロセッサは FAILED 状態に移行します

  • 一部のユーザー エラーは 再試行不可として分類され 、プロセッサをすぐに失敗させます。例としては、次のものが含まれます。

    • StreamProcessorWorkerOutOfMemory (418): パイプラインが階層メモリ制限を超えています

    • StreamProcessorInvalidOptions (420):パイプラインの構文または構成が無効です

  • 失敗したストリーム プロセッサを手動で再起動するには、start() メソッドを呼び出します

内部エラー再試行ポリシー

ストリーム プロセッサでエラーが発生し、再起動が必要な場合、回復プロセスは次の手順に従います。

1

現在の状態はチェックポイントメカニズムを通じて保持されます。

2

Atlas Stream Processing は、適用可能な再試行ポリシーに従ってプロセッサの再起動を試みます。

3

再起動を成功させると、プロセッサは最後にコミットされたチェックポイントから操作を再開します。

4

プロセッサは終了した場所から処理を続行するため、データが失われることはありません。

このリカバリ プロセスにより、一時的な障害によってデータが失われたり、ほとんどの場合に手動による介入が必要になったりすることがなくなります。

ストリーミングデータ処理では、ドキュメントは次の 2 つのタイミング システムの対象となります。

  • イベント時間

  • プロセシング時間

Atlas Stream Processing は、ストリーム プロセッサとこれらのタイミング システムとのやり取りを制御するためのさまざまなパラメーターを提供しています。

イベント時間は、ソースストリームがドキュメントを生成した時点、またはメッセージング システム(例:Apache Kafka)はドキュメントを受け取ります。これは、ドキュメントのタイムスタンプによって保証されます。

ネットワークレイテンシ、上流処理、およびその他の要因により、特定のドキュメントでこれらの時間間の不整合が生じるだけでなく、ドキュメントがイベント時間順からストリーム プロセッサに到達する可能性もあります。いずれの場合も、 Windows はキャプチャする予定のドキュメントを失う可能性があります。 Atlas Stream Processing は、このようなドキュメントが 遅延 しているドキュメントを考慮し、デッド レター キューに送信します( 設定されている場合)。

イベント時間は、 Tumbling WindowsとホスティングWindowsでサポートされている boundaryフィールドの構成可能なオプションです。

処理時間とは、ストリーム プロセッサがドキュメントを使用する時間のことであり、ストリーム プロセッサをホストするシステムのクロックによって確認されます。

プロセシング時間は、boundary フィールドの構成可能なオプションで、タンブリング Windowsとホッピング Windowsでサポートされます。このオプションを利用すると、サーバーのウォール クロック時間に基づいてデータを蓄積するタイプのウィンドウを持つパイプラインを作成できます。イベント時間 ウィンドウとは対照的に、プロセシング時間ウィンドウは、ストリーム プロセッサに到着した際のサーバーのウォール クロック時間に基づいて各イベントにタイムスタンプを割り当てます。

ドキュメントのタイムスタンプとウィンドウ境界のタイムスタンプは UTC です。processingTime ウィンドウを構成する際に、idleTimeout または allowedLateness オプションを指定することはできません。

例

5 分間のイベント時間ウィンドウを使用してパイプラインを作成します。イベントは 09:33 で、ソース Kafka クラスターに追加されます。Kafka クラスターの遅延により、そのイベントは09:37 のストリーム プロセッサに到達します。

パイプラインのイベント時間ウィンドウが 5 分の場合、このイベントは 09:30-09:35 ウィンドウに割り当てられます。パイプラインの処理時間ウィンドウが 5 分である場合、イベントは代わりに 09:35-09:40 ウィンドウに割り当てられます。

ウォーターマークは処理時間を上書き、プロセッサが以前に消費されたドキュメントよりも後のイベント時間を持つドキュメントを消費した場合にのみ更新します。Atlas Stream Processing は、パイプラインにウィンドウステージ($tumblingWindow、$hoppingWindow、$sessionWindow)が含まれている場合にのみウォーターマークを適用します。

5 分のウィンドウを使用してストリーム プロセッサーを設定します。プロセッサーを 12:00 で開始すると、最初の 2 つのウィンドウの期間が 12:00-12:05 と 12:05-12:10 になります。次の表は、ディレイの長さが異なる場合に、ワーターマークの有無にかかわらず、どのウィンドウがどのイベントをキャプチャするかを示します。

イベント時間
プロセシング時間
ウィンドウ時間(サーバーマークなし)
ウィンドウ時間(すかし)

12:00

12:00

12:00-12:05

12:00-12:05

12:01

12:03

12:00-12:05

12:00-12:05

12:02

12:05

12:05-12:10

12:00-12:05

12:01

12:06

12:05-12:10

12:00-12:05

12:06

12:07

12:05-12:10

12:05-12:10

ウォーターマークがない場合、 Stream Processing ワークスペースのシステム クロックに従って、 12:00-12:05ウィンドウが12:05に閉じられ、 12:05-12:10ウィンドウがすぐに開きます。そのため、ソースが12:00-12:05の間に4つのドキュメントを生成したにもかかわらず、関連するウィンドウは2つのドキュメントのみをキャプチャします。

ウォームマークを使用すると、12:00-12:05ウィンドウは12:05 で閉じない。その点までに取り込むドキュメントのうち、最新のイベント時間、つまりサーバーの値が 12:03 であるためです。12:00-12:05ウィンドウは、システム クロックの 12:07まで閉じない。ストリーム プロセッサが 12:05 のイベントタイムのドキュメントを取り込むと、その時間までウォームアップを進めて、12:05-12:10ウィンドウを開きます。各ウィンドウは適切なドキュメントをすべてキャプチャします。

Apache Kafkaから読み取る場合、Atlas Stream Processing はすべてのパーティションがウォーターマークを通過するのを待機します。パーティションがアイドル状態になり、ウォーターマークより後のタイムスタンプを持つイベントを生成できない場合、ウィンドウは閉じられず、結果も出力されません。これに対処するため、アイドルパーティションがウォーターマークの進行を止めないように partitionIdleTimeout を設定します。詳細については、「$source ステージ(Stream Processing)」をご覧ください。

イベント時間とプロセシング時間の差が十分に異なる場合、ウォームマークが予想されるウィンドウを閉じるのに十分に進んだ後に、ドキュメントがストリーム プロセッサに到達することがあります。 これを軽減するために、Atlas Stream Processing は 許可レイテンシ をサポートしています。これは、レプリカセットに対して一定の間隔でウィンドウを閉じるのを遅延させる設定です。

サーバーマークはストリーム プロセッサのプロパティですが、許可されたレイテンシはウィンドウのプロパティであり、そのウィンドウが閉じられた場合にのみ影響します。 ストリーム プロセッサのウォームマークが、新しいウィンドウを開くtriggerとなる点まで進む場合、 許可されたレイテンシ はこれを防ぐことなく、以前のWindowsを開いたままにします。

5 分のローリングWindowsでストリーム プロセッサを構成します。 プロセッサを 12:00 で起動するため、最初の 2 つのWindowsの期間は 12:00-12:05 と 12:05-12:10 になります。 許可されたレイテンシ を2分に設定します。

以下の表は、ストリーム プロセッサが説明されたドキュメントを取り込む順序を反映しています。

イベント時間
サーバーマーク
許可されたレイテンシ時間
ウィンドウ時間

12:00

12:00

11:58

12:00-12:05

12:02

12:03

12:01

12:00-12:05

12:01

12:04

12:02

12:00-12:05

12:05

12:05

12:03

12:00-12:05, 12:05-12:10

12:04

12:06

12:04

12:00-12:05, 12:05-12:10

12:07

12:07

12:05

12:05-12:10

サーバー マークが12:05まで進むと、 12:05-12:10ウィンドウが開きます。 ただし、許可レイテンシの間隔が2分であるため、 12:00-12:05ウィンドウ内では実質的に12:03のみとなり、開いたままになります。 サーバー マークが12:07に進むとのみ、調整された時間は12:05に達します。 この時点で、 12:00-12:05ウィンドウは閉じます。

デフォルトでプロセシング時間からウィンドウ動作を分離することにより、ほとんどの場合で Stream Processing の正確性が向上します。ただし、ストリーミング データソースでは、長時間の非活動期間が発生する場合があります。このシナリオでは、ウィンドウがアイドル期間前にイベントをキャプチャし、ウォーターマークが閉じるのに十分なほど進むのを待っている間、処理された結果を返すことができなくなる可能性があります。

Atlas Stream Processing を使用すると、ユーザーは Windows のアイドル タイムアウトを構成して、プロセシング時間を使用してこれらのシナリオを軽減できます。アイドル性タイムアウトは、プロセシング時間が渡し、開いているウィンドウの間隔が終了し、ストリーム プロセッサのソースがアイドル状態の場合に開始される間隔です。ソースがアイドル状態タイムアウトと等しい間隔でアイドル状態を維持すると、ウィンドウは閉じ、ウォームマークはドキュメントの取り込みとは無関係に進みます。

3分の間隔と1分のアイドルタイムアウトでタームリング ウィンドウを構成します。 次の表は、ウィンドウの間隔中とその後のアイドル性タイムアウトの影響を示しています。

プロセシング時間
イベント時間またはステータス
サーバーマーク
ウィンドウ時間

12:00

12:00

12:00

12:00-12:03

12:01

ソース アイドル

12:00

12:00-12:03

12:02

ソース アイドル

12:00

12:00-12:03

12:03

ソース アイドル

12:00

12:00-12:03

12:04

12:02

12:02

12:00-12:03

12:05

12:05

12:05

12:03-12:06

12:06

ソース アイドル

12:05

12:03-12:06

12:07

ソース アイドル

12:00

12:06-12:09

12:08

ソース アイドル

12:00

12:06-12:09

12:09

12:09

12:09

12:09-12:12

12:00-12:03間隔中、ソースは 3 分間アイドル状態になりますが、ストリーム プロセッサはウィンドウを閉じないで、処理時間がウィンドウの間隔の終了を超えないため、ウィンドウの間隔が終了した後もソースはアイドル状態を維持しません。 ウォームマークが12:05まで進むと、ウィンドウは正常に閉じ、 12:03-12:06ウィンドウが開きます。

ソースが12:06でアイドル状態になると、 12:07を通じてアイドル状態のままになり、アイドルタイムアウトがトリガーされ、 ウォームマークが12:06に進みます。