Zapytania SQL w SAP HANA
Prawdopodobnie każdy, kto wykorzystuję platformę SAP HANA do budowy przepływów danych, wykorzystuje do tego w mniejszym lub większym stopniu język SQL. Widoki kalkulacyjne, funkcje tabelaryczne, procedury, czy nawet formuły w widokach graficznych – wzystkie te elementy budowane są za pomocą między innymi strukturalnego języka zapytań.
Poza tworzeniem obiektów, język SQL w SAP HANA może służyć również (a może przede wszystkim) do analizy danych, zarówno pochodzących z widoków tworzonych w HANA Studio, jak i tych z obiektów BW, o ile wykorzystujemy koncepcję BW on HANA / BW4HANA.
Analiza danych za pomocą SQL przynosi oczywiste korzyści – daje potężne możliwości, a język SQL jest powszechnie znany. Aby rozpocząć pracę z SQL w HANA Studio, najprościej włączyć konsolę SQL – w perspektywie HANA Modeler lub HANA Developer – i zacząć pisać.
Konsola to najbardziej dostępny sposób na rozpoczęcie pracy z SQL, jednak nie zawsze jest sposobem najwygodniejszym. W przypadku, gdy nie znamy struktury tabel lub widoków, szybkie napisanie efektywnego kodu bywa kłopotliwe. Na szczęście w HANA Studio istnieje kilka sposobów na ułatwienie sobie analizy danych za pomocą SQL.
Drag & Drop
Po otwarciu konsoli SQL wystarczy otworzyć drzewo tabel lub widoków na karcie Systems, po znalezieniu tego, z którego dane chcemy analizować, przeciągnąć go do obszaru konsoli. Pełna ścieżka pojawi się w kodzie.
Generate Select Statement
Wykorzystanie drag & drop jest pomocne tylko do umieszczenia tabel / widoków w kodzie SQL. Nie pozwala na zobaczenie struktury tych obiektów, a przy tworzeniu złożonych (i efektywnych) zapytań SQL to jest najistotniesza informacją. Można oczywiście przeglądać strukturę tabeli, a następnie ręcznie wpisywać do konsoli SQL poszczególne kolumny. Jednak znacznie łatwiej jest wykorzystać opcję automatycznego tworzenia zapytania SQL.
W drzewie obiektów (Systems) należy znaleźć ten, na podstawie którego zapytanie chcemy stworzyć, a następnie wybrać Generate Select SQL.
W kosoli otwarte zostanie gotowe zapytanie SQL z listą wszystkich kolumn w obiekcie źródłowym, a także z domyślną agregacją miar i klauzulą GROUP BY w przypadku widoków. Tak wygenerowane zapytanie jest doskonałą bazą do dalszych przekrztałceń i budowy bardziej skomplikowanych zapytań.
Obok Generate Select Statement znajduje się również Generate Insert Statement, działający analogicznie.
Visual SQL
Trzecią opcją dostępną w menu Generate jest Visual SQL (opcja dostępna tylko dla tabel). Funkcja bardzo ciekawa, niestety zdecydowanie mało rozwinięta i niedopracowana. Tym niemniej czasem warto sięgnąć po visual SQL, który w sposób graficzny pomaga budować zapytania SQL bazujące na tabelach.
Wywołanie Visual SQL otwiera schemat obiektu z listą wszystkich kolumn. Kolumny można dodawać do budowanego zapytania (prawy przycisk myszy – select).
Dodając kolumny, pojawiają się one w dolnym oknie edytora, gdzie można przypisać im synonim, włączyć sortowanie lub dodać kolumnę do warunków w klauzuli WHERE.
Do edytora graficznego można dodać wiele tabel i zbudować między nimi połączenia. Do dodawania tabel i join-ów służy przycisk zielonego plusa. Połączenia najłatwiej stworzyć przeciągając linie między wspólnymi kolumnami.
Po stworzeniu zapytania w trybie wizualnym, można oczywiście od razu wyświetlić rezultat zapytania (prawy klik – Execute lub Data Preview). Aby dalej przekrztałcać zapytanie (dodać elementy, których brakuje w edytorze wizualnym), warto sięgnąć po opcje Export SQL.
Export SQL otwiera wygenerowany kod od razu w konsoli SQL. Kod wyeksportowany z edytora wizualnego jest bardzo czytelny i stanowi dobrą bazę do dalszej rozbudowy.
Po więcej informacji o używaniu języka SQL w SAP HANA, warto sięgnąć do SAP HANA SQL Script Reference, należy przy tym zwrócić uwagę na posiadaną wersję platformy (występują duże różnice między wersjami 1.x a 2.x).