Databricksでの構造化ストリーミングのバッチ サイズの構成

構造化ストリーミングクエリーの入力レートを制限すると、一貫したバッチ サイズを維持し、大きなバッチによってマイクロバッチ処理の遅延が流出したりカスケードされたりするのを防ぐことができます。

Databricks には、 Delta Lake と Auto Loaderの両方の構造化ストリーミング バッチ サイズを制御するための同じオプションが用意されています。

maxFilesPerTrigger で入力レートを制限する

設定 maxFilesPerTrigger (または Auto Loaderの場合は cloudFiles.maxFilesPerTrigger)は、各マイクロバッチで処理されるファイル数の上限を指定します。 Delta Lake と Auto Loader の両方で、デフォルトは 1000 です。(このオプションは、デフォルトで最大値がない他のファイルソースのApache Sparkにも存在することに注意してください)。

最大バイトパートリガー で入力レートを制限する

設定 maxBytesPerTrigger (または Auto Loaderの場合は cloudFiles.maxBytesPerTrigger)は、各マイクロバッチで処理されるデータ量の「ソフトマックス」を設定します。 つまり、バッチはほぼこの量のデータを処理し、最小の入力単位がこの制限よりも大きい場合にストリーミングクエリーを前進させるために制限を超えて処理する可能性があります。 この設定にはデフォルトはありません。

たとえば、 10g などのバイト文字列を指定して各マイクロバッチを 10 GB のデータに制限し、それぞれ 3 GB のファイルがある場合、Databricks はマイクロバッチで 12 GB を処理します。

複数の入力レートをまとめ て設定する

maxBytesPerTriggermaxFilesPerTriggerと組み合わせて使用すると、マイクロバッチは maxFilesPerTrigger または maxBytesPerTriggerの下限に達するまでデータを処理します。

他の構造化ストリーミングソース の入力レートの制限

Apache Kafka などのストリーミングソースには、それぞれ maxOffsetsPerTriggerなどのカスタム入力制限があります。 詳細については、「 ストリーミング データソースの構成」を参照してください。