Co to jest ELT?

co to jest ETL

Co to jest ETL? To przeniesienie danych z jednego miejsca do drugiego i nadanie im oczekiwanej struktury. O ETL’u mówimy w kontekście przetwarzania zbiorów danych i budowaniu hurtowni danych lub data lake.

ETL służy do integracji i transformacji danych.

Wysoko poziomowo:
Na wejściu masz dane.
Przekształcasz je.
Zapisujesz.

Wynikiem ETL’a są przekształcone dane.

Po co jest ETL? Na przykład, żeby pobrać dane z systemu transakcyjnego i zapisać w hurtowni danych i potem stworzyć na podstawie tych danych raport. Pobierasz dane o zamówienia i klientach. Tworzysz zestawienie sprzedaży klienta. Dane do raportu aktualizujesz codziennie

Dodając więcej kontekstu:
Wynikiem ETL są uporządkowane dane. Mogą tworzyć wymiar lub tabelę faktów. Połączenie wymiarów i faktów tworzy większą strukturę: hurtownia danych.

Read More

Zwinna hurtownia danych

zwinna hurtownia danych

Przenosząc rozwiązanie hurtowni danych do chmury, masz gotowy ból głowy.

Jak się odnaleźć w nowym środowisku? Jak dostarczyć tam dane? Jaką usługę wybrać? Jak przechowywać dane? Jak przetwarzać dane? Jak ustawić model dostępu do danych?

I jeszcze jedno wielkie pytanie:

Jak nie zbankrutować?

W niektórych przypadkach rozwiązaniem jest zwinna hurtownia danych.

Zwinna hurtownia danych to taka, która nie opiera się o bazę danych. Dane przechowuje w systemie plików, może to być na przykład Data Lake w chmurze (np. Azure Data Lake Gen 2 [nazewnictwo aktualne na kwiecień 2022]).

Zdecydowaną zaletą takiego rozwiązania jest niska cena.

Jak określić, czy taka hurtownia będzie dobra właśnie dla Ciebie?

Read More

Czym zajmuje się Data Engineer i Data Analyst?

czym zajmuje się data engineer

W dużej organizacji systemów przechowujących dane jest wiele.

Użytkowników korzystających z tych systemów jest jeszcze więcej.

Użytkownicy mają wiele potrzeb i problemów, które dane mogą rozwiązać.

Ale tutaj uwaga. Nie patrz na dane pod kątem jednego systemu.

On znajdują się w wielu systemach i dopiero, gdy uzupełnimy jedne dane drugimi możemy uzyskać pełniejszy obraz.

Jeden system prezentuje wąski wycinek rzeczywistości – możesz powiedzieć jeden piksel.

Bardziej to zaciemnia, niż umożliwia na odpowiedź na kluczowe pytania. Potrzebujesz zobaczyć szerszy kontekst i zobaczyć dane i systemy holistycznie.

Do skomplikowanej pracy z danymi do ich integracji i potem analizy, odpowiedzi na kluczowe pytania, potrzebni są specjaliści.

I to właśnie o bohaterowie dzisiejszego odcinka:

Data Engineer i Data Analyst, tworzą pełniejszy obraz świata.

Czym zajmuje się Data Engineer?

Read More

4 ways to improve Impala performance

impala performance

Useful Impala commands that you can use to improve queries performance are:

COMPUTE STATS

SET MEM_LIMIT

CREATING TEMP TABLE

Those statements will make your code smarter.

Performance will be greater and your managers, users and DB’s will be happy to work with you.

INSERT OVERWRITE – will make your life much easier when handling deletes.

Continue reading to know when it is good to apply those statements.

Read More

How to delete small portion of data from BIG table?

You have a big table. The biggest in your system.

You may say big table, big fun but also in some situation a big challenge.

The manager gives you a task:

  • Delete a small portion of data from this table. Only about 1% of rows need to be removed.
  • How would you approach this task?

    What query will you build? How would you minimize logical reads? Would you approach this task differently if it was a one time activity or task executed on a regular basis?

    Consider: is this table used exclusively used by you? Maybe in parallel, some other process execute inserts into this table?

    Continue reading to see how to delete data in batch on SQL Server.

    Read More

    How to remove duplicates using window function?

    Removing duplicates, is a challenging task.

    Sometimes you need something special. Using DISTINCT/ GROUP BY / UNION is not enough.

    You need to remove duplicates is some other way: using window function:

    You can do it using following query:

    WITH loc_dim AS (
    SELECT 
      ROW_NUMBER() OVER (PARTITION BY u.Location ORDER BY u.Id) AS RowNumber, u.Location
    FROM dbo.Users u
    )
    SELECT loc.Location FROM loc_dim loc
    WHERE loc.RowNumber = 1

    If you would like to see how input data looks like. What is the expected result. When this approach might not be a good idea. Please continue reading.

    Read More

    Dobre praktyki SQL: złączenia INNER JOIN czy w klauzuli WHERE?

    Problem: Jak połączyć dwie tabele w SQL’u? Ma to być złączenie równościowe (INNER JOIN). Tylko rekordy, które spełniają warunek złączenia mają być wybrane. Nic więcej, nic mniej.

    Jak zapisać złączenie między nimi? Jaka jest dobra praktyka? Jak stworzyć kod, który będzie łatwy w utrzymaniu, rozbudowie i czytelny dla innych członków zespołu?

    Możliwości:
    1. Użyj klauzuli: INNER JOIN

    FROM dbo.Users usr
    INNER JOIN dbo.Posts post ON (post.OwnerUserId = usr.Id)

    2. Wymień tabele, które chcesz złączyć w zaraz za FROM i później wykonaj złączenia w WHERE

    FROM dbo.Users usr, dbo.Posts post
    WHERE post.OwnerUserId = usr.Id

    Rozwiązanie: Użyj INNER JOIN – składnia jest bardziej czytelna a kod będzie łatwiejszy w utrzymaniu i debugowaniu. Argumenty znajdziesz poniżej.

    Read More

    How to audit staging area?

    audit staging

    Imagine that it is your first day in new company. Your manager is giving you an ambitious plan of restructuring the current Data Warehouse design.

    He said that it is probably not a task for this week, but in 3 months he would like to have some proposal from you. He points some people that you might talk to.

    You would like to make this process efficient. Imagine a set of questions that you could as to help you solve this puzzle.

    How to create a DWH inventory? How to start? What to look for? What are the red flags?

    Time is already ticking.

    Let’s have a good checklist for Staging layer at the beginning.

    Read More

    Co to jest CTE?

    Problem: Jak napisać zapytanie SQL w przejrzysty sposób. Będzie ono czytelne dla innych. Dodatkowo, gdy wrócisz do niego po kilku miesiącach też będzie dla Ciebie zrozumiałe.
    W przypadku zmiany wymagań da się łatwo dostosować do nowych potrzeb. Będzie łatwe w utrzymaniu i rozbudowie.

    Rozwiązanie: użyj Common Table Expressions (CTE), żeby napisać czytelny kod.

    Read More

    Jak usunąć dane z tabeli bez DELETE?

    Problem

    Usuń dane z tabeli bez używania polecenia DELETE. Użytkownik nie chce widzieć danych starszych niż 30 dni.

    Tło biznesowe

    Do tabeli faktów masz już załadowane 2 lata danych. Biznes dochodzi do wniosku, że z nie sięga tak daleko w historię. Nie są im te dane potrzebne. Albo na potrzeby zgodności z audytem (audit complience) powinny zostać usunięte.

    Tło techniczne

    Użycie polecenia DELETE nie wchodzi w grę, ponieważ:
    – Nie jest efektywne
    – Niektóre silniki bigdata nie wspierają operacji DELETE. Do data laka możesz dołączać dane. Usuwanie trzeba zaimplementować w inny sposób.

    To jak zaimplementować usuwanie bez użycia DELETE?

    Read More