Search

Home

OUTPUT SQL

OUTPUT SQL

Operator OUTPUT SQL umożliwia zapis danych pochodzących ze strumienia magistrali wejściowej do wybranej bazy danych SQL. Służy do dodawania nowych rekordów lub modyfikacji istniejących danych w tabelach bazy.

Operator potrafi obsługiwać relacje między tabelami, np. strukturę rodzic–dziecko, co pozwala na wprowadzanie danych do wielu powiązanych tabel w ramach jednej operacji. Realizacja tej relacji opiera się na grupowaniu danych z magistrali według bitów wybranych dla głównej (rodzicielskiej) tabeli, dzięki czemu dane są odpowiednio powiązane i zapisane zgodnie z hierarchią.

Wbudowany mechanizm standaryzacji kluczy głównych umożliwia zapamiętanie powiązań między oryginalnymi kluczami danych, a nowo utworzonymi rekordami. Operator na tej podstawie decyduje, czy wykonać operację INSERT (dodanie nowego rekordu) czy UPDATE (modyfikację istniejącego rekordu). Obsługuje klucze autoinkrementujące generowane przez bazę danych oraz sam potrafi wyliczać nowe wartości kluczy, jeśli jest to wymagane.

Przyporządkowanie bitów magistrali do kolumn tabel odbywa się za pomocą wygodnego interfejsu użytkownika, który pozwala łatwo konfigurować mapowanie danych.

Operator OUTPUT SQL jest kluczowy w integracji danych z relacyjnymi bazami danych i pozwala na kompleksowe zarządzanie zapisem danych w projekcie GRAVITY.

Przykład projektu GRAVITY z użyciem operatora OUTPUT SQL.

image

KONFIGURACJA POŁĄCZENIA Z BAZĄ

WYBÓR I TWORZENIE POŁĄCZENIA DO BAZY DANYCH

Przejdź na pierwszą zakładkę Physical link we właściwościach operatora.

image

Jeśli masz już utworzone połączenie, wybierz je z listy wyboru Connection. Pola połączenia zostaną wypełnione zgodnie z wybranym połączeniem.

image

Możesz zmienić parametry połączenia, klikając przycisk Edit.

icon
Jeżeli dane połączenie jest już używane przez inny operator, należy pamiętać, że również ten operator będzie działał na zmodyfikowanych ustawieniach połączenia.

Jeśli nie masz jeszcze zdefiniowanego odpowiedniego połączenia do bazy danych, zawsze możesz je dodać, wykorzystując przycisk Add.

image

Po uzupełnieniu danych nowego połączenia możesz je przetestować przyciskiem Test connection i zapisać w systemie przyciskiem Save.

image

Po zapisaniu połączenie będzie dostępne w systemie pod nazwą, jaka została podana w polu Name.

icon
Więcej informacji o tworzeniu połączeń do bazy danych znajdziesz tu:Nowe połączenie do bazy danych SQL

DEKLARACJA AKCJI W PRZYPADKU WYKRYCIA DUPLIKATU

Zdecyduj, co system ma zrobić w przypadku wykrycia duplikatu danych w bazie docelowej.

image

Masz do wyboru dwa możliwe zachowania w przypadku wykrycia duplikatów podczas dodawania danych rekordów do bazy docelowej:

  • SKIP → operator pomija rekordy już przetworzone, jeśli wartość klucza głównego tabeli (określonego w diagramie zapisu danych) odpowiada wartości bitu na magistrali danych, używanego jako pole PK w definicji tabeli. Opcja ta działa wyłącznie dla definicji PK, w których stosowana jest standaryzacja.
  • PASS → operator przetwarza wszystkie rekordy z magistrali wejściowej. Wybierając opcję PASS, sposób obsługi duplikatów jest określany przez akcje zdefiniowane w sekcji  SQL ACTIONS w diagramie zapisu danych do bazy.
  • icon
    Mechanizm wykrywania duplikatów działa tylko dla tabel, których klucz główny w definicji operatora został skonfigurowany jako standardizationstandardization or get max lub standardization or identifying. W pozostałych przypadkach wykrywanie duplikatów jest pomijane, a wszystkie rekordy z magistrali danych zostają przekazane do dalszego przetwarzania.
  • DELETE OLD RECORD → istniejący rekord zostanie usunięty, a w jego miejsce dodany zostanie nowy rekord.
  • UPDATE OLD RECORD → istniejący rekord zostanie zaktualizowany i nadpisany danymi nowego rekordu.

DEKLARACJA SCHEMATU DODAWANIA STRUMIENIA DANYCH

Kod dodania strumienia danych powstaje automatycznie, na podstawie skonfigurowanego diagramu (patrz opcja SHOW DIAGRAM TO DEFINE OUTPUT).

image

Kod generowany automatycznie ma postać XML i może być dodatkowo edytowany ręcznie.

Aby przywrócić kod szablonowy wygenerowany na podstawie diagramu, należy użyć opcji REFRESH INSERT CODE.

STANDARYZACJA KLUCZY GŁÓWNYCH

icon
CO TO JEST STANDARYZACJA? Standaryzacja to proces zamiany wartości pola (kolumny) na wartość standardową, na podstawie słownika kojarzącego wartość dotychczasową z wartością standardową. W kontekście operatora OUTPUT SQL słownik standaryzujący powstaje automatycznie, ad hoc, podczas procesu przechodzącego przez operator OUTPUT SQL w przypadku, gdy wystąpi sytuacja zamiany wartości pól (kolumn) PRIMARY KEY. Słownik standaryzujący jest tworzony automatycznie przez system GRAVITY i zapisywany w bazie docelowej.
icon
DLACZEGO STANDARYZUJEMY? Strumień danych zapisywany w tabeli docelowej może pochodzić z wielu niezależnych baz źródłowych. W takiej sytuacji, aby możliwe było zgromadzenie wszystkich danych w jednej bazie docelowej, konieczne jest określenie zasad zmiany wartości pól unikalnych (kluczy głównych – PK), ponieważ w różnych źródłach te same wartości mogą występować równolegle.
icon
JAK PRZEBIEGA STANDARYZACJA?

Technicznie mechanizm ten polega na automatycznym tworzeniu słownika przekodowań (słownika standaryzującego). Słownik ten jest powiązany z tabelą docelową i przechowywany w bazie danych docelowej w dedykowanych tabelach o nazwie ve_[nazwa_tabeli_celu].

Dodatkowo tabela docelowa jest rozszerzana o dwa wymagane pola: gravity_id oraz gravity_process_id, które umożliwiają jednoznaczną identyfikację rekordu po procesie standaryzacji. Mechanizm przekodowania wiąże identyfikator źródła (bit źródła) oraz wartości klucza głównego ze źródła (stare PK) z nowymi identyfikatorami unikalnymi wygenerowanymi w tabeli docelowej.

Aby wyświetlić rekordy zapisane w słownikach standaryzujących, wybierz opcję SHOW CACHE TABLES w ustawieniach operatora.

image

Zostanie otwarte okno prezentujące wszystkie tabele obsługiwane przez operator OUTPUT SQL. Po wskazaniu wybranej tabeli na górnej liście, w dolnej części okna zostaną wyświetlone odpowiadające jej zestandaryzowane rekordy.

Usuwanie wpisów standaryzujących jest możliwe za pomocą przycisków dostępnych pod listą obsługiwanych tabel w bazie docelowej.

icon

Opcja usuwania wpisów standaryzujących jest najczęściej wykorzystywana podczas konfiguracji oraz testowania działania procesu, podobnie jak operacje na danych zapisanych w tabeli docelowej.

Należy jednak pamiętać, że po usunięciu danych z tabel standaryzujących rekordy, które zostały wcześniej zapisane w bazie docelowej, zostaną zapisane ponownie przy następnym uruchomieniu procesu.

image

WSKAZANIE TABELI DOCELOWEJ ORAZ ZASADY WPROWADZANIA STRUMIENIA DANYCH

KROK 1

Po prawej stronie okna wyświetlana jest lista wszystkich tabel znajdujących się w bazie docelowej określonej w polu PHYSICAL LINK.

Aby wybrać tabelę docelową, należy przeciągnąć wybraną tabelę z listy i upuścić ją na obszar roboczy.

Jeżeli w bazie danych nie istnieje jeszcze odpowiednia tabela, można ją utworzyć, korzystając z przycisku Create table.

image
icon
Na obszarze roboczym można umieścić więcej niż jedną tabelę docelową, pod warunkiem że zostaną one ze sobą powiązane relacją typu rodzic–dziecko. Jeżeli kilka tabel zostanie dodanych bez zdefiniowania relacji pomiędzy nimi, proces zostanie przerwany podczas przetwarzania danych.

Po wskazaniu tabeli docelowej, możesz przystąpić do deklarowania zasad umieszczenia strumienia danych w tabeli.

KROK 2

Na tym etapie wskaż pola PRIMARY KEY, czyli kolumny jednoznacznie identyfikujące rekord, poprzez zaznaczenie odpowiednich kolumn.

image
KROK 3

Na tym etapie należy określić, w jaki sposób proces ma obsługiwać pola PRIMARY KEY podczas dodawania rekordu. Odpowiednia opcja jest dostępna w belce nagłówka tabeli.

Wybór właściwego ustawienia zależy od definicji klucza głównego w danej tabeli bazy danych.

image

Masz do wyboru następujące akcje dla pól PRIMARY KEY:

  • NOTHING
  • icon
    Stosuj tę opcję, gdy chcesz zapisać każdy rekord magistrali do tabeli docelowej w bazie danych. Tabela nie może samodzielnie zarządzać wartością pola PK.

    W tym trybie nie są wykonywane żadne operacje standaryzujący ani modyfikacje wartości bitu przypisanego do klucza PK. Każdy rekord jest zapisywany w bazie danych dokładnie w takiej samej postaci, w jakiej występował na magistrali danych.

  • GET MAX
    1. icon
      Stosuj tę opcję, gdy chcesz dodawać nowe rekordy do tabeli lub modyfikować istniejące (wartość PK na magistrali pochodzi z tabeli docelowej, np. przy budowaniu funkcji API dla systemu), a tabela nie ma ustawionej autoinkrementacji na polu PK.

      Operator działa w różny sposób w zależności od wartości bitu odpowiadającego polu PK:

    2. Jeśli bit ma wartość 0 lub mniejszą od 0, operator dodaje nowy rekord do bazy. Proces oblicza nową wartość dla ostatniego pola PRIMARY KEY poprzez inkrementację ostatniego zapisu w tabeli docelowej. Bit magistrali, który odpowiada za wartość PK, zostaje uzupełniony wartością PK zapisanego rekordu w bazie danych. Słownik standaryzujący nie jest tworzony.
    3. Jeśli bit ma wartość większą niż 0, to operator nie wykonuje żadnej akcji lub wykonuje aktualizację (UPDATE) jeśli w sekcji SQL Actions wybrano akcję UPDATE OLD RECORD, albo usuwa rekord, jeśli wybrano akcję DELETE OLD RECORD.
  • IDENTITY
    1. icon
      Stosuj tę opcję, gdy chcesz dodawać nowe rekordy do tabeli lub modyfikować istniejące (wartość PK na magistrali pochodzi z tabeli docelowej, np. przy budowaniu funkcji API dla systemu), a tabela ma ustawioną autoinkrementację pola PK.

      Operator działa w różny sposób w zależności od wartości bitu odpowiadającego polu PK:

    2. Jeśli bit ma wartość 0 lub mniejszą od 0, operator dodaje nowy rekord do bazy. Baza danych wylicza nową wartość dla pola PK. Bit magistrali odpowiadający za wartość PK zostaje uzupełniony wartością PK zapisanego rekordu w bazie danych. Słownik standaryzujący nie jest tworzony.
    3. Jeśli bit ma wartość większą niż 0, operator nie wykonuje żadnej operacji lub wykonuje aktualizację, jeśli w obszarze SQL Actions wybrano akcję UPDATE OLD RECORD. Jeśli wybrano opcję DELETE OLD RECORD, operator usuwa rekord.
  • STANDARDIZATION OR IDENTIFYING
    1. icon

      Wybierz tę akcję, gdy przenosisz dane między bazami danych i chcesz, aby rekordy zapisane już w bazie docelowej nie były zapisywane ponownie. Wartość klucza głównego (PK) z bazy źródłowej nie odpowiada wartości w bazie docelowej, a tabela w bazie docelowej ma włączoną autoinkrementację pola PK.

      Jeżeli wybierzesz tę akcję, będziesz musiał wskazać identyfikator źródła, wskazując odpowiedni bit magistrali wejściowej (jeżeli taki bit istnieje) lub wpisując nazwę własną, stosowaną zawsze dla tego źródła danych.

      Para: klucz główny oraz identyfikator źródła danych stanowią unikalny wpis standaryzujący.

      image

      System sprawdza, czy wartości klucza głównego pochodzącego z magistrali danych oraz identyfikatora źródła istnieją już w tabeli standaryzującej.

    2. Jeśli nie, zostanie dodany nowy rekord do bazy, a wartość PK wygenerowana przez bazę danych oraz wartość PK pochodząca z magistrali danych zostaną zapisane jako para zestandaryzowana w tabeli standaryzującej. Wartość wygenerowanego PK zostanie wpisana do bitu przypisanego do pola PK.
    3. Jeśli tak, kolejny krok systemu zależy od ustawienia akcji (obszar SQL Actions).
    4. → Brak akcji – system nie wykonuje żadnej operacji.

      → Ustawiona akcja, np. UPDATE OLD RECORD lub DELETE OLD RECORD. Wartość klucza głównego tabeli docelowej, odpowiadająca wartości PK danych wejściowych z magistrali danych, zostanie pobrana z tabeli standaryzującej. W bazie danych zostanie zmodyfikowany lub usunięty rekord odpowiadający pobranemu kluczowi.

  • STANDARDIZATION OR GET MAX
    1. icon

      Wybierz tę akcję, gdy przenosisz dane między bazami danych i zależy Ci, aby rekordy raz zapisane w bazie docelowej nie były zapisywane ponownie.

      Wartość klucza głównego z bazy źródłowej nie odpowiada wartości w bazie docelowej, a tabela w bazie docelowej ma ustawioną autoinkrementację pola PK.

      Jeżeli wybierzesz tę akcję, będziesz musiał wskazać identyfikator źródła, wskazując odpowiedni bit magistrali wejściowej (jeżeli taki bit istnieje) lub wpisując nazwę własną, stosowaną zawsze dla tego źródła danych.

      Para: klucz główny oraz identyfikator źródła danych stanowią unikalny wpis standaryzujący.

      image

      System sprawdza, czy wartości klucza głównego pochodzącego z magistrali danych oraz oraz identyfikatora źródła istnieją już w tabeli standaryzującej.

    2. Jeśli nie, wartość PK zostanie wygenerowana przez system na podstawie wpisów w tabeli docelowej jako MAX+1. Następnie zostanie dodany nowy rekord do bazy danych. Wartość wygenerowanego PK oraz wartość PK pochodząca z magistrali danych zostaną zapisane jako para zestandaryzowana w tabeli standaryzującej. Wartość wygenerowanego PK zostanie wpisana do bitu przypisanego do pola PK.
    3. Jeśli tak, kolejny krok systemu zależy od ustawienia akcji(obszar SQL Actions).
    4. → Brak akcji – system nie wykonuje żadnej operacji.

      → Ustawiona akcja, np. UPDATE OLD RECORD lub DELETE OLD RECORD. Z tabeli standaryzującej zostanie pobrana wartość klucza głównego tabeli docelowej odpowiadająca wartości PK danych wejściowych z magistrali danych. W bazie danych zostanie zmodyfikowany lub usunięty rekord odpowiadający pobranemu kluczowi.

  • STANDARDIZATION
    1. icon

      Wybierz tę akcję, gdy przenosisz dane między bazami danych i zależy Ci, aby rekordy raz zapisane w bazie docelowej nie były zapisywane ponownie.

      Wartość klucza głównego z bazy źródłowej nie odpowiada wartości w bazie docelowej, a tabela w bazie docelowej ma ustawioną autoinkrementację pola PK.

      System sprawdza, czy dane wartości klucza głównego pochodzącego z magistrali danych oraz identyfikatora źródła istnieją już w tabeli standaryzującej.

    2. Jeśli nie, zostanie dodany nowy rekord do bazy danych z wartością bitu PK zgodną z magistralą danych oraz zostanie dodany wpis w tabeli standaryzującej.
    3. Jeśli tak, kolejny krok systemu zależy od ustawienia akcji (obszar SQL Actions).
    4. → Brak akcji - system nie wykonuje żadnej operacji.

      → Ustawiona akcja, np. UPDATE OLD RECORD lub DELETE OLD RECORD. Z tabeli standaryzującej zostaną pobrane wartości klucza głównego tabeli docelowej odpowiadające wartościom PK danych wejściowych z magistrali danych. W bazie danych zostanie zmodyfikowany lub usunięty rekord odpowiadający pobranemu kluczowi.

      icon
      Jeśli zależy Ci na zapisaniu w tabeli docelowej klucza głównego z tabeli źródłowej transportowanego na magistrali danych, wcześniej rozszerz - przy użyciu operatora WIDTH BUSBARWIDTH BUSBAR - magistralę danych o dodatkowy bit np. old_pk na podstawie pola PK, oraz dodaj do tabeli docelowej kolumnę old_pk. Następnie powiąż bit i kolumnę w definicji operatora.
KROK 4

Teraz powinieneś wskazać, który bit magistrali wejściowej odpowiada poszczególnym polom (kolumnom) tabeli docelowej. Możesz to zrobić w następujący sposób:

  • Wybierz kolumnę magistrali wejściowej (patrz ilustracja poniżej – zaznaczony obszar po lewej stronie).
  • System automatycznie wskaże, które pola mogą zostać przypisane, poprzez ich wyszarzenie (patrz ilustracja poniżej – obszar zaznaczony po prawej stronie). Pola te są wybierane na podstawie zgodności typów danych.
  • Wybierz pole tabeli, klikając właściwą kolumnę tabeli docelowej.
  • Powtórz operację dla kolejnych bitów magistrali wejściowej, aż wszystkie wymagane pola zostaną przypisane
image
KROK 5

Jeżeli chcesz, aby strumień danych magistrali wejściowej obsługiwał również tabele podrzędne względem tabeli głównej, możesz to zrobić w następnym kroku. Wybierz tabelę relacyjną i umieść ją na obszarze roboczym – akcja jest identyczna jak w przypadku tabeli głównej: należy uchwycić tabelę relacyjną na liście dostępnych tabel (obszar po lewej stronie), a następnie upuścić ją na obszarze roboczym.

Następnie w tabeli nadrzędnej wskaż kolumnę klucza głównego (PK), która będzie użyta do utworzenia relacji z tabelą podrzędną. W tabeli podrzędnej wybierz kolumnę klucza obcego (FK), aby utworzyć relację między tabelami. Po wskazaniu powiązanych kolumn zostanie wyświetlona linia symbolizująca relację. Dla tabeli podrzędnej wykonaj kolejne kroki konfiguracji, rozpoczynając od kroku 2.

image

Podczas standaryzacji pól uczestniczących w relacji rodzic–dziecko (PK–FK) system automatycznie zapewnia poprawną wartość klucza obcego w tabeli podrzędnej.

Krok ten możesz powtarzać dowolną liczbę razy. Liczba poziomów relacji podrzędnych nie jest ograniczona.

AKCJE DODATKOWE Zastanów się, jakie akcje chcesz wykonać podczas dodawania strumienia danych do bazy. Akcje definiuje się w obszarze SQL Actions w oknie kreatora zapisu danych do tabel.

image

Na ilustracji powyżej zaznaczona jest opcja NEW, która umożliwia dodanie akcji:

  • Typu PRE → wykonywanych przed dodaniem strumienia danych do bazy.
  • Typu POST wykonywanych po dodaniu strumienia danych do bazy.
  • Typu IN → wykonywanych w trakcie dodawania, np. określających zachowanie systemu w przypadku wykrycia identycznego rekordu (według PRIMARY KEY) w bazie docelowej.
icon
Jeżeli potrzebujesz szczegółowej pomocy dotyczącej działania poszczególnych akcji, uruchom opcję pomocy – zostanie wyświetlone okno z wyjaśnieniami.
image

Poniżej przedstawiono szczegółowy opis działania każdej z akcji.

DELETE ALL RECORDS

Przed dodaniem strumienia danych (akcja typu PRE) tabela docelowa zostanie wyczyszczona z wszystkich rekordów.

DELETE ALL RECORDS FOR SOURCE

Przed dodaniem strumienia danych (akcja typu PRE) tabela docelowa zostanie wyczyszczona z rekordów, które były standaryzowane na podstawie wskazanego źródła. Źródło jest identyfikowane na podstawie nazwy (stałej) lub wskazanej wartości bitu (kolumny) magistrali wejściowej.

DELETE DECLARED SPACE

Przed dodaniem strumienia danych (akcja typu PRE) tabela docelowa zostanie wyczyszczona z rekordów w zadeklarowanej przestrzeni.

Zakres usuwania można określić na dwa sposoby:

  • RANGE,
  • CONSTANTS.

Ustawienie RANGE umożliwia wskazanie zakresu wartości kolumny PRIMARY KEY. Rekordy mieszczące się w tym zakresie zostaną usunięte.

image

Opcję tę stosuje się, gdy w jednej tabeli przechowywane są rekordy z różnych źródeł, a przy użyciu jednej kolumny problem unikalnego identyfikatora rozwiązano poprzez wydzielenie odrębnych przestrzeni liczbowych dla poszczególnych źródeł (np. źródło 1: zakres 1–1 000 000, źródło 2: zakres 1 000 001–2 000 000 itd.).

Ustawienie CONSTANTS umożliwia usunięcie tylko rekordu o wartości kolumny PRIMARY KEY wskazanego w polu Constans value.

DELETE SPACE MIN MAX PK

Przed dodaniem strumienia danych (akcja typu PRE) tabela docelowa zostanie wyczyszczona z rekordów w zadeklarowanej przestrzeni. Przestrzeń do kasowania zostanie wyznaczona pomiędzy minimalną i maksymalną wartością klucza PRIMARY KEY (deklarowanie klucza PK - patrz opis: WSKAZANIE TABELI DOCELOWEJ ORAZ ZASAD DODAWANIA).

icon
Uwaga: jeżeli kolumny należące do PK podlegały standaryzacji, a więc miały zmienianą wartość, GRAVITY automatycznie to wykryje i bezbłędnie zidentyfikuje właściwy rekord.

DELETE OLD RECORD

Akcja specyficzna (bliźniacza do akcji UPDATE OLD RECORD) przeprowadzana dla każdego rekordu strumienia danych (w tym sensie jest to więc akcja typu IN). Jeżeli ustawiłeś filtr wejściowy ACTION FOR THE SAME RECORD = PASS (patrz opis powyżej), to teraz możesz wskazać w jaki sposób proces GRAVITY ma się uporać z potencjalnym duplikatem. Jeżeli wybierzesz akcję DELETE OLD RECORD, to dotychczasowy rekord będzie kasowany tak, aby nowy rekord (potencjalny duplikat) mógł być dodany bez przeszkód.

icon
Uwaga: jeżeli kolumny należące do PK podlegały standaryzacji, czyli miały zmienianą wartość, system GRAVITY automatycznie to wykryje i poprawnie zidentyfikuje właściwy rekord.

Jeżeli ustawiłeś filtr wejściowy ACTION FOR THE SAME RECORD = SKIP, to akcja DELETE OLD RECORD nie zostanie uruchomiona.

UPDATE OLD RECORD

Akcja specyficzna (bliźniacza do akcji DELETE OLD RECORD) wykonywana dla każdego rekordu strumienia danych (w tym sensie jest to akcja typu IN). Jeżeli ustawiłeś filtr wejściowy ACTION FOR THE SAME RECORD = PASS (patrz opis powyżej), możesz wskazać, w jaki sposób proces GRAVITY ma obsłużyć potencjalny duplikat. Wybór akcji UPDATE OLD RECORD spowoduje, że dotychczasowy rekord zostanie nadpisany nowym rekordem (potencjalnym duplikatem).

icon
Uwaga: jeżeli unikalny identyfikator strumienia danych podlegał standaryzacji, czyli jego wartość została zmieniona, system GRAVITY automatycznie to wykryje i poprawnie zidentyfikuje właściwy rekord.

Jeżeli ustawiłeś filtr wejściowy ACTION FOR THE SAME RECORD = SKIP, akcja UPDATE OLD RECORD nie zostanie uruchomiona.

SETUP INPUT

Akcja typu IN jest wykonywana wielokrotnie — po przetworzeniu każdego rekordu przez operator OUTPUT SQL. Umożliwia modyfikację w bazie źródłowej rekordu, który został wcześniej pobrany do magistrali przez operator typu INPUT SQL. Tę akcję zastosujesz np. wtedy, gdy chcesz ustawiać flagę informującą o pobraniu rekordu ze źródła.

Zakres konfiguracji:

  • INPUT → wskaż operator typu INPUT, z którego dane są pobierane do magistrali,
  • INPUT TABLE → wskaż tabelę źródłową, z której operator INPUT pobiera dane,
  • COLUMN FOR UPDATE → wskaż kolumnę z tabeli źródłowej, która będzie aktualizowana (np. kolumnę flagi),
  • VALUE FOR UPDATE → wskaż wartość, która zostanie zapisana (np. wartość flagi),
  • ID SOURCE RECORD → wskaż sposób identyfikacji rekordu (np. do ustawienia flagi); należy wskazać kolumnę unikalną w tabeli źródłowej oraz odpowiadającą jej kolumnę z magistrali wejściowej do operatora OUTPUT SQL.

Operator SETUP INPUT umożliwia bezpośrednią interakcję z danymi źródłowymi. Po pobraniu rekordów możesz oznaczyć je jako przetworzone. Dzięki temu możliwe jest prowadzenie pobrań danych w sposób inkrementacyjny (poprzez ustawienie warunku pobrania na określoną wartość flagi w operatorze INPUT).

USER SQL

Akcja pozwalająca na wykonanie własnego kodu SQL oraz określenie momentu jego wykonania (patrz ilustracja poniżej):

  • PRE → przed dodaniem strumienia danych,
  • POST  po dodaniu strumienia danych,
  • IN → w trakcie dodawania strumienia danych (uwaga: kod jest wówczas wykonywany wielokrotnie, po dodaniu każdego rekordu).
image

Podczas tworzenia własnego kodu SQL możesz odwoływać się do wartości z magistrali wejściowej operatora OUTPUT SQL. Do wartości kolumn strumienia danych odwołuj się za pomocą znaku „@” oraz nazwy bitu (kolumny) w strumieniu danych wejściowych (np. @id).

ZAPAMIĘTANIE KONFIGURACJI

Po skonfigurowaniu wszystkich akcji oraz zadeklarowaniu tabel wejściowych strumienia danych należy zapisać diagram.

image

Podczas zapisu GRAVITY automatycznie generuje kod w formacie XML, który można podejrzeć w zakładce INSERT CODE.

image

Operator OUTPUT SQL jest jednym z najbardziej zaawansowanych komponentów GRAVITY. Aby lepiej zobrazować jego działanie, zalecamy zapoznanie się z przykładami w sekcji PRZYKŁADY ZASTOSOWAŃ.

Dla pełniejszego zrozumienia mechanizmów operatora OUTPUT SQL przygotowano również osobny rozdział ZASTOSOWANIE OPERATORA OUTPUT SQL, zawierający przykłady użycia w różnych scenariuszach.