Udostępnij za pośrednictwem


Opóźnienie w aktywatorze

Funkcja aktywowania sieci szkieletowej uruchamia reguły względem danych w czasie rzeczywistym. Wyniki są niemal natychmiastowe, ale istnieją czynniki, które mogą powodować opóźnienie. W większości przypadków opóźnienie jest niemożliwe, ale w innych przypadkach opóźnienie może wynosić do 10 minut. Otrzymywanie dokładnych i terminowych informacji jest ważnym zagadnieniem podczas tworzenia i odbierania reguł. W tym artykule omówiono procesy i ustawienia, które określają równowagę między włączeniem zdarzeń i strukturą reguły oraz jak szybko jest wysyłany aktywator. Na przykład czy aktywator powinien zezwolić na uzyskanie większej ilości danych i dołączyć lub czy aktywator powinien upewnić się, że adresaci otrzymają swoje alerty w określonym czasie? W jaki sposób reguła ma wpływ na szybkość, z jaką aktywacja jest wysyłana do adresatów?

Istnieją trzy ważne czynniki wpływające na opóźnienie aktywacji reguły:

  • Ustawienie użytkownika dla tolerancji opóźnionych przylotów.
  • Opóźnienie, do jednej minuty, które może zostać wprowadzone przez przetwarzanie zaplecza aktywatora.
  • Agregacje reguły.

Tolerancja późnego przybycia

Tolerancja późnego przybycia jest ustawiona na ekranie Definicja reguły aktywatora i jest stosowana do czasu przybycia zdarzenia. Aby dowiedzieć się, jak ustawić tolerancję opóźnionych przylotów, zobacz Ustawienie tolerancji opóźnionych przylotów.

Opóźnienie przetwarzania zaplecza

Reguły mogą wymagać przetwarzania, zanim reguła zostanie aktywowana. Jeśli na przykład reguła jest porównaniem z poprzednim zestawem zdarzeń, przetwarzanie zaplecza powoduje pobranie poprzednich danych, porównanie i obliczenie wyniku. Innym przykładem jest to, że jeśli reguła działa względem 10 milionów wierszy danych, opóźnienie jest wprowadzane przez przetwarzanie tych danych przez zaplecze.

Opóźnienie agregacji

Jeśli agregacja jest używana w definicji reguły, reguła jest aktywowana tylko po zakończeniu określonego przedziału czasu. Załóżmy na przykład, że reguła została utworzona w celu uśredniania danych w ciągu czterech godzin. Jeśli zdarzenie spełniające warunki reguły zostanie pozyskane o godzinie 12:00, reguła zostanie wyzwolona o godzinie 16:00. Opóźnienie jest wynikiem ustawień agregacji. Nawet jeśli reguła zawiera prostą agregację, taką jak średnia, aktywacja nie może wysłać aktywacji, dopóki funkcja Aktywator nie uruchomi agregacji w danych przychodzących zdarzeń.

Pojęcia dotyczące czasu w tle

Aby lepiej oprawić dyskusję, zdefiniujmy kilka pojęć w tle.

  • Czas zdarzenia: czas wystąpienia oryginalnego zdarzenia. Jest to część ładunku zdarzenia. Na przykład gdy poruszający się samochód na autostradzie zbliża się do kabiny płatnej i zauważył czujnik.
  • Czas przetwarzania: czas, w którym zdarzenie dociera do systemu przetwarzania i jest obserwowane. Na przykład gdy czujnik punktu płatnego widzi samochód, a system komputerowy może chwilę przetworzyć dane.
  • Godzina przybycia (znak wodny lub czas pozyskiwania): znacznik wskazujący, kiedy dane zdarzenia docierają do aktywatora. Ze względu na charakter strumieni dane zdarzeń przychodzących nigdy nie są zatrzymywane, więc czasy przybycia wskazują postęp poczyniony przez aktywatora do określonego punktu w strumieniu. W tym momencie aktywator może generować kompletne, poprawne i powtarzalne wyniki, które nie muszą być wycofane. W tym momencie aktywator może rozpocząć przetwarzanie danych. Przetwarzanie można wykonać w przewidywalny i powtarzalny sposób. Jeśli na przykład w przypadku niektórych warunków obsługi błędów należy wykonać ponowne opowiadanie, czasy przybycia są bezpieczne dla punktów początkowych i końcowych.

Późny przyjazd występuje, gdy reguła ma parametr czasu, a czas zdarzenia mieści się w tym parametrze czasu, ale czas przyjazdu przypada poza tym parametrem. Jeśli ponownie użyjemy przykładu punktu płatnego, samochód zostanie rozpoznany przez czujnik punktu płatnego, a czas zdarzenia mieści się w parametrze czasu. Aktywator widzi, że reguła ma agregację i wykonuje tę agregację danych. Czas potrzebny na wykonanie tej agregacji powoduje przeniesienie czasu przyjazdu poza parametr czasu. To wydarzenie jest teraz uważane za późno. Jeśli chcesz, aby późne przyjazdy zostały uwzględnione, ustaw wartość tolerancji przylotu opóźnionego.

Aby uzyskać dodatkowe zasoby na ten temat, zobacz wpisy w blogu Tylera Akidau Streaming 101 i Streaming 102.

Ustawienie tolerancji późnego przybycia

Tolerancja opóźnionego przybycia to ustawienie użytkownika. Tolerancja opóźnionego przylotu odnosi się do tego, jak długo aktywator czeka na przybycie zdarzenia i zostanie potwierdzony i przetworzony. Wartość domyślna to dwie minuty. Tolerancja późnego przybycia przyczynia się do opóźnienia. Reguły tworzone z tolerancją opóźnionego przylotu mają opóźnienie, które jest co najmniej ilością czasu ustawionego na tolerancję opóźnionego przylotu. Podczas tworzenia reguły zdecyduj, czy używać tolerancji domyślnej, czy jej zmiany. Tolerancja gwarantuje, że późne zdarzenia i zdarzenia, które docierają poza kolejność, mogą zostać uwzględnione w ocenie reguły. Jeśli wydarzenie wykracza poza tolerancję późnego przybycia, Aktywacja nie bierze pod uwagę. Wszystkie zdarzenia z czasem przyjazdu po tej tolerancji nie są uwzględniane.

Zrzut ekranu przedstawiający okienko Warunki przewinięty do opcji Ustawienia zaawansowane.

Ogólnie rzecz biorąc, należy wziąć pod uwagę, czy ważniejsze jest:

  • Poczekaj na późne punkty danych lub
  • uruchom regułę dotyczącą potencjalnie niekompletnych danych, aby reguła uaktywniła się wcześniej. 

W tym przykładzie punkty danych są mierzone w 15-minutowych przyrostach. Pierwsze trzy kropki, które są niebieskie, sprawiają, że w przedziale czasu. Czwarta kropka, która jest pomarańczowa, nie. Czas zdarzenia mieści się w 15-minutowym interwale, ale zdarzenie nie jest pozyskiwane przez program Aktywator w interwale 15-minutowym. Aktywacja ocenia tylko regułę danych za pomocą godziny przyjazdu w ciągu 15-minutowego okna. Jeśli użytkownik nie wskaże, że chce zezwolić na tolerancję opóźnionego przybycia i poczekać, aby sprawdzić, czy pojawią się inne punkty danych. 

Zrzut ekranu przedstawiający wykres liniowy z interwałami czasu.

Aktywator nie może uwzględniać opóźnień w danych użytkownika. Na przykład użytkownik może mieć czujniki IoT, które są w trybie offline przez 1 godzinę. Po powrocie do trybu online aktywacja może odbierać dane, ale dane zostały opóźnione o 1 godzinę od tego stanu offline, co dzieje się poza aktywatorem.

Oto kolejny przykład.

Użytkownik tworzy regułę, która oblicza średnią temperaturę w interwałach minut. Tolerancja opóźnionych przylotów jest ustawiona na Wartość domyślna. Wartość domyślna to dwie minuty. Uwzględniane są wartości temperatury 20 i 30, a średnia temperatura wynosi 25. Jednak zdarzenie opóźnione dla temperatury 40 stopni nie zostanie uwzględnione, dopóki kolejna aktywacja reguły nie nastąpi. 

Czas zdarzenia Godzina przyjazdu Temperatura
09:00 09:02 20
09:01 09:03 30
09:02 09:07 40

Ważne

Obecnie nie można zastąpić domyślnej tolerancji opóźnionych przylotów. To ustawienie nie dotyczy również reguł usługi Power BI.

Reguły oparte na wizualizacjach usługi Power BI

Opóźnienie wbudowane różni się od usługi. Opóźnienie strumieni zdarzeń różni się od opóźnienia wizualizacji usługi Power BI. Istnieją dwie części, które składają się na opóźnienie dla reguł utworzonych na wizualizacjach usługi Power BI: częstotliwość wykonywania zapytań dotyczących wizualizacji usługi Power BI wbudowanych w systemie oraz opóźnienie, które może spowodować wprowadzenie zaplecza Aktywatora.

Reguły usługi Power BI są oceniane za każdym razem, gdy nowe dane docierają do aktywatora. Aktywacja pozyskuje nowe dane z usługi Power BI co godzinę. Oznacza to, że zdarzenia spełniające warunek reguły wyzwalają aktywację maksymalnie o jedną godzinę po wystąpieniu zdarzenia. Aby uzyskać więcej informacji, zobacz Pobieranie danych dla aktywatora z usługi Power BI.