Ręczne testowanie potoku danych

ETL i ELT w Pythonie

Jake Roach

Data Engineer

Testowanie potoków danych

Potoki danych trzeba dokładnie testować

  • Sprawdzaj, czy dane są pobierane, przekształcane i wczytywane zgodnie z oczekiwaniami

$$

Walidacja potoków ogranicza nakład pracy po wdrożeniu

  • Wykrywaj i naprawiaj problemy z jakością danych
  • Zwiększa niezawodność danych

Narzędzia i techniki testowania potoków danych

  • Testowanie end-to-end
  • Walidacja danych w „punktach kontrolnych"
  • Testy jednostkowe
ETL i ELT w Pythonie

Środowiska testowe i produkcyjne

Środowiska testowe i produkcyjne do budowania i uruchamiania potoków danych.

ETL i ELT w Pythonie

Testowanie potoku end-to-end

Testowanie end-to-end potoku danych.

Testowanie end-to-end

  • Sprawdzaj, czy potok działa poprawnie przy wielokrotnym uruchamianiu
  • Waliduj dane w punktach kontrolnych potoku
  • Przeprowadzaj przegląd kodu i uwzględniaj informacje zwrotne
  • Upewnij się, że odbiorcy mają dostęp do rozwiązania i są z niego zadowoleni
ETL i ELT w Pythonie

Walidacja punktów kontrolnych potoku

# Extract, transform, and load data as part of a pipeline
...

# Take a look at the data made available in a Postgres database
loaded_data = pd.read_sql("SELECT * FROM clean_stock_data", con=db_engine)
print(loaded_data.shape)
(6438, 4)
print(loaded_data.head())
         timestamps      volume      open     close                            
1997-05-15 13:30:00  1443120000  0.121875  0.097917
1997-05-16 13:30:00   294000000  0.098438  0.086458
1997-05-19 13:30:00   122136000  0.088021  0.085417
ETL i ELT w Pythonie

Walidacja DataFrame'ów

# Extract, transform, and load data, as part of a pipeline
...

# Take a look at the data made available in a Postgres database
loaded_data = pd.read_sql("SELECT * FROM clean_stock_data", con=db_engine)

# Compare the two DataFrames.
print(clean_stock_data.equals(loaded_data))
True
ETL i ELT w Pythonie

Czas na praktykę!

ETL i ELT w Pythonie

Preparing Video For Download...