Dołącza SAP HANA: Typy, składnia i przykłady

⚡ Inteligentne podsumowanie

SAP HANA łączy tabele połączeń i widoki informacji, dzięki czemu model zwraca dokładnie te wiersze, których potrzebuje raport. Typy wewnętrzne, zewnętrzne, referencyjne, tekstowe, czasowe i przestrzenne zmieniają wydajność, obsługę kardynalności i rozmiar wyników.

  • 🔗 Zakres: Łączy tabele łączy i widoki informacji wewnątrz modeli graficznych i zwykłych instrukcji SQL w bazie danych.
  • Typy standardowe: Połączenia wewnętrzne, lewe zewnętrzne, prawe zewnętrzne i pełne zewnętrzne zachowują się dokładnie tak samo, jak w języku ANSI SQL.
  • Typy wyłącznie modelujące: Połączenia referencyjne i tekstowe istnieją wyłącznie w widokach informacyjnych i nie mają odpowiednika w postaci słów kluczowych SQL.
  • 🧪 Zaawansowane węzły: Połączenia czasowe, przestrzenne, dynamiczne i gwiaździste rozszerzają widoki obliczeniowe poza proste dopasowywanie kolumn.
  • 🛠️. Dźwignie wydajności: Kardynalność i flaga „Optymalizuj łączenie kolumn” decydują, czy SAP HANA może czyścić tabelę w czasie wykonywania.
  • 📈 Modernizacja: Widoki atrybutów i analiz są przestarzałe, dlatego nowe połączenia należy wprowadzać w graficznych widokach obliczeniowych.

Typy połączeń używane do łączenia tabel i widoków informacji w SAP HANA

Czym jest SAP HANA Dołączysz?

Dołącz do nas SAP HANA łączy wiersze z dwóch lub więcej tabel lub z tabeli i widoku informacji, a następnie zwraca wartości wymagane przez zapytanie. Złączenia są definiowane graficznie w węźle łączenia widoku informacji, a także zapisywane bezpośrednio w instrukcjach SQL uruchamianych w bazie danych.

Te dwie formy nie są identyczne. Połączenie wewnątrz widok obliczeniowy jest wykonywany przez SAP Silnik obliczeniowy HANA, który może pominąć tabelę, gdy nie otrzyma z niej żądanej kolumny, podczas gdy połączenie zapisane w SAP HANA SQL jest zawsze wykonywany dokładnie tak, jak został zakodowany.

Następujące typy połączeń są dostępne, gdy SAP Połączono tabele HANA i widoki informacji.

Typ połączenia Używa Komentarz
INNER Połączenie wewnętrzne wybiera zestaw rekordów, które pasują do siebie w obu tabelach. Rzędy, w których po żadnej stronie nie ma partnera, są odrzucane.
LEWE POŁĄCZENIE ZEWNĘTRZNE Lewe łączenie zewnętrzne wybiera cały zestaw rekordów z pierwszej tabeli i pasujący rekord z drugiej tabeli, jeśli jest dostępny. Jeżeli w drugiej tabeli nie ma pasujących wartości, dla jej kolumn zwracane są wartości null.
PRAWE POŁĄCZENIE ZEWNĘTRZNE Prawe sprzężenie zewnętrzne wybiera cały zestaw rekordów z drugiej tabeli i pasujący rekord z pierwszej tabeli, o ile jest dostępny. Jeżeli w pierwszej tabeli nie ma pasujących wartości, dla jej kolumn zwracane są wartości null.
PEŁNE POŁĄCZENIE ZEWNĘTRZNE Pełne łączenie zewnętrzne wybiera wszystkie rekordy z obu tabel. Niedopasowane wiersze po obu stronach są uzupełniane wartościami null.
DOŁĄCZ DO REFERENCJI Zachowuje się jak łączenie wewnętrzne, przy założeniu, że zachowana jest integralność referencyjna między dwiema tabelami. Dostępne w widokach atrybutów, widokach analitycznych i widokach obliczeniowych, łączą węzły.
DOŁĄCZ DO TEKSTU Połączenie tekstowe wybiera opis specyficzny dla języka, który należy do klucza, korzystając z kolumny języka tabeli tekstowej. Kolumna języka, zwykle SPRAS, musi zostać oznaczona we właściwościach połączenia.

Złączenia referencyjne i tekstowe to typy wyłącznie modelowania. Występują w węźle złączenia widoku informacji i nie mają odpowiednika w SQL, dlatego pojawiają się w SAP Modelowanie HANA narzędzi, a nie w poleceniu SELECT.

SAP Składnia połączeń HANA i przykłady SQL

Połączenia wewnętrzne i zewnętrzne są zapisywane w SAP HANA SQL ze standardową składnią ANSI, więc zapytanie testowane na innej relacyjnej bazie danych zazwyczaj działa bez zmian. Poniższy przykład łączy tabelę zamówień sprzedaży z tabelą klientów, a następnie z tabelą stanów.

SELECT so.ORDER_ID, c.NAME, s.STATE_NAME, so.AMOUNT
FROM SALES_ORDER AS so
INNER JOIN CUSTOMER AS c
  ON so.CUSTOMER_ID = c.CUSTOMER_ID
LEFT OUTER JOIN STATE AS s
  ON c.STATE_CODE = s.STATE_CODE
WHERE so.AMOUNT > 1000
ORDER BY so.ORDER_ID;

Połączenie wewnętrzne usuwa każde zamówienie sprzedaży, dla którego brakuje głównego rekordu klienta. Lewe połączenie zewnętrzne zachowuje wszystkie pozostałe zamówienia, nawet jeśli kod stanu nie ma opisu, i zwraca pustą nazwę stanu dla tych wierszy. Zamianaping oba typy łączenia zmieniają zatem liczbę wierszy, a nie tylko wyświetlanych kolumn.

Modele graficzne osiągają ten sam wynik bez użycia języka SQL. Węzeł łączenia jest umieszczany między dwoma źródłami danych w edytorze widoku, kolumny tworzące warunek łączenia są mapowane, a typ łączenia i kardynalność są ustawiane we właściwościach węzła. SAP Studio HANA Edytor i modelarz oparty na przeglądarce generują dane SQL w czasie wykonywania na podstawie tych ustawień.

Zaawansowane typy połączeń w SAP Widoki obliczeniowe HANA

Widoki obliczeniowe dodają zachowanie łączenia, którego zwykły SQL nie wyraża pojedynczym słowem kluczowym. Opcje te są konfigurowane w węźle łączenia lub za pomocą dedykowanego typu węzła.

Typ połączenia Co to robi Typowe zastosowanie
Połączenie czasowe Dopasowuje rekordy transakcji do wersji danych głównych, która obowiązywała w danym dniu, korzystając z pól od i do źródła danych głównych. Dane główne zależne od czasu, takie jak centrum kosztów, które zmieniło właściciela. Typ połączenia musi być referencyjny, a kluczem musi być data, znacznik czasu lub liczba całkowita.
Połączenie przestrzenne Łączy dwa źródła na kolumnie geometrycznej za pomocą predykatu przestrzennego, takiego jak „przecina się” lub „w obrębie”, zamiast na podstawie warunku równości. Analiza geograficzna, na przykład dopasowywanie lokalizacji klientów do obszarów sprzedaży.
Dynamiczne dołączanie Tworzy warunek połączenia w czasie wykonywania na podstawie kolumn połączenia, których zapytanie faktycznie żąda, agregując pozostałe kolumny przed wykonaniem połączenia. Połączenia wielokolumnowe, w których szczegółowość zapytania jest zmienna. Należy zażądać co najmniej jednej kolumny łączenia, w przeciwnym razie zapytanie zakończy się niepowodzeniem.
Dołącz gwiazdkę Łączy jedno źródło faktów z kilkoma widokami obliczeń wymiarów w jednym węźle. Modele schematu gwiaździstego zastępujące starszy widok analityczny.

Dynamiczne łączenie zmienia kolejność operacji, a nie regułę dopasowania. W łączu statycznym każda zdefiniowana kolumna bierze udział w warunku, a agregacja następuje później; w łączu dynamicznym najpierw agregowane są kolumny niezażądane, co zazwyczaj zwraca mniej wierszy i inną sumę. W związku z tym oba typy łączenia odpowiadają na różne pytania biznesowe, dlatego flaga jest ustawiana celowo, a nie w celu ogólnej optymalizacji.

Jak wybrać właściwy typ łączenia SAP HANA Modelowanie

Wybór połączenia wpływa zarówno na poprawność, jak i czas wykonania, a najszybsze połączenie to takie, SAP HANA nigdy nie musi być wykonywana. Poniższe zasady obejmują większość decyzji dotyczących modelowania.

  • Połączenie referencyjne — używaj tego tylko wtedy, gdy masz pewność, że każdy wiersz po jednej stronie ma partnera, ponieważ silnik może całkowicie pominąć łączenie, jeśli nie zostanie zażądana żadna kolumna z połączonej tabeli.
  • Wewnętrzne dołączenie — użyj, gdy integralność referencyjna nie jest zagwarantowana i niepasujące wiersze muszą zostać wykluczone.
  • Lewe sprzężenie zewnętrzne — użyj tego, gdy pierwsza tabela generuje wynik i nadal muszą pojawić się brakujące dane główne.
  • Pełne połączenie zewnętrzne — należy stosować ją oszczędnie, ponieważ jest to najdroższa opcja i rzadko jest wymagana w modelach raportowania.
  • Połączenie tekstu — użyj go, gdy kolumna opisu zależy od języka logowania.

Dwie właściwości węzła są równie ważne, co sam typ połączenia. Kardynalność (1:1, 1:n, n:1 lub n:m) informuje silnik, ile wierszy ma się spodziewać po każdej stronie, a funkcja Propose Cardinality (Zaproponuj kardynalność) wyprowadza ją z danych. Flaga „Optymalizuj kolumny połączenia” pozwala następnie SAP HANA usuwa kolumnę łączenia z planu wykonania, gdy zapytanie jej nie żąda. Nieprawidłowa kardynalność może po cichu mnożyć miary, dlatego jest ona weryfikowana na podstawie danych, a nie zakładana.

Kolejne ograniczenie kształtuje nowy rozwój. Widoki atrybutów i widoki analityczne są przestarzałe, a SAP Zaleca konwersję ich do graficznych widoków obliczeniowych, więc połączenie projektowane obecnie jest zazwyczaj tworzone w węźle połączenia widoku obliczeniowego lub połączenia gwiaździstego. Informacje na temat starszych obiektów są nadal przydatne, gdy istniejący model jest utrzymywany, a widok atrybutów oraz widok analityczny strony opisują, jak skonfigurowano te połączenia. SAP Materiały edukacyjne na temat dołącz węzły obejmuje to samo zachowanie w SAP HANA Cloud i szerszy SAP Samouczek HANA Seria wyjaśnia, gdzie na platformie znajdują się widoki informacji.

FAQ

Kardynalność (1:1, 1:n, n:1, n:m) informuje silnik, ile pasujących wierszy ma się spodziewać po każdej stronie. Umożliwia ona przycinanie połączeń i chroni agregaty. Propozycja kardynalności wywodzi ustawienie z danych, co jest bezpieczniejsze niż zgadywanie.

pozwala SAP HANA usuwa kolumnę łączenia z planu wykonania, gdy zapytanie klienta nigdy jej nie żąda. Mniej kolumn oznacza mniej grup.pingi szybsze środowiska wykonawcze, ale wyniki mogą ulec zmianie, jeśli usunięta kolumna wpłynęła na poziom agregacji.

Istniejące obiekty nadal działają, ale oba typy widoków są przestarzałe i nie można ich dodawać do nowych widoków obliczeniowych. SAP zaleca ich konwersję do graficznych widoków obliczeniowych, w których dostępne są te same typy połączeń, a dodatkowo połączenia gwiaździste i przestrzenne.

Musi zachować niedopasowane wiersze z obu stron, aby żadna tabela nie została przycięta, a każdy wiersz został zmaterializowany. Z kolei złączenie referencyjne można całkowicie pominąć, gdy zapytanie nie żąda żadnej kolumny z połączonej tabeli.

Kolumna języka tabeli tekstowej, zwykle SPRAS w SAP tabele, są oznaczone we właściwościach połączenia. SAP Następnie HANA filtruje opisy według języka sesji, dzięki czemu jeden model obsługuje każdy język logowania bez oddzielnego widoku.

Tak. Węzeł łączenia akceptuje tabele, funkcje tabelaryczne i inne widoki obliczeniowe jako źródła danych, w ten sposób widoki wymiarów są dołączane do tabeli faktów. Nazwy kolumn mogą się różnić, ponieważ warunek łączenia jawnie mapuje kolumny.

Uczenie maszynowe profiluje wartości kolumn, aby sugerować klucze połączeń i kardynalność, oznacza modele, których miary rosną po połączeniu, i grupuje niemal zduplikowane widoki. SAP osadza również w platformie usługi predykcyjne i generatywne, dzięki czemu ocena odbywa się równolegle z modelowanymi danymi.

Copilot sprawnie tworzy standardowe łączenia SQL i przyspiesza powtarzające się instrukcje SELECT. Nie zna integralności referencyjnej schematu, więc typ łączenia, kardynalność i opcje wyłącznie modelowania, takie jak łączenie tekstowe, nadal wymagają porównania z rzeczywistymi danymi.

Podsumuj ten post następująco: