W poprzednich publikacjach na naszym blogu, opisując narzędzie do analizy i wizualizacji danych Power BI, skupialiśmy się głównie na możliwościach wersji Desktopowej (uruchamianej z pulpitu systemu Windows). Wspominaliśmy także o rozwiązaniu chmurowym Power BI Online (Service – uruchamiany w przeglądarce internetowej). Jak wiemy w wersji na pulpit możemy bez problemu przekształcać i transformować dane z wykorzystaniem Power Query, nie wszyscy jednak mają świadomość, że Service posiada podobne funkcjonalności. Aby otrzymać taką możliwość w Power BI Online musimy skorzystać z Przepływów danych (ang. DataFlow).
Czym są przepływy danych i gdzie je znaleźć?
DataFlow w Power Platform to funkcja przygotowania danych, którą możemy tworzyć i zarządzać z poziomu obszaru roboczego w Power BI Online. Podobnie jak Power Query w Desktopie służy ona do importowania danych pochodzących z różnych źródeł, przekształcania i ich transformowania. Na kolejnym etapie możemy umieścić te dane w obszarze roboczym, w którym na ich podstawie stworzymy zestawy danych, raporty, pulpity nawigacyjne i aplikacje. Przepływy danych są wykorzystywane w każdym elemencie Power Platform.
Wykorzystywanie DataFlow wymaga płatnej licencji Power BI (przynajmniej licencja Power BI Pro), natomiast konsumpcja tego rozwiązania jest za darmo. Domyślny obszar roboczy w Power BI Online nie wspiera jednak DataFlow, dlatego należy utworzyć nowy pusty obszar roboczy.

Co mogą zawierać przepływy danych?
DataFlow definiuje się również jako kolekcję encji (encje są podobne do tabel). Każdy DataFlow może zawierać wiele encji. Encje możemy swobodnie dodawać i edytować w ramach DataFlow, możemy też definiować dla nich harmonogram odświeżania danych bezpośrednio z obszarów roboczych, z których się wywodzą. Dodawanie jednostki wymaga podania ustawień połączenia, takich jak konto połączenia, serwer oraz baza danych. Po zdefiniowaniu encji otrzymujemy okno podobne do Nawigatora z Power BI Desktop, w którym wybieramy dane do importu. Dobrą praktyką jest tworzenie encji dla każdego źródła danych z osobna.

Integracja Dataflow z Azure Data Lake Storage oraz Business Central
DataFlow mogą być przechowywane w Azure Data Lake Storage (ADLS). ADLS to usługa typu Data Lake służąca do przechowywania ogromnych ilości danych zarówno tych ustrukturyzowanych jak i nieustrukturyzowanych, czyli tak zwanych Big Data. Połączenie między Przepływami danych, a ADLS możemy zdefiniować w ustawieniach administracyjnych Power BI Online (Licencja Premium). Z tego poziomu jesteśmy też w stanie zezwolić naszym obszarom roboczym na dostęp do magazynu Azure, żeby wykorzystać znajdujące się tam dane w różnych obszarach roboczych (tylko Administrator).
Z kolei aby połączyć się z Business Central należy skorzystać z łącznika OData feed, w którym definiujemy URL z API (API bazuje na protokole OData) do Business Central. Przykładowy URL OData z API: (https://api.businesscentral.dynamics.com/v2.0/production/api/v1.0/companies). Tak pobrane dane przy posiadanej pojemności Premium Power BI jesteśmy w stanie przyrostowo odświeżać. Dla przykładu zaciągnięte dane z URL podobnego do powyższego zwracają encje Firm, które następnie rozwijamy o interesujące nas tabele.

Pobranie danych do Power BI za pomocą DataFlow (przy połączeniu z Azure Data Lake Storage) tworzy pliki CSV w Azure Data Lake Storage, zaś każde odświeżenie danych tworzy snapshot tych danych, czyli zapis poszczególnych rekordów odświeżanych danych wywodzących się z tabeli.

Snapshoty są formatem bazującym na Common Data Model (CDM – ustandaryzowany schemat firmy Microsoft). CDM to format używany przez coraz więcej usług MS i innych firm, który umożliwia ponowne wykorzystanie danych i narzędzi w różnych domenach, a także pozwala na uproszczenie dostępu do uczenia maszynowego. Załóżmy na przykład, że użytkownik chce przeanalizować dane zapasów z Business Central w usłudze Azure Databricks, jest to możliwe, ponieważ Azure Databricks może odczytać dane CDM. Jak również z tego samego CDM możemy skorzystać w Power Apps tworząc aplikację, czy w Power Automate przy kreowaniu zautomatyzowanych powtarzalnych procesów.

Utworzony DataFlow odświeża dane z Business Central, co sprawia że tworzy dla siebie tymczasową kopię danych. Natomiast dane w takim połączeniu są przechowywane na koncie Azure Data Storage.

Z racji tego, że usługa Power BI i wersja desktopowa stanowią jeden ekosystem pozwala to również na opracowywanie raportów w Power BI Desktop na podstawie danych pochodzących z DataFlow. Tak wykonany raport tworzy zestaw danych, który bazuje na przepływach danych.

Ostatecznie schemat połączenia z danymi z wykorzystaniem DataFlow wygląda następująco:

Aby umożliwić przechowywanie danych w Azure Data Lake Storage musimy spełnić następujące wymagania:
- Potrzebujemy subskrypcji platformy Azure, aby można było utworzyć konto magazynu.
- Subskrypcja Azure i subskrypcja Power BI powinny być połączone z tym samym najemcą usługi Azure Active Directory (AAD). Power BI musi uwierzytelnić się na naszym koncie magazynu Azure i używać AAD do tego uwierzytelniania (OAuth). Upraszczając nieco, musimy zalogować się na https://powerbi.com za pomocą tego samego konta (np. jan@cronus.com), z którego logujemy się na https://portal.azure.com.
- Musimy być administratorem konta Power BI, aby można było ponownie skonfigurować przepływy danych.
- Stworzyć konto magazynu Azure o specjalnym typie i nazwie „Azure Data Lake Store Gen 2 (ADLSg2)”.
- Konto magazynu musi znajdować się w tym samym regionie Azure, co dzierżawa usługi Power BI. Aby ustalić lokalizację najemcy usługi Power BI, należy przejść do usługi Power BI online i otworzyć „Informacje o usłudze Power BI” za pomocą „?” menu u góry.

Połączenie wszystkich technologii opisanych w tym artykule poszerza możliwości raportowania, analizy oraz zabezpieczania danych, dostarczając bezcenną wiedzę o naszych klientach i organizacji. Integracja tych systemów pozwala również na szybki i wydajny sposób pobierania i udostępniania danych, co ma duże znaczenie przy zbiorach danych typu Big Data.