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

Tworzenie aplikacji Direct Query z niestandardowym językiem SQL

Twórz modele danych w skrypcie ładowania przy użyciu niestandardowego zapytania SQL w aplikacji Direct Query. Niestandardowy język SQL oferuje alternatywę dla używania narzędzia Menedżer modelu danych w celu zdefiniowania modelu danych dla Direct Query.

Używanie niestandardowego języka SQL do tworzenia modeli danych Direct Query umożliwia stosowanie instrukcji SQL do definiowania tabel i pól generowanych przez samo zapytanie SQL. Ponadto niestandardowe instrukcje SQL w aplikacji Qlik mogą wykorzystywać zmienne skryptu ładowania i makra wyrażeń Qlik w niestandardowych instrukcjach SQL. Pozwala to na utworzenie bardziej dynamicznego modelu danych i umożliwia dostosowanie niestandardowych tabel oraz kolumn zdefiniowanych w języku SQL do wyników oceny zmiennych lub wyrażeń.

Niestandardowy język SQL może być używany sam w skrypcie ładowania. Możesz także użyć kombinacji narzędzia Menedżer modelu danych i niestandardowego języka SQL w narzędziu Edytor ładowania danych, aby zdefiniować model danych.

Wskazówka

Jeśli można określić części modelu danych za pomocą narzędzia Menedżer modelu danych, użyj narzędzia Menedżer modelu danych do określenia tych części w celu uzyskania optymalnej wydajności SQL. Menedżer modelu danych jest efektywniejszy przy definicjach tabel do wykorzystania podczas wykonywania zapytań Direct Query w zdefiniowanym modelu danych.

Aby utworzyć modele danych za pomocą niestandardowego języka SQL:

  1. Dodaj section directquery do skryptu ładowania.

    W skrypcie ładowania może istnieć tylko jedna sekcja SECTION DIRECTQUERY. Sekcja ta musi być ostatnią sekcją w skrypcie ładowania.

    Nawet jeśli nie zdefiniowano modelu danych za pomocą narzędzia Menedżer modelu danych, dodanie instrukcji LIB CONNECT, a następnie instrukcji section directquery do skryptu ładowania i załadowanie skryptu spowoduje przekształcenie Twojej aplikacji w aplikację Direct Query.

  2. Zbuduj model danych przy użyciu następujących instrukcji:

    • SELECT

      Użyj instrukcji SELECT do wybrania tabel i kolumn do załadowania. Na przykład: <TableName> SELECT <custom SQL>.

      Jeżeli w skrypcie ładowania nie zdefiniujesz własnych nazw tabel, tabele otrzymają nazwy Table<numer wiersza skryptu>.

      Select

    • CREATE RELATIONSHIP

      Użyj CREATE RELATIONSHIP do zdefiniowania relacji między polami i tabelami w modelu danych.

      Create relationship

    • DROP RELATIONSHIP

      Użyj DROP RELATIONSHIP do usunięcia wcześniej zdefiniowanych relacji z modelu danych.

      Relacja Drop

    • DROP TABLE

      Użyj DROP TABLE do usunięcia wcześniej zdefiniowanych tabel z modelu danych, aby uniknąć ewentualnych konfliktów między tabelami.

    • LET, SET

      Użyj instrukcji LET i SET do zdefiniowania zmiennych lub wyrażeń Qlik.

      Let

      Set

    Tabele i pola muszą mieć unikatowe nazwy w skali całego modelu danych. Jeśli zdefiniujesz tabelę w narzędziu Menedżer modelu danych, a następnie spróbujesz ją ponownie zdefiniować w niestandardowym języku SQL, zakończy się to niepowodzeniem, chyba że usuniesz tabelę utworzoną w narzędziu Menedżer modelu danych lub zmienisz nazwę tabeli i pól w niestandardowym języku SQL.

Wszelkie instrukcje skryptu nieobsługiwane w sekcji section directquery generują błąd podczas ładowania danych. Wszelkie ustawienia debugowania skryptu lub wymuszonej kontynuacji są ignorowane.

Przykłady skryptów ładowania z niestandardowym językiem SQL można znaleźć w temacie Przykłady niestandardowego języka SQL dla Direct Query.

Niestandardowy język SQL, zmienne i wyrażenia

Niestandardowe definicje SQL w Direct Query umożliwiają używanie zarówno zmiennych skryptowych, jak i makr wyrażeń Qlik w ramach niestandardowej instrukcji SQL.

Ta możliwość wnosi do modelu danych aplikacji wpływ i elastyczność dynamicznych zmiennych i wyrażeń dzięki niestandardowym tabelom i kolumnom zdefiniowanym w języku SQL dostosowującym się do wyników oceny zmiennych lub wyrażeń Qlik.

Zmienne w niestandardowym języku SQL

Do definiowania zmiennych użyj SET lub LET. Dodaj zmienne w skrypcie ładowania, używając formatu $(<variable name>).

Przykład: konstruowanie modelu danych z uwzględnieniem zmiennych

Odniesienia do zmiennych w niestandardowym SQL są oceniane podczas przeładowywania. Jeśli wartość zmiennej zmieni się podczas korzystania z aplikacji, zmiana nie zostanie odzwierciedlona w niestandardowym kodzie SQL korzystającym z tej zmiennej, chyba że skrypt zostanie przeładowany.

Jeśli chcesz używać zmiennych dynamicznych w niestandardowych definicjach SQL, odwołuj się do zmiennych jako części wyrażeń Qlik, aby wymusić ocenę tych zmiennych przy każdym wykonaniu zapytania korzystającego z tych niestandardowych definicji SQL.

Więcej informacji na temat zmiennych zawiera temat Praca ze zmiennymi w edytorze ładowania danych.

Wyrażenia w niestandardowym języku SQL

Za pomocą wyrażeń można modyfikować zawartość niestandardowego kodu SQL wysyłanego do zdalnej bazy danych w celu reprezentowania tabel i kolumn w modelu danych aplikacji. Wyrażenia używane w modelu danych muszą prowadzić do pojedynczej wartości.

Wskazówka

Aby sprawdzić, czy wynikiem wyrażenia jest pojedyncza wartość, dodaj je jako wyrażenie do wskaźnika KPI. Jeśli to będzie działać, to wyrażenia można użyć w niestandardowym języku SQL.

Wyrażenia są oceniane dynamicznie przy każdym wykonaniu zapytania korzystającego z tych definicji SQL. Za każdym razem, gdy niestandardowa instrukcja SQL dotycząca tabel lub pól używa wyrażeń Qlik podczas wykonywania zapytania, te wyrażenia Qlik są oceniane w pierwszej kolejności w celu pobrania bieżących wyników wyrażeń. Wyniki te są wstawiane do niestandardowej instrukcji SQL, która ma zostać wykonana zamiast pierwotnego zapytania. Te oceny wyrażeń Qlik mogą z kolei generować zapytania SQL do zdalnej bazy danych. Te oceny wyrażeń Qlik mogą z kolei generować zapytania SQL do zdalnej bazy danych.

Jeśli wyrażenie nie rozwinie się podczas ładowania, zwróci wartość null. Nie oznacza to, że jest nieprawidłowe. Wyrażenie może wymagać dokonania przez użytkownika wyborów w aplikacji w celu jego oceny.

Przykład: konstruowanie modelu danych za pomocą wyrażeń Qlik

Tworzenie modelu danych przy użyciu niestandardowego języka SQL i narzędzia Menedżer modelu danych

Możesz użyć kombinacji niestandardowego języka SQL i Menedżer modelu danych, aby utworzyć model danych dla Direct Query. Należy jednak pamiętać o pewnych kwestiach praktycznych:

  • Zgodnie z najlepszą praktyką wykonaj wszelkie modelowanie w narzędziu Menedżer modelu danych przed dodaniem niestandardowego języka SQL do skryptu ładowania. Niestandardowego języka SQL i narzędzia Menedżer modelu danych najlepiej jest używać razem, gdy Menedżer modelu danych służy do definiowania załadowanych tabel i relacji między polami, a do dodatkowych dostosowań używany jest niestandardowy język SQL.

  • Część modelu danych utworzona przez Menedżer modelu danych i część utworzona przez niestandardowy język SQL są zarządzane oddzielnie, a następnie łączone razem podczas przeładowania skryptu. Menedżer modelu danych nie wyświetla żadnego modelu danych zdefiniowanego przez niestandardowy język SQL. Aby wyświetlić pełny model danych, użyj narzędzia Przeglądarka modelu danych.

  • Model danych utworzony przez Menedżer modelu danych i model danych zdefiniowany przez niestandardowy język SQL muszą korzystać z tego samego połączenia z bazą danych.

  • Instrukcję IMPORT LIVE dodaną do skryptu ładowania przez Menedżer modelu danych możesz przenieść. Skrypt ładowania jest oceniany sekwencyjnie, więc jego nowa pozycja może mieć wpływ na niestandardowe wymagania SQL. Może na przykład utworzyć niepożądane relacje lub zduplikować nazwy tabel w ostatecznym modelu danych.

  • Tabele i pola muszą mieć unikatowe nazwy w skali całego modelu danych. Jeśli zdefiniujesz tabelę w narzędziu Menedżer modelu danych, a następnie spróbujesz ją ponownie zdefiniować w niestandardowym języku SQL, zakończy się to niepowodzeniem, chyba że usuniesz tabelę utworzoną w narzędziu Menedżer modelu danych lub zmienisz nazwę tabeli i pól w niestandardowym języku SQL.

Ograniczenia

Niestandardowy język SQL dla Direct Query ma następujące ograniczenia:

  • Niestandardowy język SQL może używać tylko jednej bazy danych.

  • Aplikacji Direct Query korzystającej z jednej lub większej liczby niestandardowych instrukcji SQL z osadzonymi makrami wyrażeń Qlik nie można używać jako aplikacji selekcji do aplikacji On-Demand. Wynika to z tego, że żadna wygenerowana aplikacja szablonu, jako aplikacja w pamięci, nie obsługuje makr wyrażeń Qlik w swoim skrypcie ładowania.

  • Niestandardowy język SQL Direct Query nie jest obsługiwany w przypadku skryptów dodanych w hubie. Więcej informacji na temat skryptów zawiera temat Praca ze skryptami w katalogu.

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ć, co możemy poprawić!