-
nowość
Snowflake. Nowoczesna inżynieria danych w praktyce - ebook
Snowflake. Nowoczesna inżynieria danych w praktyce - ebook
Pozycja obowiązkowa, jeżeli chcesz osiągnąć wyżyny w dziedzinie inżynierii danych!
Isabella Renzetti, ekspertka z dziedziny analizy danych
Snowflake jest kompleksową platformą chmurową do przechowywania i analizy danych. Oferuje niemal nieograniczoną skalowalność i szybkie, elastyczne usługi obliczeniowe. Umożliwia tworzenie i rozwijanie potoków danych, a jej nowe funkcjonalności, takie jak wyszukiwanie wektorowe, automatyczne konwersje tekstu do SQL czy generowanie kodu, korzystają z technik AI. Jeśli pracujesz z danymi, Snowflake otwiera przed tobą zupełnie nowe możliwości.
Niesamowita książka! Przejdziesz od zera do środowiska produkcyjnego Snowflake!
Doyle Turner, Microsoft
Z tą książką krok po będziesz rozwijać umiejętności potrzebne do codziennych zadań z zakresu inżynierii danych w Snowflake. Utworzysz swój pierwszy potok, a potem będziesz go rozbudowywać o coraz bardziej zaawansowane funkcje: zarządzanie danymi i bezpieczeństwem, integrację CI/CD czy wzbogacanie danych przy użyciu generatywnej AI. To praktyczny poradnik pełen kodu, przykładów i wskazówek, które pozwolą Ci w krótkim czasie wejść na zupełnie nowy poziom pracy z danymi.
Wyczerpująca, aktualna i wypełniona praktycznymi fragmentami kodu!
Albert Nogues, Danone
W książce:
- wprowadzanie danych z usług chmurowych za pomocą API lub z Snowflake Marketplace
- orkiestracja potokami danych za pomocą strumieni i zadań
- optymalizacja wydajności i kosztów
- projektowanie mechanizmów kontroli dostępu i ochrony danych
- wdrażanie ciągłe oraz ciągła integracja obiektów i kodu Snowflake
- wzbogacanie danych za pomocą generatywnej AI
Nauczysz się opracowywać ekonomiczne rozwiązania. Lektura obowiązkowa!
Frederic LAnglais, Maxa
Mistrzostwo! Odkryjesz rzeczywisty potencjał platformy Snowflake!
Shankar Narayanan, Microsoft
Spis treści
Przedmowa
Wstęp
Podziękowania
O książce
Informacje o autorce
Część I. Wprowadzenie do inżynierii danych z wykorzystaniem platformy Snowflake
- 1. Inżynieria danych w środowisku Snowflake
- 1.1. Snowflake a inżynieria danych
- 1.1.1. Architektura Snowflake'a
- 1.1.2. Funkcje Snowflake'a używane w inżynierii danych
- 1.2. Obowiązki inżyniera danych w Snowflake'u
- 1.2.1. Pozyskiwanie danych z systemów źródłowych
- 1.2.2. Przekształcanie danych
- 1.2.3. Udostępnianie danych odbiorcom końcowym
- 1.2.4. Stosowanie podstawowych składników
- 1.3. Budowanie potoków danych
- 1.4. Inżynieria danych w zastosowaniach Snowflake'a
- Podsumowanie
- 1.1. Snowflake a inżynieria danych
- 2. Tworzenie pierwszego potoku danych
- 2.1. Konfigurowanie konta Snowflake'a
- 2.2. Umieszczanie pliku CSV w etapie
- 2.3. Wczytywanie danych z pliku przejściowego do tabeli docelowej
- 2.3.1. Wczytywanie danych z pliku przejściowego do tabeli przejściowej
- 2.3.2. Scalanie danych z tabeli przejściowej w tabelę docelową
- 2.4. Przekształcanie danych za pomocą poleceń SQL
- 2.5. Automatyzowanie procesu za pomocą zadań
- Podsumowanie
Część II. Wprowadzanie, przekształcanie i przechowywanie danych
- 3. Dobre praktyki przygotowywania danych
- 3.1. Tworzenie etapów zewnętrznych
- 3.1.1. Konfigurowanie integracji magazynu danych
- 3.1.2. Tworzenie etapu zewnętrznego z użyciem integracji magazynu danych
- 3.1.3. Tworzenie etapu zewnętrznego z użyciem poświadczeń
- 3.1.4. Wczytywanie danych z plików przejściowych do tabeli przejściowej
- 3.1.5. Zapobieganie powielaniu danych podczas wczytywania z plików przejściowych
- 3.1.6. Używanie nazwanego formatu pliku
- 3.2. Przeglądanie metadanych etapów przy użyciu tabel katalogowych
- 3.3. Przygotowywanie plików danych do efektywnego wprowadzania
- 3.3.1. Zalecenia dotyczące rozmiaru plików
- 3.3.2. Organizowanie danych według ścieżek
- 3.4. Tworzenie potoków danych z wykorzystaniem tabel zewnętrznych
- 3.4.1. Kwerendowanie danych z etapów zewnętrznych za pomocą tabel zewnętrznych
- 3.4.2. Wykorzystywanie widoków zmaterializowanych do poprawy wydajności kwerend
- Podsumowanie
- 3.1. Tworzenie etapów zewnętrznych
- 4. Przekształcanie danych
- 4.1. Pozyskiwanie częściowo ustrukturyzowanych danych z magazynu chmurowego
- 4.1.1. Tworzenie integracji magazynu danych
- 4.1.2. Tworzenie etapu zewnętrznego
- 4.1.3. Analiza struktury JSON
- 4.1.4. Wczytywanie danych JSON do typu VARIANT
- 4.2. Spłaszczanie danych półstrukturalnych do tabel relacyjnych
- 4.3. Hermetyzacja przekształceń za pomocą procedur składowanych
- 4.3.1. Tworzenie prostej procedury składowanej
- 4.3.2. Uwzględnianie zwracanej wartości w procedurze składowanej
- 4.3.3. Implementacja obsługi wyjątków w procedurach składowanych
- 4.4. Dodawanie rejestrowania zdarzeń do procedur składowanych
- 4.5. Budowanie niezawodnych potoków danych
- Podsumowanie
- 4.1. Pozyskiwanie częściowo ustrukturyzowanych danych z magazynu chmurowego
- 5. Ciągłe wprowadzanie danych
- 5.1. Porównanie masowego i ciągłego pobierania danych
- 5.2. Przygotowywanie plików w magazynie chmurowym
- 5.2.1. Tworzenie integracji magazynu danych
- 5.2.2. Tworzenie etapu zewnętrznego
- 5.3. Konfigurowanie usługi Snowpipe z powiadomieniami w chmurze
- 5.3.1. Konfigurowanie komunikatów Event Grid dla zdarzeń magazynu obiektów blob
- 5.3.2. Tworzenie integracji powiadomień
- 5.3.3. Tworzenie obiektu pipe
- 5.3.4. Ciągłe pobieranie danych
- 5.3.5. Spłaszczanie struktury JSON do formatu relacyjnego
- 5.4. Przekształcanie danych za pomocą tabel dynamicznych
- Podsumowanie
- 6. Natywne wykonywanie kodu z wykorzystaniem usługi Snowpark
- 6.1. Wprowadzenie do usługi Snowpark
- 6.2. Tworzenie procedury Snowpark w arkuszu
- 6.3. Korzystanie z interfejsu API SQL w lokalnym środowisku programistycznym
- 6.3.1. Instalowanie i konfigurowanie lokalnego środowiska programistycznego
- 6.3.2. Tworzenie sesji Snowflake'a
- 6.3.3. Przechowywanie danych uwierzytelniających w pliku konfiguracyjnym
- 6.3.4. Obsługa kwerend danych i poleceń SQL
- 6.4. Tworzenie wymiaru dat w usłudze Snowpark Python
- 6.5. Praca z ramkami danych
- 6.6. Wczytywanie danych z pliku CSV do tabeli Snowflake'a
- 6.7. Przekształcanie danych przy użyciu ramek danych
- Podsumowanie
- 7. Rozszerzanie zestawów danych wynikami z dużych modeli językowych
- 7.1. Konfigurowanie dostępu do sieci zewnętrznej
- 7.2. Wywoływanie punktu końcowego API z poziomu usługi Snowpark
- 7.2.1. Tworzenie funkcji UDF do pobierania opinii klientów
- 7.2.2. Interpretacja wyników funkcji UDF
- 7.2.3. Przechowywanie opinii w tabeli
- 7.3. Analiza nastrojów w opiniach klientów
- 7.4. Interpretacja e-maili z zamówieniami przy użyciu modeli językowych w celu zaoszczędzenia czasu
- 7.4.1. Tworzenie procedury składowanej do interpretowania e-maili od klientów
- 7.4.2. Tworzenie zapytania
- 7.4.3. Zapisywanie wyniku w tabeli CSV
- 7.4.4. Ocena wyników
- Podsumowanie
- 8. Optymalizowanie wydajności kwerend
- 8.1. Pobieranie danych z platformy Snowflake Marketplace
- 8.2. Analiza danych geograficznych
- 8.2.1. Funkcje geograficzne Snowflake'a
- 8.2.2. Kopiowanie danych z udostępnionej bazy danych
- 8.2.3. Przeglądanie parametrów wykonania zapytań przy użyciu profilu kwerendy
- 8.3. Mikropartycje w Snowflake'u
- 8.3.1. Koncepcyjny przykład mikropartycji
- 8.3.2. Selektywne pomijanie mikropartycji
- 8.4. Optymalizacja magazynu pamięci za pomocą klasteryzacji
- 8.4.1. Przeglądanie informacji o klasteryzacji
- 8.4.2. Dodawanie kluczy klasteryzacji do tabeli
- 8.4.3. Monitorowanie procesu klasteryzacji
- 8.4.4. Analiza poprawy wydajności kwerend po klasteryzacji
- 8.5. Zwiększanie wydajności kwerend poprzez optymalizację wyszukiwania
- 8.5.1. Dodawanie optymalizacji wyszukiwania do tabeli
- 8.5.2. Analiza wydajności kwerend po zastosowaniu optymalizacji wyszukiwania
- 8.6. Ogólne wskazówki dotyczące poprawy wydajności kwerend
- 8.6.1. Pisanie wydajnych kwerend SQL
- 8.6.2. Identyfikowanie kwerend nadających się do optymalizacji
- Podsumowanie
- 9. Kontrolowanie kosztów
- 9.1. Kwestia kosztów w Snowflake'u
- 9.1.1. Całkowity koszt korzystania ze Snowflake'a
- 9.1.2. Koszty zasobów obliczeniowych
- 9.1.3. Kredyty magazynu wirtualnego
- 9.2. Dobór rozmiaru wirtualnych magazynów danych
- 9.2.1. Korzystanie z utrwalonych wyników kwerend
- 9.2.2. Porównywanie statystyk kwerend dla magazynów danych o różnych rozmiarach
- 9.2.3. Optymalizacja wydajności kwerend w celu ograniczenia przelewania danych
- 9.3. Optymalizacja wydajności za pomocą buforowania danych
- 9.3.1. Prezentacja pamięci podręcznej metadanych
- 9.3.2. Efektywne wykorzystanie pamięci podręcznej magazynu danych
- 9.4. Redukowanie kolejkowania zapytań
- 9.4.1. Analiza kolejkowania
- 9.4.2. Ograniczanie liczby jednocześnie wykonywanych kwerend
- 9.5. Monitorowanie zużycia mocy obliczeniowej
- Podsumowanie
- 9.1. Kwestia kosztów w Snowflake'u
- 10. Zarządzanie danymi i kontrola dostępu
- 10.1. Kontrola dostępu oparta na rolach
- 10.1.1. Gotowe role systemowe
- 10.1.2. Role niestandardowe
- 10.1.3. Projektowanie modelu RBAC
- 10.2. Zabezpieczanie danych za pomocą zasad dostępu do wierszy
- 10.3. Ochrona danych za pomocą zasad maskowania
- Podsumowanie
- 10.1. Kontrola dostępu oparta na rolach
Część III. Budowanie potoków przetwarzania danych
- 11. Projektowanie potoków danych
- 11.1. Projektowanie potoków danych
- 11.1.1. Wyodrębnianie danych
- 11.1.2. Porównanie wzorców potoków danych
- 11.1.3. Wybór warstw przekształcania danych
- 11.1.4. Organizacja warstw przechowywania danych
- 11.1.5. Tworzenie schematów z kontrolą dostępu
- 11.2. Budowanie przykładowego potoku danych
- 11.2.1. Implementacja warstwy wydobywania
- 11.2.2. Implementacja warstwy przygotowywania etapów
- 11.2.3. Implementacja warstwy hurtowni danych
- 11.2.4. Implementacja warstwy tworzenia raportów
- Podsumowanie
- 11.1. Projektowanie potoków danych
- 12. Przyrostowe pobieranie danych
- 12.1. Porównanie metod pobierania danych
- 12.1.1. Pełne pobieranie danych
- 12.1.2. Przyrostowe pobieranie danych
- 12.2. Przechowywanie historii z wykorzystaniem wymiarów wolnozmiennych
- 12.2.1. Wymiary wolnozmienne typu drugiego
- 12.2.2. Strategia dopisywania
- 12.2.3. Projektowanie idempotentnych potoków danych
- 12.3. Wykrywanie zmian za pomocą strumieni Snowflake'a
- 12.3.1. Przyrostowe pobieranie plików z magazynu chmurowego
- 12.3.2. Przechowywanie historii w trakcie przyrostowego pobierania danych
- 12.4. Zarządzanie danymi w tabelach dynamicznych
- 12.4.1. Kiedy stosować tabele dynamiczne?
- 12.4.2. Kwerendowanie danych historycznych
- Podsumowanie
- 12.1. Porównanie metod pobierania danych
- 13. Orkiestracja potoków danych
- 13.1. Orkiestracja zadań w Snowflake'u
- 13.1.1. Tworzenie schematu przechowującego obiekty orkiestracji
- 13.1.2. Projektowanie zadań orkiestracji
- 13.1.3. Tworzenie zadań przy użyciu zależności
- 13.2. Wysyłanie powiadomień e-mail
- 13.3. Orkiestracja za pomocą grafów zadań
- 13.3.1. Projektowanie grafu zadań
- 13.3.2. Tworzenie zadania głównego
- 13.3.3. Tworzenie zadania finalizującego
- 13.3.4. Wyświetlanie grafu zadań
- 13.4. Monitorowanie wykonywania potoków danych
- 13.4.1. Dodawanie funkcji dziennika zdarzeń do zadań
- 13.4.2. Podsumowanie informacji z dzienników w powiadomieniu e-mailowym
- 13.5. Rozwiązywanie problemów z awariami potoku danych
- Podsumowanie
- 13.1. Orkiestracja zadań w Snowflake'u
- 14. Kontrola integralności i kompletności danych
- 14.1. Metody testowania danych
- 14.1.1. Wykonywanie testów danych jako etapów w potoku
- 14.1.2. Przeprowadzanie testów danych niezależnie od potoku
- 14.2. Włączanie kroków testowania danych do potoku
- 14.2.1. Tworzenie zadania sprawdzania jakości danych o kontrahentach
- 14.2.2. Tworzenie zadania oceny jakości danych
- 14.2.3. Uruchamianie potoku z zadaniami testowania danych
- 14.3. Stosowanie funkcji pomiarowych Snowflake'a
- 14.3.1. Wbudowane funkcje wskaźników danych
- 14.3.2. Funkcje wskaźnikowe zdefiniowane przez użytkownika
- 14.3.3. Przeglądanie szczegółów funkcji wskaźnikowych
- 14.4. Powiadamianie użytkowników o przekroczeniu progów wskaźników
- 14.5. Wykrywanie anomalii w woluminach danych
- 14.5.1. Generowanie danych losowych
- 14.5.2. Prezentowanie danych w formie wykresu liniowego w interfejsie Snowsight
- 14.5.3. Praca z modelem wykrywania anomalii
- Podsumowanie
- 14.1. Metody testowania danych
- 15. Ciągła integracja potoków danych
- 15.1. Rozdzielanie środowisk inżynierii danych
- 15.2. Zarządzanie zmianami w bazie danych
- 15.2.1. Porównanie podejścia imperatywnego i deklaratywnego w DCM
- 15.2.2. Organizowanie kodu w repozytorium
- 15.3. Konfigurowanie Snowflake'a do współpracy z systemem Git
- 15.3.1. Tworzenie repozytorium Git
- 15.3.2. Wykonywanie poleceń z etapu repozytorium Git
- 15.4. Korzystanie z interfejsu wiersza poleceń Snowflake CLI
- 15.4.1. Instalowanie i konfigurowanie interfejsu wiersza poleceń Snowflake'a
- 15.4.2. Uruchamianie skryptów za pomocą Snowflake CLI
- 15.4.3. Ciągła integracja z wykorzystaniem interfejsu Snowflake CLI
- 15.5. Bezpieczne łączenie się z platformą Snowflake
- 15.5.1. Konfigurowanie uwierzytelniania za pomocą pary kluczy
- 15.6. Stosowanie zdobytej wiedzy w rzeczywistych scenariuszach
- Podsumowanie
Dodatek A. Konfiguracja środowiska Snowflake
Dodatek B. Obiekty Snowflake'a wykorzystane w ćwiczeniach
| Kategoria: | Bazy danych |
| Zabezpieczenie: |
Watermark
|
| ISBN: | 978-83-289-2899-2 |
| Rozmiar pliku: | 12 MB |