Poradnik analityka projektowania Nowoczesnej hurtowni danych

więc zostaniesz poproszony o zbudowanie hurtowni danych dla Twojej firmy . Hurtownia danych, która jest wydajna, skalowalna i godna zaufania. Jeśli Twoja firma poważnie rozpoczyna wdrażanie raportowania danych jako kluczowego zasobu strategicznego dla Twojej firmy, Budowa hurtowni danych w końcu pojawi się w rozmowie.

ale budowa hurtowni danych nie jest łatwa ani banalna. Ponad 50 procent projektów hurtowni danych ma ograniczoną akceptację lub będzie wręcz porażką.

Jak zacząć projektować i budować hurtownię danych? Jakie są pułapki i jak należy je zoptymalizować? Co najważniejsze, od czego zacząć?

ten post zawiera przewodnik na wysokim poziomie, jak myśleć o skonfigurowaniu hurtowni danych, aby uniknąć typowych pułapek.

co to jest hurtownia danych?

nowoczesny biznes Zazwyczaj Ma dane przechowywane w różnych miejscach (źródła danych). Mogą to być dane z:

  • bazy danych aplikacji: dla startupów jest to prawdopodobnie ich podstawowe zastosowanie produktu. Dla innych firm, może to być ich aplikacja punkt sprzedaży,
  • aplikacje internetowe: mogą to być aplikacje, które są potrzebne do skalowania firmy lub utrzymania operacji biznesowych. Przykładem może być oprogramowanie do marketingu e-mail, takie jak Mailchimp, aplikacje do analizy stron internetowych, takie jak Google Analytics lub Mixpanel, a nawet oprogramowanie księgowe, takie jak Xero i Quickbooks.
  • arkusze kalkulacyjne: mogą to być arkusze kalkulacyjne na pulpicie (Excel, CSV) lub arkusze kalkulacyjne online, takie jak Arkusze Google. Dane te mogą być aktualizowane ręcznie przez inną osobę lub aktualizowane przez działanie zapiera.

hurtownia danych synchronizuje dane z różnych źródeł w jednym miejscu dla wszystkich potrzeb raportowania danych.

dostarcza dane, którym można zaufać, że są wiarygodne, i może obsłużyć obciążenie pracą wszystkich pracowników w firmie.

projektowanie hurtowni danych

przeczytaj także: kiedy należy uzyskać hurtownię danych?

oto jak wygląda typowa konfiguracja hurtowni danych:

projektujesz i budujesz hurtownię danych w oparciu o swoje wymagania raportowania. Po zidentyfikowaniu potrzebnych danych projektujesz je tak, aby przepływały do Twojej hurtowni danych.

Utwórz schemat dla każdego źródła danych

Utwórz schemat bazy danych dla każdego źródła danych, które chcesz zsynchronizować z bazą danych. To

  1. pomaga szybko zidentyfikować źródło danych, z którego pochodzi każda tabela, co pomaga w miarę wzrostu liczby źródeł danych. Przyszli analitycy danych i członkowie zespołu biznesowego, którzy dołączą do Twojej firmy, mogą również szybko dowiedzieć się, co ma każde źródło danych.
  2. pozwala przypisać określone uprawnienia (Odczyt/Zapis) dla każdego źródła danych. Na przykład inżynier danych może nie chcieć pozwolić młodszemu analitykowi tylko czytać, ale nie pisać do określonego schematu.

jest to szczególnie przydatne, gdy liczba źródeł danych rośnie w czasie. Wystarczy spojrzeć na liczbę źródeł, w których mogą znajdować się Twoje dane.

na przykład możesz skonfigurować schemat o nazwiemailchimpxero lubfbads dla danych e-mail marketingu, finansów i reklam, które chcesz zaimportować z tych aplikacji do magazynu.

podczas importowania tabeli kontaktów z Mailchimp do bazy danych, możesz
wysłać zapytanie jako:

SELECT name, email FROM mailchimp.contacts

Jak utworzyć schemat

tworzenie schematu jest łatwe. Wystarczy wpisać wiersz, aby utworzyć nowy schemat. W rzeczywistości to tylko 3 słowa w Postgres.

CREATE SCHEMA 

przykład:

CREATE SCHEMA mailchimp

Uwaga 1: nowi analitycy mogą pomylić schemat bazy danych. Istnieją 2 definicje schematu. Schemat może być używany do opisania

  1. , w jaki sposób tabele i pola w bazie danych są ze sobą powiązane, lub
  2. folder dla tabel bazy danych, tak jak foldery organizują pliki

Uwaga 2: bazy danych mySQL nie obsługują schematu, więc możesz użyć konwencji nazewnictwa, aby nazwać importowane tabele, takie jak mailchimp_contacts itp. To jeden z powodów, dla których zachęcamy naszych klientów do korzystania z PostgreSQL w swojej bazie raportów.

przenoszenie danych źródłowych do hurtowni danych

następnym krokiem jest zsynchronizowanie danych źródłowych z hurtownią danych. Twoi inżynierowie mogą to wiedzieć jako skrypt ETL.

Zaprojektuj skrypt importu z następującymi względami:

  1. Usuń niepotrzebne kolumny. Nie jest ci trudno dodać je później, jeśli zdasz sobie sprawę, że ich potrzebujesz.
  2. Zmień nazwy kolumn, aby były bardziej opisowe lub przyjazne dla bazy danych (na przykład przy użyciu małych liter lub wielbłąda.
  3. odfiltruj oczywiście niepotrzebne rekordy. Może to być zapisywanie testów użytkowników wewnętrznych w systemie produkcyjnym (Czasami użytkownicy mogą dodawać dane, takie jak [email protected] lub ustawiając ich imię jako testy)
  4. Mapuj wartości rekordów, aby były bardziej czytelne. Pozwala to zaoszczędzić analitykom wysiłku zmieniając ich nazwy podczas raportowania za pomocą CASE-IFs później). Na przykład niektóre rekordy mogą przechowywać klucze numeryczne (1,2,3, 99 itd.) lub skrócone nazwy, które mogą nie być znane reszcie organizacji. W takich przypadkach możesz zmapować te klucze do ich rzeczywistych wartości podczas procesu importowania.
  5. Zastosuj indeksy bazy danych do tabeli docelowej po zakończeniu importu. Uwaga o tym, jakie są indeksy baz danych pisaliśmy we wcześniejszym poście.
  6. Obsługa błędów: Skonfiguruj wiadomość e-mail//Slack alert, która będzie wysyłana do odpowiednich interesariuszy (zwłaszcza analityków danych) ze szczegółowymi dziennikami błędów, gdy zadanie nie powiedzie się. Możesz skonfigurować automatyczne próby ponowienia próby (lub zautomatyzowane procesy odzyskiwania) w określonym czasie, aby zmniejszyć liczbę fałszywych alarmów w tym przypadku.

czy należy przekształcić dane źródłowe (surowe)?

jednym z Często zadawanych nam pytań jest jak zastosować transformacje danych przed przeniesieniem danych do magazynu.

via GIPHY

nasza ogólna rada to nie robić. Przynajmniej nie na początku. Zwłaszcza jeśli jest to twój pierwszy projekt hurtowni danych. Jest kilka powodów.

a. Jest mało prawdopodobne, że masz jasne wymagania dotyczące Twoich potrzeb transformacji danych

nawet jeśli otrzymasz „jasne wymagania”, jest prawdopodobne, że wymóg ten zmieni się w trakcie projektu lub stanie się Nieaktualny.

nie będziesz chciał tracić czasu na przeglądanie skryptu ETL w oparciu o to, czego chcą różni interesariusze w różnych momentach.

przeniesienie (nieprzetransformowanych) danych źródłowych pomaga oddzielić zależność skryptu ETL od „wymagań biznesowych”.

b. Prawdopodobnie potrzebujesz danych źródłowych dla innych przypadków

pomyśl o swoich danych źródłowych jako podstawie interakcji, którą można uzyskać w wielu tabelach pochodnych, albo poprzez agregację ich wzdłuż różnych wymiarów lub połączenie ich z tabelami z innych źródeł.

zobacz przykład poniżej, jak śledzić skuteczność konwersji sprzedawcy.

podczas przekształcania danych tracisz szczegóły z danych źródłowych, które mogą być potrzebne do przyszłego raportowania przypadków użycia.

na przykład, gdy podsumowujesz przychody ze sprzedaży według okresu czasu, tracisz szczegóły konkretnych rekordów transakcji, które inny użytkownik może potrzebować skorelować z innymi raportami.

przenoszenie nieprzetransformowanych danych źródłowych zapewnia elastyczność łączenia ich z innymi źródłami danych.

zapotrzebowanie na dane źródłowe staje się ważniejsze, gdy zaczynasz szukać modeli danych wielokrotnego użytku, aby odpowiedzieć na różne pytania. Zobacz przykład poniżej na raport kohortowy jest zbudowany z serii danych po transformacji. Będzie to trudniejsze do zrobienia, jeśli nie masz

c. Zmniejsz obciążenie systemów źródłowych

uruchamianie przekształceń danych w systemie źródłowym może wymagać znacznych zasobów, zwłaszcza jeśli posiadasz bazę danych obsługującą klientów na całym świecie.

nie będziesz chciał przeciążać go długotrwałymi zadaniami transformacji danych przed ich przeniesieniem.

istnieje kilka przypadków, które mogą mieć sens, aby przekształcić dane przed ich przeniesieniem, ale te przypadki są zazwyczaj dla firm, które już skonfigurowały niezawodną hurtownię danych i chcą ją dalej ulepszać.

Przekształć dane, aby rozwiązać konkretny problem

myślenie o tym, jak przekształcić dane, może być złożone. Jeśli pozostaniesz niezaznaczony, możesz poświęcić dużo czasu na optymalizację danych, które nie dostarczają wartości firmie.

planowanie, projektowanie i wdrażanie transformacji danych bez wyraźnego rezultatu jest rozwiązaniem szukającym problemu.

jedną z dobrych zasad jest zacząć od końca w umyśle. Transformacje danych powinny być tworzone tylko w celu rozwiązania praktycznego przypadku użycia lub problemu z raportowania.

dobrym sposobem na znalezienie (i ustalenie priorytetów) tych praktycznych przypadków użycia jest rozpoczęcie budowania raportów i pulpitów nawigacyjnych z importowanymi danymi.

gdy użytkownicy zaczną zgłaszać problemy z wydajnością zapytań, możesz rozważyć przekształcenie danych.

może to być spowodowane raportami, że
(a) Zawiera zagnieżdżone podzapytania lub niestandardowe wyrażenia tabeli (CTE)

(b) lub mają wiele (kosztownych) połączeń w wielu tabelach.

tutaj elastyczność raportów opartych na SQL przydaje się, aby pomóc zidentyfikować problemy, które może rozwiązać transformacja danych.

każdy analityk może łatwo zidentyfikować główną przyczynę raportów z długotrwałymi zapytaniami i rozpocząć optymalizację ich wydajności.

odbywa się to głównie poprzez automatyczne wstępne agregowanie danych. Można to zrobić za pomocą zmaterializowanych widoków, w których można tworzyć dane przekształcające zadania, które:

  1. agregują Duże tabele transakcji, aby przyspieszyć wydajność zapytań.
  2. Tworzenie pochodnych tabel z kolumnami z różnych źródeł danych
  3. Zastąp / zamaskuj wrażliwe dane dla wybranych grup użytkowników.

kolejnym zaleceniem jest utworzenie nowego schematu bazy danych w hurtowni danych w celu przechowywania przekształconych (lub przetworzonych) tabel.

podobnie jak wcześniejsze podejście do oddzielania każdego źródła danych według schematów, tworzenie określonego schematu może pomóc w zidentyfikowaniu listy pochodnych/przekształconych tabel danych. Będzie to pomocne później, gdy zaczniesz ciąg serii importów danych, dane przekształcają zadania w kolejności w miarę wzrostu dojrzałości danych.

Utwórz wewnętrzne dokumenty danych

jest to ważne, zwłaszcza jeśli nie chcesz, aby hurtownia danych była czarną skrzynką, w której tylko kilku inżynierów rozumie, jak z niej korzystać. Jeśli Twoi użytkownicy tego nie rozumieją, nie będą pewni, że go zapytają.

możesz zacząć od utworzenia udostępnionego dokumentu (może to być Google Doc), który opisuje wspólne zrozumienie:

  • tabele i kolumny w danych źródłowych i jak je zinterpretować
  • Dołącz diagram danych, jeśli istnieje.
  • Jak odczytać kolumny w raportach (pulpit nawigacyjny, metryki) i wszelkie podstawowe założenia za nimi

za każdym razem, gdy raport jest tworzony (lub aktualizowany), zaktualizuj ten dokument, aby odzwierciedlić nowy poziom biznesowego zrozumienia danych.

Więcej szczegółów na temat tworzenia i struktury tego wewnętrznego dokumentu danych podzielimy się w osobnym poście, więc uważaj na tę przestrzeń!

to jest to!

mamy nadzieję, że ten przewodnik był pomocny! Daj nam znać, jak możemy pomóc ci zbudować niezawodną hurtownię danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.