BUSBAR to element infrastruktury przetwarzania w systemie GRAVITY, pełniący rolę magistrali danych łączącej dwa operatory w procesie. Po magistralach przepływają strumienie danych, które są podstawową jednostką przetwarzania w systemie.
Strumień danych można rozumieć jako uporządkowaną listę rekordów, z których każdy składa się z zestawu kolumn – w GRAVITY nazywanych bitami. Każdy bit reprezentuje pojedynczy fragment informacji (np. tekst, liczba, data), a struktura magistrali może być dynamicznie modyfikowana przez operatory przetwarzające.
BUSBAR nie tylko transportuje dane między operatorami, ale również definiuje strukturę danych na danym etapie przetwarzania. W zależności od konfiguracji operatorów, magistrala może zmieniać swoją szerokość (liczbę bitów), a także liczbę rekordów.
Dzięki magistralom możliwe jest tworzenie elastycznych, wieloetapowych przepływów danych, w których każdy operator wykonuje określoną funkcję, a dane są przekazywane zgodnie z logiką procesu.
Przykład magistral:
Zasadniczą cechą magistrali jest jej budowa, czyli:
- rekordy (wiersze)
- bity (kolumny) transportujące dane w strumieniu danych, które posiadają określony typ danych (integer, text itp.)
- magistrala jest “płaska” - dane nie posiadają zagłębień. Transportowanie danych typu rodzic → dziecko (zamówienie i jego pozycje) jest możliwe tylko poprzez powielenie danych w bitach rodzica tyle razy ile rodzic ma dzieci.
Operatory powodujące rozgałęzienie magistrali (SPLITTER,
IF) powodują duplikacje danych na dwa różne strumienie danych. W takim wypadku system zawsze w pierwszej kolejności będzie prowadził przepływ danych po górnej magistrali wychodzącej z takiego operatora.
KONFIGURACJA MAGISTRALI
Po połączeniu dwóch operatorów magistrala jest automatycznie konfigurowana na podstawie sygnału operatora źródłowego.
Zaznacz magistrale kliknięciem myszy, aby zobaczyć, z jakich bitów się składa. Każdy bit ma nazwę (używaną na operatorach), a także opis i typ.
Możesz wprowadzić samodzielnie opisy do kolumn.
Typ bitu odpowiada typowi danych jaki transportuje magistrala (jaki wynika z operatora źródłowego).
Dostępne typy bitów:
Text- tekst o dowolnej długości,Integer- liczby całkowite (odpowiednik typu int32),Long- liczby całkowite (odpowiednik typu int64),Double- liczby zmiennoprzecinkowe,Boolean- stan true lub falseDateTime- data z czasem,Date- data,Time- czas,Blob- dane binarne - w trybie ręcznego uruchomienia procesu jako debuger są wyświetlane jako Text zakodowany w base64.
Z zasady typów bitów nie można zmienić na magistrali. Istnieją jednak wyjątki, w których jest to możliwe. Jest to miejsce podłączenia z operatorem typu INPUT (operatory wejścia) oraz operatory mające możliwość zmiany magistrali danych np. CALL SQL.
Ponieważ w tych sytuacjach operatory automatycznie rozpoznają pobierane dane, istnieje możliwość korekty ich typu. Możesz to zrobić, klikając na magistralę bezpośrednio podłączoną do operatora (np. typu INPUT), a następnie modyfikując typ danych wybranego bitu.
Wykonując tę operację, system spróbuje propagować zamianę typu danych bitu w całym projekcie. Typ zostanie zmieniony zarówno na wszystkich magistralach, jak i na operatorach korzystających z tego bitu.
AUTOGENEROWANIE COLUMN
W przypadku zmian szerokości magistrali (operator WIDTH BUSBAR) lub ich struktury (np. opcja Create a busbar from result w operatorze
CALL SQL lub innych zmianach) może okazać się, że konieczne będzie ponowne wygenerowanie kolumn na magistrali. W takim wypadku użyj przecisku AUTOGENERATE COLUMNS na oknie właściwości magistrali.
Opcja ta generuje ponownie bity magistrali na podstawie strumienia danych wychodzącego z operatora źródłowego, a system propaguje ją na wszystkie kolejne operatory i magistrale, co może powodować problemy z już zdefiniowanymi operatorami (patrz wyszarzone miejsce powyżej).