Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano znane ograniczenia trybu czasu rzeczywistego w przesyłania strumieniowego ze strukturą.
Ograniczenia źródła
W przypadku kinesis tryb czasu rzeczywistego nie obsługuje trybu sondowania. Ponadto częste ponowne partycjonacje mogą mieć negatywny wpływ na opóźnienie.
Ograniczenia unii
Operator Unii ma pewne ograniczenia:
- Samodzielna unia nie jest obsługiwana:
- W przypadku platformy Kafka nie można użyć tego samego obiektu ramki danych źródłowej i ramki danych pochodnych. Aby obejść ten problem, użyj różnych ramek danych odczytywanych z tego samego źródła.
- W przypadku kinezy nie można połączyć ramek danych pochodzących z tego samego źródła Kinesis z tą samą konfiguracją. Aby obejść ten problem, zamiast używać różnych ramek danych, można przypisać inną
consumerNameopcję do każdej ramki danych.
- Operatory stanowe (na przykład ,
aggregate,deduplicatetransformWithState) nie mogą być zdefiniowane przed Unią. - Łączenie ze źródłami wsadowymi nie jest obsługiwane.
mapPartitions Ograniczenie
mapPartitions w języku Scala i podobnych interfejsach API Python (mapInPandas, mapInArrow) przyjmuje iterator całej partycji wejściowej i tworzy iterator całego wyjścia z dowolnym mapowaniem między danymi wejściowymi i wyjściowymi. Te interfejsy API mogą powodować problemy z wydajnością w trybie czasu rzeczywistego, blokując całe dane wyjściowe, co zwiększa opóźnienie. Semantyka tych interfejsów API nie wspiera dobrze propagacji znaków wodnych.
Użyj skalarnych funkcji zdefiniowanych przez użytkownika w połączeniu z przekształcaniem złożonych typów danych lub filter zamiast tego, aby uzyskać podobną funkcjonalność.
transformWithStateInPandas nieobsługiwane
Operator transformWithStateInPandas nie jest obsługiwany w trybie czasu rzeczywistego. Jeśli potrzebujesz niestandardowego przetwarzania stanowego w Python w trybie czasu rzeczywistego, zamiast tego użyj interfejsu API transformWithState opartego na wierszach. Interfejs API oparty na wierszach zapewnia te same funkcje przetwarzania stanowego przy użyciu Row obiektów, a nie ramek danych biblioteki pandas.
Zobacz transformWithState w trybie czasu rzeczywistego aby uzyskać szczegółowe informacje na temat zachowania transformWithState w trybie czasu rzeczywistego oraz przykłady Rejezys aby zapoznać się z Python roboczym przykładem użycia interfejsu API opartego na wierszach.