Przetwarzanie analityczne online (OLAP, Online Analytical Processing)

Azure Analysis Services

Przetwarzanie analityczne online (OLAP) to technologia, która organizuje duże bazy danych biznesowych i obsługuje złożoną analizę. Może służyć do wykonywania złożonych zapytań analitycznych bez negatywnego wpływu na systemy transakcyjne.

Bazy danych używane przez firmę do przechowywania wszystkich transakcji i rekordów są nazywane bazami danych przetwarzania transakcji online (OLTP ). Te bazy danych zwykle zawierają rekordy, które są wprowadzane pojedynczo. Często zawierają one wiele informacji, które są cenne dla organizacji. Bazy danych używane na potrzeby OLTP nie zostały jednak zaprojektowane do analizy. W związku z tym pobieranie odpowiedzi z tych baz danych jest kosztowne pod względem czasu i nakładu pracy. Systemy OLAP zostały zaprojektowane w celu ułatwienia wyodrębniania tych informacji analizy biznesowej z danych w bardzo wydajny sposób. Dzieje się tak, ponieważ bazy danych OLAP są zoptymalizowane pod kątem dużych obciążeń odczytu i zapisu.

Diagram that shows the OLAP logical architecture in Azure.

Modelowanie semantyczne

Semantyczny model danych to model koncepcyjny opisujący znaczenie zawartych w nim elementów danych. Organizacje często mają własne terminy dla rzeczy, czasami z synonimami, a nawet różne znaczenia dla tego samego terminu. Na przykład baza danych spisu może śledzić sprzęt z identyfikatorem zasobu i numerem seryjnym, ale baza danych sprzedaży może odwoływać się do numeru seryjnego jako identyfikatora zasobu. Nie ma prostego sposobu, aby powiązać te wartości bez modelu, który opisuje relację.

Modelowanie semantyczne zapewnia poziom abstrakcji schematu bazy danych, dzięki czemu użytkownicy nie muszą znać bazowych struktur danych. Ułatwia to użytkownikom końcowym wykonywanie zapytań o dane bez przeprowadzania agregacji i sprzężeń względem bazowego schematu. Ponadto zwykle nazwy kolumn są zmieniane na bardziej przyjazne dla użytkownika nazwy, dzięki czemu kontekst i znaczenie danych są bardziej oczywiste.

Modelowanie semantyczne jest przeważnie używane w scenariuszach wymagających odczytu, takich jak analiza i analiza biznesowa (OLAP), w przeciwieństwie do większego przetwarzania danych transakcyjnych (OLTP, write-heavy transactional data processing). Jest to głównie spowodowane charakterem typowej warstwy semantycznej:

  • Zachowania agregacji są ustawiane tak, aby narzędzia raportowania wyświetlały je prawidłowo.
  • Zdefiniowano logikę biznesową i obliczenia.
  • Uwzględniane są obliczenia zorientowane na czas.
  • Dane są często integrowane z wielu źródeł.

Tradycyjnie warstwa semantyczna jest umieszczana w magazynie danych z tych powodów.

Example diagram of a semantic layer between a data warehouse and a reporting tool

Istnieją dwa podstawowe typy modeli semantycznych:

  • Tabelaryczny. Używa konstrukcji modelowania relacyjnego (model, tabele, kolumny). Wewnętrznie metadane są dziedziczone z konstrukcji modelowania OLAP (moduły, wymiary, miary). Kod i skrypt używają metadanych OLAP.
  • Wielowymiarowe. Używa tradycyjnych konstrukcji modelowania OLAP (modułów, wymiarów, miar).

Odpowiednie usługi Azure:

Przykładowy przypadek użycia

Organizacja ma dane przechowywane w dużej bazie danych. Chce udostępnić te dane użytkownikom biznesowym i klientom w celu utworzenia własnych raportów i przeprowadzenia analizy. Jedną z opcji jest zapewnienie tym użytkownikom bezpośredniego dostępu do bazy danych. Istnieje jednak kilka wad, takich jak zarządzanie zabezpieczeniami i kontrolowanie dostępu. Ponadto projekt bazy danych, w tym nazwy tabel i kolumn, może być trudny do zrozumienia przez użytkownika. Użytkownicy muszą wiedzieć, które tabele mają być zapytania, jak te tabele powinny być połączone, oraz inną logikę biznesową, która musi zostać zastosowana, aby uzyskać poprawne wyniki. Użytkownicy muszą również znać język zapytań, taki jak SQL, nawet aby rozpocząć pracę. Zazwyczaj prowadzi to do raportowania tych samych metryk przez wielu użytkowników, ale z różnymi wynikami.

Inną opcją jest hermetyzowanie wszystkich informacji potrzebnych użytkownikom do modelu semantycznego. Model semantyczny może być łatwiej odpytywane przez użytkowników za pomocą wybranego narzędzia do raportowania. Dane dostarczane przez model semantyczny są pobierane z magazynu danych, zapewniając, że wszyscy użytkownicy widzą jedną wersję prawdy. Semantyczny model zapewnia również przyjazne nazwy tabel i kolumn, relacje między tabelami, opisami, obliczeniami i zabezpieczeniami na poziomie wiersza.

Typowe cechy modelowania semantycznego

Semantyczne modelowanie i przetwarzanie analityczne zwykle mają następujące cechy:

Wymaganie opis
Schemat Schemat zapisu, silnie wymuszony
Używa transakcji Nie.
Strategia blokowania Brak
Można aktualizować Nie (zwykle wymaga ponownego skompilowania modułu)
Dołączanie Nie (zwykle wymaga ponownego skompilowania modułu)
Obciążenie Duże odczyty, tylko do odczytu
Indeksowanie Indeksowanie wielowymiarowe
Rozmiar dat Mały lub średni rozmiar
Model Wielowymiarowych
Kształt danych: Schemat kostki lub gwiazdy/płatka śniegu
Elastyczność zapytań Wysoce elastyczna
Scale (Skala): Duże (10s-100 SB)

Kiedy należy użyć tego rozwiązania

Rozważ użycie OLAP w następujących scenariuszach:

  • Należy szybko wykonywać złożone zapytania analityczne i ad hoc bez negatywnego wpływu na systemy OLTP.
  • Chcesz zapewnić użytkownikom biznesowym prosty sposób generowania raportów na podstawie danych
  • Chcesz podać szereg agregacji, które umożliwią użytkownikom uzyskanie szybkich, spójnych wyników.

Funkcja OLAP jest szczególnie przydatna w przypadku stosowania obliczeń agregujących w dużych ilościach danych. Systemy OLAP są zoptymalizowane pod kątem scenariuszy z dużą liczbą odczytów, takich jak analiza i analiza biznesowa. OLAP umożliwia użytkownikom dzielenie danych wielowymiarowych na wycinki, które mogą być wyświetlane w dwóch wymiarach (takich jak tabela przestawna) lub filtrowanie danych według określonych wartości. Ten proces jest czasami nazywany "fragmentowaniem i dzieleniem" danych i można to zrobić niezależnie od tego, czy dane są partycjonowane w kilku źródłach danych. Ułatwia to użytkownikom znajdowanie trendów, wzorców typu spot i eksplorowanie danych bez konieczności znajomości szczegółów tradycyjnej analizy danych.

Modele semantyczne mogą pomóc użytkownikom biznesowym w abstrakcyjnych złożoności relacji i ułatwić szybkie analizowanie danych.

Wyzwania

W przypadku wszystkich korzyści zapewnianych przez systemy OLAP stanowią one kilka wyzwań:

  • Podczas gdy dane w systemach OLTP są stale aktualizowane przez transakcje przepływające z różnych źródeł, magazyny danych OLAP są zwykle odświeżane w znacznie wolniejszych odstępach czasu, w zależności od potrzeb biznesowych. Oznacza to, że systemy OLAP lepiej nadają się do strategicznych decyzji biznesowych, a nie natychmiastowych reakcji na zmiany. Ponadto należy zaplanować pewne czyszczenie danych i aranżację, aby magazyny danych OLAP były aktualne.
  • W przeciwieństwie do tradycyjnych, znormalizowanych tabel relacyjnych znalezionych w systemach OLTP modele danych OLAP wydają się być wielowymiarowe. Utrudnia to bezpośrednie mapowanie na modele relacji jednostek lub obiektów, w których każdy atrybut jest mapowany na jedną kolumnę. Zamiast tego systemy OLAP zwykle używają schematu gwiazdy lub płatka śniegu zamiast tradycyjnej normalizacji.

OLAP na platformie Azure

Na platformie Azure dane przechowywane w systemach OLTP, takich jak usługa Azure SQL Database, są kopiowane do systemu OLAP, takiego jak Usługi Azure Analysis Services. Narzędzia do eksploracji i wizualizacji danych, takie jak Power BI, Excel i opcje innych firm, łączą się z serwerami usług Analysis Services i zapewniają użytkownikom wysoce interakcyjny i wizualnie bogaty wgląd w modelowane dane. Przepływ danych z danych OLTP do OLAP jest zwykle orkiestrowany przy użyciu usług SQL Server Integration Services, które można wykonać przy użyciu usługi Azure Data Factory.

Na platformie Azure wszystkie następujące magazyny danych spełniają podstawowe wymagania dotyczące OLAP:

Usługi SQL Server Analysis Services (SSAS) oferują funkcje OLAP i wyszukiwania danych dla aplikacji analizy biznesowej. Usługę SSAS można zainstalować na serwerach lokalnych lub hostować na maszynie wirtualnej na platformie Azure. Azure Analysis Services to w pełni zarządzana usługa, która udostępnia te same główne funkcje co usługi SSAS. Usługi Azure Analysis Services obsługują łączenie się z różnymi źródłami danych w chmurze i lokalnie w organizacji.

Klastrowane indeksy magazynu kolumn są dostępne w programie SQL Server 2014 lub nowszym, a także w usłudze Azure SQL Database i są idealne dla obciążeń OLAP. Jednak począwszy od programu SQL Server 2016 (w tym usługi Azure SQL Database), możesz skorzystać z hybrydowego przetwarzania transakcyjnego/analitycznego (HTAP) za pomocą aktualizowalnych indeksów nieklastrowanych magazynów kolumn. Funkcja HTAP umożliwia wykonywanie przetwarzania OLTP i OLAP na tej samej platformie, co eliminuje konieczność przechowywania wielu kopii danych i eliminuje potrzebę różnych systemów OLTP i OLAP. Aby uzyskać więcej informacji, zobacz Wprowadzenie do magazynu kolumn na potrzeby analizy operacyjnej w czasie rzeczywistym.

Kluczowe kryteria wyboru

Aby zawęzić opcje, zacznij od udzielenia odpowiedzi na następujące pytania:

  • Czy chcesz zarządzać usługą zarządzaną zamiast zarządzać własnymi serwerami?

  • Czy wymagane jest bezpieczne uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft?

  • Czy chcesz przeprowadzać analizę w czasie rzeczywistym? Jeśli tak, zawęź opcje do tych, które obsługują analizę w czasie rzeczywistym.

    Analiza w czasie rzeczywistym w tym kontekście dotyczy pojedynczego źródła danych, takiego jak aplikacja do planowania zasobów przedsiębiorstwa (ERP), która będzie uruchamiać zarówno obciążenie operacyjne, jak i analityczne. Jeśli musisz zintegrować dane z wielu źródeł lub wymagać ekstremalnej wydajności analizy przy użyciu wstępnie zagregowanych danych, takich jak moduły, nadal może być wymagany oddzielny magazyn danych.

  • Czy musisz użyć wstępnie zagregowanych danych, na przykład w celu zapewnienia modeli semantycznych, które sprawiają, że analiza jest bardziej przyjazna dla użytkownika biznesowego? Jeśli tak, wybierz opcję, która obsługuje wielowymiarowe moduły lub modele semantyczne tabelaryczne.

    Zapewnianie agregacji może pomóc użytkownikom w spójnym obliczaniu agregacji danych. Wstępnie zagregowane dane mogą również zwiększyć wydajność podczas pracy z kilkoma kolumnami w wielu wierszach. Dane mogą być wstępnie agregowane w wielowymiarowych modułach lub modelach semantycznych tabelarycznych.

  • Czy musisz zintegrować dane z kilku źródeł poza magazynem danych OLTP? Jeśli tak, rozważ opcje, które łatwo integrują wiele źródeł danych.

Macierz możliwości

W poniższych tabelach podsumowano kluczowe różnice w możliwościach.

Ogólne możliwości

Możliwość Azure Analysis Services SQL Server Analysis Services Program SQL Server z indeksami magazynu kolumn Usługa Azure SQL Database z indeksami magazynu kolumn
Jest usługą zarządzaną Tak Nie. Nie. Tak
Obsługuje wielowymiarowe moduły Nie. Tak Nie. Nie.
Obsługuje modele semantyczne tabelaryczne Tak Tak Nie. Nie.
Łatwe integrowanie wielu źródeł danych Tak Tak Nie1 Nie1
Obsługuje analizę w czasie rzeczywistym Nie Nie. Tak Tak
Wymaga procesu kopiowania danych ze źródeł Tak Tak Nie. Nie.
Integracja z usługą Microsoft Entra Tak Nie. Nr 2 Tak

[1] Chociaż nie można używać programu SQL Server i usługi Azure SQL Database do wykonywania zapytań z wielu zewnętrznych źródeł danych i integrowania ich, nadal można utworzyć potok, który robi to za pomocą usług SSIS lub Azure Data Factory. Program SQL Server hostowany na maszynie wirtualnej platformy Azure ma dodatkowe opcje, takie jak serwery połączone i program PolyBase. Aby uzyskać więcej informacji, zobacz Aranżacja potoku, przepływ sterowania i przenoszenie danych.

[2] Połączenie do programu SQL Server uruchomionego na maszynie wirtualnej platformy Azure nie jest obsługiwane przy użyciu konta Microsoft Entra. Zamiast tego użyj konta domeny usługi Active Directory.

Możliwości skalowalności

Możliwość Azure Analysis Services SQL Server Analysis Services Program SQL Server z indeksami magazynu kolumn Usługa Azure SQL Database z indeksami magazynu kolumn
Nadmiarowe serwery regionalne w celu zapewnienia wysokiej dostępności Tak Nie Tak Tak
Obsługuje skalowanie zapytań w poziomie Tak Nie Tak Tak
Dynamiczna skalowalność (skalowanie w górę) Tak Nie Tak Tak

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Następne kroki