Batasan mode real time

Halaman ini menjelaskan batasan yang diketahui untuk mode real-time dalam Streaming Terstruktur.

Batasan sumber

Untuk Kinesis, mode real time tidak mendukung mode polling. Selain itu, partisi ulang yang sering mungkin berdampak negatif pada latensi.

Batasan serikat pekerja

Operator Union memiliki beberapa batasan:

  • Penyatuan mandiri tidak didukung:
    • Untuk Kafka, Anda tidak dapat menggunakan objek bingkai data sumber yang sama dan bingkai data gabungan yang diturunkan darinya. Sebagai solusinya, gunakan DataFrame berbeda yang dibaca dari sumber yang sama.
    • Untuk Kinesis, Anda tidak dapat menyatukan bingkai data yang berasal dari sumber Kinesis yang sama dengan konfigurasi yang sama. Sebagai solusinya, alih-alih menggunakan DataFrame yang berbeda, Anda dapat menetapkan opsi yang berbeda consumerName untuk setiap DataFrame.
  • Operator stateful (misalnya, aggregate, , deduplicatetransformWithState) tidak dapat ditentukan sebelum Union.
  • Union dengan sumber batch tidak didukung.

mapPartitions Batasan

mapPartitions di Scala dan API Python serupa (mapInPandas, mapInArrow) mengambil iterator dari seluruh partisi input dan menghasilkan iterator dari seluruh output dengan pemetaan arbitrer antara input dan output. API ini dapat menyebabkan masalah performa dalam mode real-time dengan memblokir seluruh output, yang meningkatkan latensi. Semantik dari API ini tidak sepenuhnya mendukung propagasi watermark dengan baik.

Gunakan UDF skalar yang dikombinasikan dengan Transformasi jenis data kompleks atau filter sebagai gantinya untuk mencapai fungsionalitas serupa.

transformWithStateInPandas tidak didukung

Operator transformWithStateInPandas tidak didukung dalam mode real time. Jika Anda memerlukan pemrosesan stateful kustom dalam Python dengan mode real time, gunakan API transformWithState berbasis baris sebagai gantinya. API berbasis baris menyediakan kemampuan pemrosesan stateful yang sama menggunakan Row objek daripada Pandas DataFrames.

Lihat transformWithState dalam mode real time untuk detail tentang perilaku transformWithState dalam mode real time, dan contoh mode Real-time untuk contoh Python kerja menggunakan API berbasis baris.