Search

Home

gravity.integration
gravity.integration
Magistrala danych

Magistrala danych

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:

image

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.
  • icon
    Operatory wyjścia oraz operatory takie jak GROUPINGGROUPING, CONVERT BITS TO FORMATCONVERT BITS TO FORMAT, REPORTREPORT potrafią grupować dane z magistrali wejściowej po wybranych kolumnach

Operatory powodujące rozgałęzienie magistrali (SPLITTERSPLITTER, IFIF) 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.

image

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 false
  • DateTime - 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 SQLCALL 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.

image

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.

icon
Musisz mieć świadomość, że zmiana typu bitu danych na magistrali może prowadzić do błędów - głównie na operatorach korzystających z tego bitu. Wynika to z konieczności zachowania zgodności typów przez system lub z braku danego bitu w nowej strukturze magistrali. Większość błędów zostanie zasygnalizowana ikoną na operatorze, jednak w miejscach, gdzie użyto algorytmów, błąd może ujawnić się dopiero podczas uruchamiana projektu.

AUTOGENEROWANIE COLUMN

W przypadku zmian szerokości magistrali (operator WIDTH BUSBARWIDTH BUSBAR) lub ich struktury (np. opcja Create a busbar from result w operatorze CALL SQLCALL 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.

image

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).