Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Dodawanie transformacji SQL

Do zadań transformacji można dołączać tabele oparte na języku SQL. Transformacja SQL umożliwia wprowadzenie zapytania SQL SELECT do potoku w celu zdefiniowania złożonych lub prostych transformacji. Możesz także użyć Asystenta SQL, aby wygenerować zapytanie z promptu tekstowego za pomocą generatywnej sztucznej inteligencji. Możesz także używać makr, aby dostosować zapytanie do wykonania, jeśli wykonywane jest ładowanie początkowe lub ładowanie przyrostowe.

Aby uzyskać więcej informacji na temat tworzenia zadania transformacji, zobacz Przekształcanie danych.

Dodawanie transformacji SQL

Aby dodać transformację SQL w zadaniu transformacji danych:

  1. W sekcji Przekształcenie wybierz zestawy danych, które mają zostać włączone do zapytania, i kliknij Dodaj transformację SQL.

    Ustaw nazwę transformacji w polu Nazwa. Więcej informacji na temat pozostałych ustawień zawiera temat Ustawienia.

    Kliknij przycisk Dodaj, gdy wszystko będzie gotowe do utworzenia transformacji SQL.

    Wyświetli się okno Edytuj transformację SQL.

  2. Napisz zapytanie, aby zwrócić tabelę opartą na SQL w okienku zapytania.

    Więcej informacji zawiera temat Edytowanie zapytania SQL.

  3. Kliknij Uruchom zapytanie.

    Spowoduje to pobranie metadanych i podglądu danych.

  4. Przejrzyj parametry w Parameters.

    Więcej informacji zawiera temat Parametry.

  5. Ustaw klucz podstawowy w Metadata.

    Więcej informacji zawiera temat Metadane.

  6. Jeśli wyniki zapytania będą zadowalające, kliknij Save and close. Zestaw danych jest teraz dodany do listy celów i możesz wyświetlić jego podgląd.

Edytowanie zapytania SQL

Wpisz zapytanie, które zwróci tabelę opartą na SQL w okienku zapytania. Zapytanie może odczytywać tylko wybrane źródłowe zestawy danych, ale możesz dodać więcej źródłowych zestawów danych za pomocą opcji Dodaj.

  • Możesz utworzyć instrukcję, aby załadować zestaw danych z Obiektów. Kliknij więcej, a następnie Wygeneruj instrukcję Select w edytorze.

  • Możesz skopiować nazwę zestawu danych do schowka, klikając więcej, a następnie Kopiuj.

  • Kliknij >, aby przenieść zestaw danych lub nazwę kolumny do edytora.

  • Kliknij Wyszukaj, aby wyszukać i zamienić tekst w edytorze.

InformacjaMożesz użyć Asystenta SQL , aby wygenerować zapytanie za pomocą generatywnej sztucznej inteligencji. Więcej informacji zawiera temat Generowanie transformacji SQL z promptu tekstowego. Asystent SQL nie jest dostępny w Qlik Cloud Government.

Jeśli używane jest ładowanie przyrostowe, możesz użyć makr, aby dostosować zapytanie do wykonania, jeśli wykonywane jest ładowanie początkowe lub ładowanie przyrostowe.

Więcej informacji zawiera temat Używanie makr w celu dostosowania zapytania do typu ładowania.

Skróty klawiaturowe

InformacjaZnaczenie skrótów klawiaturowych ma zastosowanie w przypadku korzystania z systemu Windows. W przypadku systemu macOS należy użyć klawisza Command zamiast Ctrl.
  • Ctrl+F Wyszukaj i zamień

  • Ctrl+/ Skomentuj/odkomentuj bieżącą linię

  • Ctrl+Enter Uruchom zapytanie

  • Ctrl+Z Cofnij

  • Ctrl+Y Ponów

Podgląd wyników

Możesz wyświetlić podgląd wyników, korzystając z próbki danych w Results.

InformacjaPodgląd danych musi być włączony na poziomie dzierżawy w funkcji Administrowanie. Opcję Wyświetlanie danych w Integracja danych można znaleźć w Ustawieniach, w obszarze Sterowanie funkcją.

Aby móc przeglądać dane, musisz mieć przypisane następujące role:

  • Może przeglądać dane w przestrzeni, w której znajduje się połączenie.

  • Może wyświetlać w przestrzeni, w której znajduje się projekt.

Wyświetlane są wyniki wykorzystujące próbkę danych. Ustawienie Liczba wierszy umożliwia określenie, ile wierszy danych należy uwzględnić w próbce.

  • Kliknij Last executed query, aby zobaczyć czas ostatniego uruchomienia i czas trwania ostatnio wykonanego zapytania.

Filtrowanie wyników

Możesz filtrować wyniki według jednej lub wielu kolumn.

  • Kliknij więcej w pierwszej kolumnie, aby filtrować, a następnie Filtruj.

    Wybierz operatora do użycia i wartość, według której chcesz filtrować.

    Możesz dodać więcej filtrów kolumn, klikając Dodaj filtr.

Filtr wpłynie tylko na istniejące dane przykładowe.

Sortowanie wyników

Próbkę danych można sortować według określonej kolumny.

  • Kliknij więcej na kolumnie, według której chcesz sortować, a następnie Sortuj rosnąco lub Sortuj malejąco.

Sortowanie wpłynie tylko na istniejące dane przykładowe. Jeżeli użyto filtru do uwzględniania tylko zamówień z 2024 roku i odwrócono kolejność sortowania, dane przykładowe będą nadal zawierać tylko zamówienia z 2024 roku.

Zarządzanie wyświetlanymi kolumnami

Możesz wybrać, które kolumny mają być wyświetlane w wynikach. Wybrany element nie jest zapisywany po zapisaniu transformacji.

  • Ukryj kolumnę, klikając więcej na kolumnie, a następnie Ukryj kolumnę.

  • Zarządzaj wyświetlaniem wszystkich kolumn, klikając więcej na dowolnej kolumnie, a następnie Wyświetlane kolumny.

Parametry

Kliknij Parametry, aby zmienić parametry w zapytaniu SELECT. Parametry należy zamapować na obiekty źródłowe lub docelowe.

Parametry są automatycznie mapowane, gdy:

  • Użyj Wygeneruj instrukcję Select w edytorze w Obiektach.

  • Kliknij >, aby przenieść nazwę zestawu danych lub kolumny do edytora.

  • Nazwa parametru pasuje do nazwy tabeli spośród tabel w Obiektach.

InformacjaJeśli używasz dowolnych nazw parametrów, musisz zamapować parametry ręcznie. Tylko nazwy parametrów, które pasują do nazw zestawów danych, zostaną zamapowane automatycznie.

Możesz mapować do następujących obiektów

  • Struktury historii typu 2 (_history)

  • Obecne struktury

  • Obiekty docelowe

    Obiekty docelowe można mapować tylko wtedy, gdy parametr jest zdefiniowany w makrze przyrostowym.

WskazówkaMożesz zastąpić parametr referencją, aby uzyskać łatwiejsze do odczytania zapytanie. Zmień wartość w polu Parametr, a zmieni się także odwołanie w polu Zapytanie SELECT.

Metadane

Możesz edytować ustawienia metadanych w Metadata.

  • Ustaw klucze główne w kolumnie Klucz.

  • Określ, czy kolumna ma dopuszczać wartość null w kolumnie Nullowalne.

  • Wybierz kolumnę i kliknij Edytuj, aby ustawić nazwę kolumny, klucz, dopuszczalność wartość null i typ danych.

Uruchamianie zapytania

Możesz uruchomić zapytanie w dowolnym momencie podczas tworzenia, klikając Run query. Przy pierwszym uruchomieniu zapytania zostaną pobrane metadane. Po uruchomieniu zapytania możesz przejść do Metadata i ustawić klucz podstawowy, który jest wymagany do ukończenia transformacji.

InformacjaJeśli edytor zawiera więcej niż jedno zapytanie, możesz uruchomić pojedyncze zapytanie, wybierając je i klikając Uruchom zapytanie.

Używanie makr w celu dostosowania zapytania do typu ładowania

Jeśli używane jest ładowanie przyrostowe, możesz użyć makr, aby dostosować zapytanie do wykonania, jeśli wykonywane jest ładowanie początkowe lub ładowanie przyrostowe.

Wybierz makro i dodaj zapytanie w odpowiedniej klauzuli.

  • Q_RUN_INCREMENTALdodaje klauzulę, w której można umieścić zapytanie wykonywane tylko wtedy, gdy będzie wykonywane ładowanie przyrostowe.

  • Q_RUN_INITIAL_LOAD dodaje klauzulę, w której można umieścić zapytanie wykonywane dopiero po wykonaniu początkowego ładowania.

Nie musisz podawać pełnego zapytania w każdym makrze. Możesz dostosować lub dodać kod w zależności od zastosowania.

Zastosowanie: filtr przyrostowy wykorzystujący zakres dat:

W tym przypadku zestaw danych dotyczących zamówień trzeba przekształcić za pomocą niestandardowego kodu SQL. Ponieważ jest to duży zestaw danych, należy uwzględnić filtrowanie przyrostowe, aby mieć pewność, że ładowanie przyrostowe będzie obejmować tylko zamówienia z ostatnich 12 godzin.

To jest zapytanie podstawowe:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM “mydb”.”myStorageTask”.”ORDER” O JOIN “mydb”.”myStorageTask”.”ORDER_DETAIL” OD ON O.ORDER_ID = OD.ORDER_ID

To jest filtr do zastosowania podczas przebiegu przyrostowego, w którym uwzględniane są tylko zamówienia dodane w ciągu ostatnich 12 godzin:

WHERE OD.UPDATE_DTM > DATEADD(hour, -12, CURRENT_TIMESTAMP())
WskazówkaW przypadku implementacji tabeli opartej na języku SQL zaleca się zastąpienie nazw tabel notacją ${TABLE}. Zapobiega to kodowaniu na stałe nazw baz danych i schematów, które mogą się zmieniać w różnych środowiskach, na przykład podczas przechodzenia z etapu rozwoju do produkcji.

To jest pełne zapytanie z użyciem makra filtrującego i nazwami tabel zastąpionymi notacją ${TABLE}:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID {{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} WHERE OD.UPDATE_DTM > DATEADD(hour, -12, CURRENT_TIMESTAMP() ) {{/QLIK_FUNC_IF}}

Wynikiem tego jest początkowe zapytanie ładowania:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID

I zapytanie ładowania przyrostowego:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID WHERE OD.UPDATE_DTM > DATEADD(hour, -12, CURRENT_TIMESTAMP() )

Zastosowanie: filtr przyrostowy przy użyciu danych w miejscu docelowym:

W tym przypadku zestaw danych dotyczących zamówień trzeba przekształcić za pomocą niestandardowego kodu SQL. Ponieważ zamówienia to duży zestaw danych, należy uwzględnić filtrowanie przyrostowe, aby mieć pewność, że ładowanie przyrostowe będzie obejmować rekordy szczegółów zamówień, które są nowsze niż dane w tabeli docelowej. Chcesz także zaznaczyć, czy wiersz został przetworzony przez ładowanie początkowe, czy ładowanie przyrostowe.

InformacjaJak widać w tym przykładzie, makra można wykorzystać do dostosowania dowolnej części zapytania do ładowania początkowego lub ładowania przyrostowego.

To jest zapytanie podstawowe:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT , OD.LAST_UPDATE_DTM FROM “mydb”.”myStorageTask”.”ORDER” O JOIN “mydb”.”myStorageTask”.”ORDER_DETAIL” OD ON O.ORDER_ID = OD.ORDER_ID

Jest to filtr, który należy zastosować podczas przebiegu przyrostowego. „ORDERS_DERIVED” to nazwa docelowego zestawu danych.

WHERE OD.UPDATE_DTM > = (SELECT MAX(LAST_UPDATE_DTM) FROM “mydb”.”myTrasformTask”.”ORDERS_DERIVED” )
WskazówkaŁadowanie przyrostowe może również mapować notację ${TABLE} na obiekty docelowe utworzone przez zadanie transformacji.

To jest pełne zapytanie z użyciem makra filtrującego i nazwami tabel zastąpionymi notacją ${TABLE}. LOADED_BY ma wartość INIT, jeśli ładowanie jest początkowe, i INCR, jeśli ładowanie jest przyrostowe:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT, OD.LAST_UPDATE_DTM, {{#QLIK_FUNC_IF Q_RUN_INITIAL_LOAD}} ‘INIT’ as LOADED_BY {{/QLIK_FUNC_IF}} {{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} ‘INCR’ as LOADED_BY {{/QLIK_FUNC_IF}} FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID {{#QLIK_FUNC_IF Q_RUN_INCREMENTAL}} WHERE OD.UPDATE_DTM >= (SELECT MAX(LAST_UPDATE_DTM) FROM ${TARGET_TABLE} ) {{/QLIK_FUNC_IF}}

Wynikiem tego jest początkowe zapytanie ładowania:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT, OD.LAST_UPDATE_DTM, ‘INIT’ as LOADED_BY FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID

I zapytanie ładowania przyrostowego:

SELECT O.ORDER_ID, O.CUSTOMER_ID, OD.PRODUCT_ID, OD.QUANTITY, O.AMOUNT, OD.LAST_UPDATE_DTM, ‘INCR’ as LOADED_BY FROM ${ORDER} O JOIN ${ORDER_DETAIL} OD ON O.ORDER_ID = OD.ORDER_ID WHERE OD.UPDATE_DTM >= (SELECT MAX(LAST_UPDATE_DTM) FROM ${TARGET_TABLE} )

Ustawienia

Kliknij Ustawienia , aby edytować ustawienia transformacji SQL.

  • W polu Nazwa wpisz nazwę docelowego zestawu danych.

    W polu Opis możesz dodać dłuższy opis.

  • W sekcji Materializacja wybierz, czy przekształcony wynik powinien zostać zmaterializowany, czy nie. Możesz zdecydować się na dziedziczenie tego ustawienia z ustawień zadania danych.

    • Ustawienie Wł. spowoduje utworzenie tabel i obsługę powiązanego przetwarzania ELT.

    • Opcja Wył. spowoduje utworzenie widoków, które dokonują transformacji na bieżąco.

  • W polu Magazyn danych historycznych (typ 2) wybierz, czy chcesz przechowywać dane historyczne. Możesz zdecydować się na dziedziczenie tego ustawienia z ustawień zadania danych. To ustawienie wymaga, aby Materializacja była włączona.

  • Ładowanie przyrostowe pozwala dostosować zapytanie do przyrostowego ładowania danych przez zastosowanie filtrów lub innych warunków w celu zmniejszenia zestawu danych przetwarzanych za pomocą makr. Ładowanie przyrostowe jest dostępne tylko wtedy, gdy dane są materializowane w postaci tabel.

    • Kiedy ładowanie przyrostowe jest włączone

      Pierwsze wykonanie zadania spowoduje wstępne załadowanie, wstawiając wszystkie wyniki zapytania do tabeli docelowej. Kolejne wykonania zadania będą dokonywać ładowań przyrostowych z wykorzystaniem filtrów lub określonych warunków zdefiniowanych dla przetwarzania przyrostowego. Podczas ładowania przyrostowego zadanie będzie przetwarzać dane jedynie w formie aktualizacji lub wstawiania, a usuwanie nie jest zarządzane.

    • Kiedy ładowanie przyrostowe jest wyłączone

      Pierwsze wykonanie zadania spowoduje wstępne załadowanie, wstawiając wszystkie wyniki zapytania do tabeli docelowej. Kolejne wykonania będą przetwarzać wszystkie wyniki zapytania, porównując je z tabelą docelową i przetwarzając rekordy, które są nowe, zmienione lub usunięte.

    InformacjaJeśli zapytanie wybierze wszystkie rekordy, które powinny istnieć w obiekcie docelowym, wyłącz opcję Ładowanie przyrostowe. Niewybrane rekordy zostaną usunięte w miejscu docelowym.
  • Najlepsze praktyki

    • Gdy dodajesz transformację SQL, klucz główny nie jest definiowany automatycznie. Dodaj klucz do zestawu danych w zakładce Zestaw danych.

    • Nie twórz ręcznie nagłówków kolumn w przekształconych danych wyjściowych.

    • Unikaj używania SELECT z *, ponieważ może to powodować zwracanie różnych kolumn przy każdym uruchomieniu zapytania. Jeśli nastąpiła zmiana w schemacie, zmień odpowiednio zapytanie i ponownie wykonaj operację Opisz tabelę. Następnie możesz edytować kolumny i dostosowywać tabele.

    Czy ta strona była pomocna?

    Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać!