Przejdź do treści
04Obszar kompetencji

Platformy danych i automatyzacja

Jedna liczba zamiast trzech różnych.

W większości firm dane już są - w ERP i w systemie księgowym, w eksportach, które ktoś raz w miesiącu składa w arkusz, w plikach Excela, które po cichu stały się bazami danych, czasem na papierze w magazynie. Części z nich jeszcze nie ma: trzeba je zebrać spoza firmy albo zacząć zapisywać w miejscu, w którym powstają. Budujemy warstwę między tymi źródłami a Twoimi decyzjami: pipeline'y, które zbierają i uzgadniają dane, hurtownię danych albo lakehouse, w których te dane są przechowywane razem, pulpity, które je pokazują, i automatyzację, która prowadzi to wszystko sama. Platformę dobieramy do wymagań: ile jest danych, gdzie mogą się znajdować i kto je obsługuje. To samo budowaliśmy i na serwerze u klienta, i w Azure, z równie dobrych powodów. Jeśli szukasz samego systemu, w którym te dane powstają - aplikacji, portalu, narzędzia wewnętrznego - opisujemy go w Inżynierii aplikacji i systemów; my zaczynamy w chwili, gdy te dane trzeba zebrać w jedno miejsce.

W skrócie
  • To, co już masz - eksporty z ERP i z księgowości, pliki Excela i CSV, bazy danych, API, a gdzie trzeba, własny łącznik - zamieniamy w pipeline'y z harmonogramem i monitoringiem, z udokumentowaną hurtownią danych za nimi.
  • Platformę dobieramy do tego, ile masz danych i na czym już pracujesz - od jednej bazy PostgreSQL po Databricks, Snowflake czy BigQuery, jeśli już ich używasz. Nie mamy jednego produktu, który sprzedajemy każdemu.
  • Power BI jako domyślne raportowanie - pulpity, które odświeżają się same, a dane zostają w Twoim tenancie Microsoft 365 (Twojej własnej części chmury) albo na Twoim serwerze.
  • Każdy pipeline sprawdza dane, zanim cokolwiek zapisze, a gdy przebieg się nie uda, wiesz o tym tego samego dnia.
  • Prace wykonywane ręcznie w stałych terminach - scalanie eksportów, przepisywanie liczb, sprawdzanie sum - zamieniamy w skrypty z harmonogramem i monitoringiem (Python, PowerShell albo Azure Functions). Tam, gdzie tych liczb nikt jeszcze nie zapisuje, zaczynamy od narzędzia do ich zapisywania.
Jak dobieramy rozwiązania

Zanim polecimy platformę, odpowiadamy na siedem pytań:

  1. 01

    Decyzja, której służą dane - po co są te dane i kto z nich korzysta: ludzie przez pulpity czy inne systemy, które pobierają je same przez API. To przesądza, co zbieramy i jak często.

  2. 02

    Źródła - systemy ERP i księgowe, eksporty i arkusze, bazy danych, API, a tam, gdzie system nie daje nic innego, własny łącznik: mały program, który wyjmuje dane z systemu bez eksportu. Do ustalenia jest też, kto odpowiada za każde źródło (Twój zespół, ktoś z zewnątrz czy nikt) i co się dzieje, gdy źródło zmieni się bez uprzedzenia.

  3. 03

    Krok wykonywany ręcznie - kto dziś przepisuje liczby, scala pliki i sprawdza sumy wzrokiem oraz co się dzieje, gdy ta osoba jest na urlopie.

  4. 04

    Historia - dzisiejsza migawka czy trend w czasie; arkusze rzadko trzymają historię, a od odpowiedzi zależy cały schemat, czyli układ całej bazy.

  5. 05

    Ilość danych - tysiące wierszy dziennie czy miliony; liczenie rozłożone na wiele maszyn dopiero wtedy, gdy jedna przestaje wystarczać.

  6. 06

    Gdzie dane mogą się znajdować - Twój serwer, Twoja własna część chmury - tenant - albo konkretny region. Przy danych osobowych i danych Twoich klientów decydują o tym przepisy i umowy, a dopiero potem wydajność; przy danych, które i tak są jawne, nie ma czego rozstrzygać - liczy się wydajność i koszt.

  7. 07

    Kto to utrzymuje na co dzień - Twój dział IT, jeden analityk albo my.

W małych i średnich firmach problem z danymi rzadko polega na ilości; polega na tym, że dane są rozproszone i że nikt im nie ufa. Gdy dwa systemy pokazują dwie różne liczby, nikt nie oprze na nich decyzji, a tego sporu nie rozstrzyga rozmiar platformy, tylko jedna uzgodniona definicja.

Co budujemy

Hurtownie danych i lakehouse'y

  • PostgreSQL - solidna podstawa większości hurtowni: na Twoim serwerze albo na maszynie w Azure, z historią na takim poziomie szczegółowości, jakiego wymaga pytanie - migawki dzienne, zapisy zdarzeń albo jedno i drugie. Większość małych i średnich firm nigdy nie zbierze tylu danych, żeby przestał wystarczać.
  • Microsoft Fabric albo Azure SQL - gdy firma pracuje już w Microsoft 365 i woli platformę utrzymywaną przez dostawcę, z wbudowanym Power BI; jeśli działa już Synapse, zostajemy przy nim.
  • Databricks (PySpark, Delta Lake) - gdy ilość danych, ich różnorodność albo rodzaj obliczeń przerasta pojedynczą bazę; notatniki dla analityków - na tych samych, sprawdzonych danych, na których stoją pulpity.
  • Redshift, Snowflake, BigQuery - gdy już na nich jesteś. Projektujemy na platformie, którą masz, zanim zaproponujemy inną.

Kilka tysięcy wierszy dziennie to jeszcze nie big data. Kilka maszyn kupionych tam, gdzie wystarczyłaby jedna baza, to koszt i złożoność, które będziesz dźwigać latami.

Integracja i pipeline'y

  • Pliki i eksporty - eksporty CSV i Excela z ERP, księgowości albo systemu magazynowego, odbierane o ustalonych porach, sprawdzane i ładowane do hurtowni - zamiast jednej osoby, która ręcznie scala zakładki.
  • Systemy, bazy danych i API - bezpośrednie połączenia z systemami, których już używasz; dane pobierane według harmonogramu, za każdym razem tylko to, co przybyło od ostatniego razu.
  • Pipeline'y w Pythonie albo Azure Data Factory - domyślnie zadania w Pythonie z harmonogramem, sprawdzane przed każdym zapisem i kończące się statusem, na który da się automatycznie zareagować; Data Factory, gdy firma woli składać te przepływy w gotowym narzędziu Microsoftu, bez pisania kodu, we własnej części chmury Azure.
  • Papier i zapisy ręczne - prosty formularz albo skanowanie kodu kreskowego w miejscu pracy, żeby nikt nie przepisywał potem z papieru.

Plik składany ręcznie ma jedną przewagę nad pipeline'em, który milczy, gdy przestaje działać: gdy zabraknie pliku, ktoś to zauważy.

Raportowanie i analiza

  • Power BI - pulpity zbudowane wokół decyzji, które Twój zespół naprawdę podejmuje, odświeżane automatycznie. Gdy baza działa na Twoim serwerze, łączymy ją z Power BI w Twoim tenancie przez lokalną bramę danych - program po Twojej stronie, który czyta bazę na miejscu. Gdy dane są już w chmurze, Power BI czyta je wprost z Fabric. Pulpitu, przy którym nikt nie potrafi nazwać decyzji i osoby, która ją podejmuje, nie budujemy.
  • Notatniki i SQL w Databricks - na tych samych danych co pulpity, gdy analitycy muszą zadać pytanie, na które pulpit nie odpowie.
  • Fundament pod AI - czyste, historyczne, uporządkowane dane to pierwsza rzecz, której potrzebuje każde wdrożenie AI: bez historii liczonej w miesiącach, a nie w dniach, i bez definicji pól, które zgadzają się między źródłami, nie ma na czym budować. Budujemy właśnie to i mówimy wprost, do czego Twoje dane są gotowe - także wtedy, gdy odpowiedź brzmi: jeszcze do niczego.

Pulpit na danych, których nikt nie sprawdza, automatyzuje złą odpowiedź. Bramki jakości stoją przed hurtownią, nie za nią.

Jakość i ład danych

  • Sprawdzanie przed zapisem - spodziewana liczba wierszy, pola wymagane, wartości mieszczące się w normie; kontrole, które dziś ktoś robi wzrokiem, stają się regułami działającymi za każdym razem, a progi walidacji - granice, poza którymi dane uznajemy za błędne - spisujemy dla każdego źródła. Przebieg, który się w nich nie mieści, zostawia bazę nietkniętą, a plik wraca do osoby odpowiedzialnej za to źródło, żeby go poprawiła - po Twojej stronie albo po naszej. Ustalamy to przed budową.
  • Definicje i historia - każde pole znaczy jedną rzecz i jest to spisane; surowe zapisy źródłowe leżą obok oczyszczonych, więc da się pokazać, co było wiadomo danego dnia.
  • Dane osobowe - ochrona wbudowana w schemat: pola usuwane przed zapisem, rekordy, których w ogóle nie przechowujemy, retencja, czyli czas przechowywania, ustalona, a nie przypadkowa.

Narzędzie do ładu danych kupione, zanim ktoś ustalił zasady, kończy się pustym spisem, którego nikt nie uzupełnia.

Automatyzacja

  • Skrypty - Python do pracy z danymi: scalanie eksportów, uzgadnianie liczb, przygotowanie comiesięcznego pliku, który zajmował cały dzień; PowerShell do Microsoft 365 i Azure; wszystko w repozytorium i z harmonogramem.
  • Azure Functions, Logic Apps, Power Automate - Functions do kodu, który uruchamia się tylko wtedy, gdy coś go wywoła: powiadomienie, przekształcenie, mała integracja; Logic Apps i Power Automate wtedy, gdy cały proces toczy się wewnątrz Microsoft 365 i mają go prowadzić sami pracownicy, bez programisty.
  • Każde zadanie raportuje swój stan - wynik, liczby i czasy trafiają do monitoringu, a o awarii ktoś dowiaduje się tego samego dnia.

Platforma do automatyzacji w abonamencie nie jest przez to prostsza od krótkiego skryptu, który ktoś ma na własność i potrafi przeczytać.

Jak prowadzimy projekt

Zawsze w tej samej kolejności:

  1. 01

    Rozpoznanie - jakim decyzjom mają służyć dane, jakie są źródła i w jakim stanie jest każde z nich.

  2. 02

    Projektowanie - platformę, schemat i progi walidacji uzgadniamy z Tobą na papierze; jeśli coś nie zadziała, mówimy to przed budową, a nie po niej.

  3. 03

    Budowa - jeden moduł na źródło, według wspólnego wzorca; schemat dokumentowany na bieżąco. Rozmawiasz bezpośrednio z inżynierami, którzy budują Twoją platformę, bez pośredników. Ilekroć o to poprosisz, pokazujemy, na jakim etapie jest praca względem harmonogramu.

  4. 04

    Eksploatacja - z harmonogramem, pod monitoringiem, z alertem tego samego dnia; przebiegi, które nie przejdą walidacji, nigdy nie trafiają do hurtowni.

  5. 05

    Przekazanie - kod, schemat, pulpity i notatki o każdym źródle.

  6. 06

    Wsparcie - zostajemy na SLA tak długo, jak jest potrzebne: do dnia, w którym Twój dział IT przejmuje system, albo przez kolejne lata. Długość ustalasz Ty - nikogo nie wiążemy na czas, którego sam nie wybrał.

Co dostajesz

Na koniec projektu przekazujemy Ci:

  • Kod pipeline'ów w repozytorium, które należy do Ciebie
  • Udokumentowany schemat hurtowni albo lakehouse'a
  • Pulpity zbudowane wokół Twoich decyzji
  • Logi przebiegów i alerty podpięte do kogoś, kto je zobaczy
  • Notatki o każdym źródle: skąd pochodzi i co je psuje
  • Spisane progi walidacji
Zobacz to w praktyce