Udostępnij za pośrednictwem


Najlepsze rozwiązania dotyczące doskonałości operacyjnej

W tym artykule opisano najlepsze rozwiązania dotyczące doskonałości operacyjnej uporządkowane według zasad architektury wymienionych w poniższych sekcjach.

1. Optymalizowanie procesów kompilacji i wydawania

Tworzenie dedykowanego zespołu ds. operacji usługi Lakehouse

Typowym najlepszym rozwiązaniem jest posiadanie zespołu ds. operacji platformy w celu umożliwienia zespołom danych pracy na co najmniej jednej platformie danych. Ten zespół jest odpowiedzialny za tworzenie strategii i najlepszych rozwiązań wewnętrznie. Udostępniają one narzędzia — na przykład w przypadku automatyzacji infrastruktury i dostępu samoobsługowego — i zapewniają spełnienie wymagań dotyczących zabezpieczeń i zgodności. Stawia to ciężar zabezpieczania danych platformy w centralnym zespole, dzięki czemu rozproszone zespoły mogą skupić się na pracy z danymi i generowaniu nowych szczegółowych informacji.

Korzystanie z zarządzania kodem źródłowym przedsiębiorstwa (SCM)

Zarządzanie kodem źródłowym (SCM) pomaga deweloperom pracować wydajniej, co może prowadzić do szybszej szybkości wydawania i obniżenia kosztów programowania. Posiadanie narzędzia ułatwiającego śledzenie zmian, utrzymywanie integralności kodu, wykrywanie usterek i wycofywanie do poprzednich wersji jest ważnym składnikiem ogólnej architektury rozwiązania.

Foldery Git usługi Databricks umożliwiają użytkownikom przechowywanie notesów lub innych plików w repozytorium Git, udostępnianie funkcji takich jak klonowanie repozytorium, zatwierdzanie i wypychanie, ściąganie, zarządzanie gałęziami i wyświetlanie różnic plików. Użyj folderów Git, aby uzyskać lepszą widoczność i śledzenie kodu.

Standaryzacja procesów DevOps (CIĄGŁA integracja/ciągłe wdrażanie)

Ciągła integracja i ciągłe dostarczanie (CI/CD) odnosi się do tworzenia i wdrażania oprogramowania w krótkim czasie, często używanych potoków. Chociaż nie jest to nowy proces, który był wszechobecny w tradycyjnej inżynierii oprogramowania od dziesięcioleci, staje się coraz bardziej koniecznym procesem dla zespołów inżynierii danych i nauki o danych. Aby produkty danych były cenne, muszą być dostarczane w odpowiednim czasie. Ponadto konsumenci muszą mieć pewność co do ważności wyników w tych produktach. Automatyzując proces tworzenia, testowania i wdrażania kodu, zespoły programistyczne mogą dostarczać wydania częściej i niezawodnie niż procesy ręczne, które nadal dominuje w wielu zespołach inżynierii danych i nauki o danych. Zobacz Co to jest ciągła integracja/ciągłe wdrażanie w usłudze Azure Databricks?.

Aby uzyskać więcej informacji na temat najlepszych rozwiązań dotyczących tworzenia kodu przy użyciu folderów Git usługi Databricks, zobacz Techniki ciągłej integracji/ciągłego wdrażania w folderach Git i Databricks Git (Repos). Wraz z interfejsem API REST usługi Databricks można tworzyć zautomatyzowane procesy wdrażania przy użyciu akcji usługi GitHub, potoków usługi Azure DevOps lub zadań serwera Jenkins.

Standaryzacja procesów MLOps

Procesy MLOps zapewniają powtarzalność potoków uczenia maszynowego, umożliwiając ściślejszą współpracę między zespołami danych, zmniejszając konflikt z devops i IT oraz przyspieszając szybkość wydawania. Ponieważ wiele modeli jest używanych do podejmowania kluczowych decyzji biznesowych, standaryzacja procesów MLops gwarantuje, że modele są opracowywane, testowane i wdrażane spójnie i niezawodnie.

Tworzenie i wdrażanie modeli uczenia maszynowego jest złożone. Istnieje wiele dostępnych opcji, aby to osiągnąć, ale niewiele w sposobie dobrze zdefiniowanych standardów. W rezultacie w ciągu ostatnich kilku lat widzieliśmy pojawienie się operacji uczenia maszynowego (MLOps). Metodyka MLOps to zestaw procesów i automatyzacji do zarządzania modelami, danymi i kodem w celu poprawy stabilności wydajności i długoterminowej wydajności w systemach uczenia maszynowego. Obejmuje on przygotowywanie danych, eksploracyjne analizy danych (EDA), inżynierię cech, trenowanie modelu, walidację modelu, wdrażanie i monitorowanie.

Metodyka MLOps na platformie Databricks może pomóc w optymalizacji wydajności i długoterminowej wydajności systemu uczenia maszynowego:

  • Zawsze należy pamiętać o celach biznesowych: Tak jak głównym celem uczenia maszynowego w firmie jest umożliwienie podejmowania decyzji i produktów opartych na danych, głównym celem metodyki MLOps jest zapewnienie, że te aplikacje oparte na danych pozostają stabilne, są aktualne i nadal mają pozytywny wpływ na firmę. Podczas określania priorytetów prac technicznych dotyczących metodyki MLOps należy wziąć pod uwagę wpływ biznesowy: Czy włącza nowe przypadki użycia biznesowego? Czy poprawia wydajność zespołów danych? Czy zmniejsza koszty operacyjne lub zagrożenia?
  • Zarządzanie modelami uczenia maszynowego za pomocą wyspecjalizowanego, ale otwartego narzędzia: do śledzenia modeli uczenia maszynowego i zarządzania nimi można używać platformy MLflow zaprojektowanej do cyklu życia modelu uczenia maszynowego. Zobacz Zarządzanie cyklem życia uczenia maszynowego przy użyciu platformy MLflow.
  • Implementowanie metodyki MLOps w sposób modularny: podobnie jak w przypadku każdej aplikacji programowej, jakość kodu jest najważniejsza dla aplikacji uczenia maszynowego. Modułowy kod umożliwia testowanie poszczególnych składników i zmniejsza trudności z przyszłym refaktoryzowaniem kodu. Zdefiniuj jasne kroki (takie jak trenowanie, ocena lub wdrażanie), super kroki (takie jak potok trenowania do wdrożenia) i obowiązki, aby wyjaśnić modułową strukturę aplikacji uczenia maszynowego.

Opisano to szczegółowo w książce e-mail usługi Databricks The Big Book of MLOps.

Definiowanie strategii izolacji środowiska

Gdy organizacja korzysta z platformy danych, takiej jak Databricks, często trzeba mieć granice izolacji danych między środowiskami (takimi jak programowanie i produkcja) lub między jednostkami operacyjnymi organizacji.

Standardy izolacji mogą się różnić w twojej organizacji, ale zazwyczaj obejmują one następujące oczekiwania:

  • Użytkownicy mogą uzyskiwać dostęp tylko do danych na podstawie określonych reguł dostępu.
  • Dane mogą być zarządzane tylko przez wyznaczone osoby lub zespoły.
  • Dane są fizycznie oddzielone w magazynie.
  • Dostęp do danych można uzyskać tylko w wyznaczonych środowiskach.

W usłudze Databricks obszar roboczy jest podstawowym środowiskiem przetwarzania danych i istnieje kilka scenariuszy, w których oddzielne obszary robocze zwiększają ogólną konfigurację, na przykład:

  • Izoluj różne jednostki biznesowe z własnymi obszarami roboczymi, aby uniknąć udostępniania administratorowi obszaru roboczego i zapewnić, że żadne zasoby w usłudze Databricks nie są współużytkowane przypadkowo między jednostkami biznesowymi.
  • Izolowanie środowisk cyklu życia programowania oprogramowania (takich jak programowanie, przemieszczanie i produkcja). Na przykład oddzielny obszar roboczy produkcyjny umożliwia przetestowanie nowych ustawień obszaru roboczego przed zastosowaniem ich do środowiska produkcyjnego. Lub środowisko produkcyjne może wymagać bardziej rygorystycznych ustawień obszaru roboczego niż środowisko programistyczne. Jeśli musisz wdrożyć środowiska programistyczne, przejściowe i produkcyjne w różnych sieciach wirtualnych, potrzebujesz również różnych obszarów roboczych dla trzech środowisk.
  • Podziel obszary robocze, aby przezwyciężyć ograniczenia zasobów: konta w chmurze/subskrypcje mają ograniczenia zasobów. Dzielenie obszarów roboczych na różne subskrypcje/konta jest jednym ze sposobów zapewnienia, że dla każdego obszaru roboczego jest dostępna wystarczająca ilość zasobów. Ponadto obszary robocze usługi Databricks mają również ograniczenia zasobów. Dzielenie obszarów roboczych zapewnia, że obciążenia w każdym obszarze roboczym zawsze mają dostęp do pełnego zestawu zasobów.

Istnieją jednak pewne wady udostępnionych obszarów roboczych, które należy również wziąć pod uwagę:

  • Współpraca notesu nie działa w obszarach roboczych.

  • W przypadku wielu obszarów roboczych zarówno konfiguracja, jak i konserwacja muszą być w pełni zautomatyzowane (za pomocą programu Terraform, usługi ARM, interfejsu API REST lub innego sposobu). Jest to szczególnie ważne dla celów migracji.

  • Jeśli każdy obszar roboczy musi być zabezpieczony w warstwie sieciowej (na przykład w celu ochrony przed eksfiltracją danych), wymagana infrastruktura sieciowa może być bardzo kosztowna, szczególnie w przypadku dużej liczby obszarów roboczych.

Ważne jest, aby znaleźć równowagę między potrzebą izolacji a potrzebą współpracy i wysiłkami wymaganymi do jej utrzymania.

Definiowanie strategii katalogu dla przedsiębiorstwa

Wraz ze strategią izolacji środowiskowej organizacje potrzebują strategii tworzenia struktury i oddzielania metadanych i danych. Dane, w tym dane osobowe, informacje o płatności lub kondycji, niosą ze sobą duże potencjalne ryzyko, a wraz z coraz większym zagrożeniem naruszeniami danych ważne jest oddzielenie i ochronę poufnych danych niezależnie od wybranej strategii organizacyjnej. Oddziel poufne dane od danych niewrażliwych, zarówno logicznie, jak i fizycznie.

Organizacja może wymagać przechowywania określonych typów danych na określonych kontach lub zasobnikach w dzierżawie chmury. Magazyn metadanych wykazu aparatu Unity umożliwia ustrukturyzowanie metadanych przez trzy-poziomową catalog > schema > tables/views/volumes przestrzeń nazw z lokalizacjami magazynu skonfigurowanymi na poziomie magazynu metadanych, katalogu lub schematu w celu spełnienia takich wymagań.

Wymagania dotyczące organizacji i zgodności często określają, że pewne dane są zachowywane tylko w niektórych środowiskach. Możesz również zachować dane produkcyjne odizolowane od środowisk deweloperskich lub upewnić się, że niektóre zestawy danych i domeny nigdy nie są scalane. W usłudze Databricks obszar roboczy jest podstawowym środowiskiem obliczeniowym, a katalogi są domeną danych podstawowych. Korzystając z magazynu metadanych wykazu aparatu Unity, administratorzy i właściciele wykazu mogą powiązać katalogi z określonymi obszarami roboczymi. Te powiązania obsługujące środowisko ułatwiają zapewnienie, że tylko niektóre wykazy są dostępne w obszarze roboczym, niezależnie od uprawnień do określonego obiektu danych przyznanych użytkownikowi.

Aby zapoznać się z pełną dyskusją na temat tych tematów, zobacz Artykuł Unity Catalog best practices (Najlepsze rozwiązania dotyczące wykazu aparatu Unity)

2. Automatyzowanie wdrożeń i obciążeń

Używanie infrastruktury jako kodu (IaC) na potrzeby wdrożeń i konserwacji

Infrastruktura jako kod (IaC) umożliwia deweloperom i zespołom operacyjnym automatyczne zarządzanie, monitorowanie i aprowizowanie zasobów zamiast ręcznego konfigurowania urządzeń sprzętowych, systemów operacyjnych, aplikacji i usług.

HashiCorp Terraform to popularne narzędzie typu open source do tworzenia bezpiecznej i przewidywalnej infrastruktury chmury u kilku dostawców chmury. Dostawca narzędzia Terraform usługi Databricks zarządza obszarami roboczymi usługi Azure Databricks i powiązaną infrastrukturą chmury przy użyciu elastycznego, zaawansowanego narzędzia. Celem dostawcy narzędzia Terraform usługi Databricks jest obsługa wszystkich interfejsów API REST usługi Azure Databricks, które obsługują automatyzację najbardziej skomplikowanych aspektów wdrażania platform danych i zarządzania nimi. Dostawca narzędzia Terraform usługi Databricks jest zalecanym narzędziem do niezawodnego wdrażania klastrów i zadań oraz zarządzania nimi, aprowizowania obszarów roboczych usługi Azure Databricks i konfigurowania dostępu do danych.

Standaryzacja konfiguracji obliczeniowych

Standaryzacja środowisk obliczeniowych zapewnia, że to samo oprogramowanie, biblioteki i konfiguracje są używane we wszystkich środowiskach. Ta spójność ułatwia odtwarzanie wyników, debugowanie problemów i konserwowanie systemów w różnych środowiskach. W przypadku standardowych środowisk zespoły mogą zaoszczędzić czas i zasoby, eliminując konieczność konfigurowania i konfigurowania środowisk od podstaw. Zmniejsza to również ryzyko błędów i niespójności, które mogą wystąpić podczas ręcznej konfiguracji. Standaryzacja umożliwia również implementację spójnych zasad zabezpieczeń i praktyk we wszystkich środowiskach. Może to pomóc organizacjom lepiej zarządzać ryzykiem i spełniać wymagania prawne. Na koniec standaryzacja może pomóc organizacjom lepiej zarządzać kosztami, zmniejszając straty i optymalizując wykorzystanie zasobów.

Standaryzacja obejmuje zarówno konfigurację środowiska, jak i bieżące zarządzanie zasobami. W celu zapewnienia spójnej konfiguracji usługa Databricks zaleca używanie infrastruktury jako kodu. Aby zapewnić spójne konfigurowanie zasobów obliczeniowych uruchamianych w czasie, należy użyć zasad obliczeniowych. Administratorzy obszaru roboczego usługi Databricks mogą ograniczyć uprawnienia tworzenia zasobów obliczeniowych użytkownika lub grupy na podstawie zestawu reguł zasad. Mogą wymuszać ustawienia konfiguracji platformy Spark i wymuszać instalacje bibliotek o zakresie klastra. Można również użyć zasad obliczeniowych, aby zdefiniować klastry rozmiarów koszulek (S, M, L) dla projektów jako standardowe środowisko pracy.

Używanie zautomatyzowanych przepływów pracy dla zadań

Skonfigurowanie zautomatyzowanych przepływów pracy dla zadań może pomóc zmniejszyć niepotrzebne zadania ręczne i zwiększyć produktywność dzięki procesowi DevOps tworzenia i wdrażania zadań. Platforma analizy danych udostępnia dwa sposoby wykonania następujących czynności:

  • Zadania usługi Databricks:

    Usługa Databricks Jobs organizuje potoki przetwarzania danych, uczenia maszynowego i analizy na platformie analizy danych usługi Databricks. Jest to w pełni zarządzana usługa aranżacji zintegrowana z platformą Databricks:

    • Zadania usługi Databricks to sposób uruchamiania aplikacji do przetwarzania i analizy danych w obszarze roboczym usługi Databricks. Zadanie może być pojedynczym zadaniem lub dużym, wielodaniowym przepływem pracy ze złożonymi zależnościami. Usługa Databricks zarządza aranżacją zadań, zarządzaniem klastrem, monitorowaniem i raportowaniem błędów dla wszystkich zadań.
    • Delta Live Tables to deklaratywna struktura do tworzenia niezawodnych, konserwowalnych i testowalnych potoków przetwarzania danych. Definiujesz przekształcenia, które mają być wykonywane na danych, a usługa Delta Live Tables zarządza orkiestracją zadań, zarządzaniem klastrem, monitorowaniem, jakością danych i obsługą błędów.
  • Orkiestratory zewnętrzne:

    Kompleksowy interfejs API REST usługi Azure Databricks jest używany przez zewnętrznych koordynatorów do organizowania zasobów, notesów i zadań usługi Databricks. Zobacz:

Zalecamy używanie zadań usługi Databricks dla wszystkich zależności zadań w usłudze Databricks i — w razie potrzeby — integrowania tych hermetyzowanych przepływów pracy z zewnętrznym koordynatorem

Używanie zautomatyzowanego i sterowanego zdarzeniami pozyskiwania plików

Pozyskiwanie plików opartych na zdarzeniach (w porównaniu z harmonogramem) ma kilka korzyści, w tym wydajność, zwiększoną świeżość danych i pozyskiwanie danych w czasie rzeczywistym. Uruchomienie zadania tylko wtedy, gdy wystąpi zdarzenie, gwarantuje, że nie zmarnujesz zasobów, co pozwala zaoszczędzić pieniądze.

Automatycznie ładujący przyrostowo i wydajnie przetwarza nowe pliki danych w miarę ich przybycia do magazynu w chmurze. Może pozyskiwać wiele formatów plików, takich jak JSON, CSV, PARQUET, AVRO, ORC, TEXT i BINARYFILE. W przypadku folderu wejściowego w magazynie w chmurze funkcja automatycznego ładowania automatycznie przetwarza nowe pliki po ich nadejściu.

W przypadku jednorazowych pozyskiwania rozważ użycie polecenia COPY INTO .

Używanie struktur ETL dla potoków danych

Chociaż istnieje możliwość ręcznego wykonywania zadań ETL, istnieje wiele korzyści związanych z używaniem platformy. Struktura zapewnia spójność i powtarzalność procesu ETL. Udostępniając wstępnie utworzone funkcje i narzędzia, platforma może automatyzować typowe zadania, oszczędzając czas i zasoby. Struktury ETL mogą obsługiwać duże ilości danych i można je łatwo skalować w górę lub w dół w razie potrzeby. Ułatwia to zarządzanie zasobami i reagowanie na zmieniające się potrzeby biznesowe. Wiele platform obejmuje wbudowane możliwości obsługi błędów i rejestrowania, co ułatwia identyfikowanie i rozwiązywanie problemów. Często obejmują one kontrole jakości danych i weryfikacje, aby zapewnić, że dane spełniają określone standardy przed załadowaniem ich do magazynu danych lub magazynu danych lake.

Delta Live Tables to deklaratywna struktura do tworzenia niezawodnych, konserwowalnych i testowalnych potoków przetwarzania danych. Definiujesz przekształcenia, które mają być wykonywane na danych, a tabele Delta Live Tables obsługują aranżację zadań, zarządzanie klastrem, monitorowanie, jakość danych i obsługę błędów.

Za pomocą funkcji Delta Live Tables można definiować kompleksowe potoki danych w języku SQL lub Python: określ źródło danych, logikę przekształcania i stan docelowy danych. Usługa Delta Live Tables utrzymuje zależności i automatycznie określa infrastrukturę, na której ma zostać uruchomione zadanie.

Aby zarządzać jakością danych, funkcja Delta Live Tables monitoruje trendy jakości danych w czasie i uniemożliwia wprowadzanie tabel przez sprawdzanie poprawności i integralności przy użyciu wstępnie zdefiniowanych zasad błędów. Zobacz Co to jest delta live tables?.

Postępuj zgodnie z podejściem wdrażania kodu dla obciążeń uczenia maszynowego

Kod i modele często przechodzą asynchronicznie przez etapy tworzenia oprogramowania. Istnieją dwa sposoby osiągnięcia tego celu:

  • wdrażanie kodu: projekt uczenia maszynowego jest kodowany w środowisku projektowym, a ten kod jest następnie przenoszony do środowiska przejściowego, w którym jest testowany. Po pomyślnym przetestowaniu kod projektu jest wdrażany w środowisku produkcyjnym, w którym jest wykonywany.
  • wdrażanie modelu: trenowanie modelu jest wykonywane w środowisku projektowym. Wygenerowany artefakt modelu jest następnie przenoszony do środowiska przejściowego na potrzeby sprawdzania poprawności modelu przed wdrożeniem modelu w środowisku produkcyjnym.

Zobacz Wzorce wdrażania modelu.

Usługa Databricks zaleca podejście deploy-code dla większości przypadków użycia. Główne zalety tego modelu to:

  • Pasuje to do tradycyjnych przepływów pracy inżynierii oprogramowania przy użyciu znanych narzędzi, takich jak git i systemy ciągłej integracji/ciągłego wdrażania.
  • Obsługuje automatyczne ponowne trenowanie w zablokowanym środowisku.
  • Wymaga to tylko środowiska produkcyjnego, aby mieć dostęp do odczytu do danych treningowych prod.
  • Zapewnia pełną kontrolę nad środowiskiem trenowania, co pomaga uprościć powtarzalność.
  • Umożliwia zespołowi nauki o danych korzystanie z modułowego kodu i testowania iteracyjnego, pomagając w koordynacji i opracowywaniu w większych projektach.

Opisano to szczegółowo w książce e-mail usługi Databricks The Big Book of MLOps.

Oddzielenie kodu i cyklu życia modelu za pomocą rejestru modeli

Ponieważ cykle życia modelu nie odpowiadają cyklom życia kodu jeden do jednego, katalog aparatu Unity umożliwia zarządzanie pełnym cyklem życia modeli uczenia maszynowego w hostowanej wersji rejestru modeli MLflow. Modele w wykazie aparatu Unity rozszerzają zalety wykazu aparatu Unity na modele uczenia maszynowego, w tym scentralizowaną kontrolę dostępu, inspekcję, pochodzenie i odnajdywanie modeli między obszarami roboczymi. Modele w katalogu aparatu Unity są zgodne z klientem języka Python MLflow typu open source.

Automatyzowanie śledzenia eksperymentów uczenia maszynowego

Śledzenie eksperymentów uczenia maszynowego to proces zapisywania odpowiednich metadanych dla każdego eksperymentu i organizowania eksperymentów. Te metadane obejmują dane wejściowe/wyjściowe eksperymentu, parametry, modele i inne artefakty. Celem śledzenia eksperymentów jest utworzenie powtarzalnych wyników na każdym etapie procesu opracowywania modelu uczenia maszynowego. Automatyzacja tego procesu ułatwia skalowanie liczby eksperymentów i zapewnia spójność metadanych przechwyconych we wszystkich eksperymentach.

Automatyczne rejestrowanie usługi Databricks to rozwiązanie bez kodu, które rozszerza automatyczne rejestrowanie MLflow w celu dostarczania automatycznego śledzenia eksperymentów na potrzeby sesji uczenia maszynowego w usłudze Azure Databricks. Automatyczne rejestrowanie usługi Databricks automatycznie przechwytuje parametry modelu, metryki, pliki i informacje o pochodzenia podczas trenowania modeli przy użyciu przebiegów trenowania zarejestrowanych podczas uruchamiania śledzenia MLflow.

Ponowne używanie tej samej infrastruktury do zarządzania potokami uczenia maszynowego

Dane używane na potrzeby potoków uczenia maszynowego zwykle pochodzą z tych samych źródeł, co dane używane w innych potokach danych. Potoki uczenia maszynowego i danych są podobne, ponieważ zarówno przygotowują dane do analizy użytkowników biznesowych, jak i trenowania modelu. Oba muszą być również skalowalne, bezpieczne i prawidłowo monitorowane. W obu przypadkach używana infrastruktura powinna obsługiwać te działania.

Użyj dostawcy narzędzia Terraform usługi Databricks, aby zautomatyzować wdrożenia środowisk uczenia maszynowego. Uczenie maszynowe wymaga wdrożenia infrastruktury, takiej jak zadania wnioskowania, obsługa punktów końcowych i zadań cechowania. Wszystkie potoki uczenia maszynowego można zautomatyzować jako zadania, a wiele potoków uczenia maszynowego skoncentrowanych na danych może używać bardziej wyspecjalizowanego modułu automatycznego ładującego do pozyskiwania obrazów i innych danych oraz tabel delta Live Tables do obliczania funkcji lub monitorowania metryk.

Upewnij się, że używasz usługi Model Serving na potrzeby wdrażania modeli uczenia maszynowego klasy korporacyjnej.

Korzystanie z zarządzania deklaratywnego dla złożonych projektów danych i uczenia maszynowego

Struktury deklaratywne w ramach metodyki MLOps umożliwiają zespołom definiowanie pożądanych wyników na wysokim poziomie i umożliwienie systemowi obsługi szczegółów wykonywania, upraszczania wdrażania i skalowania modeli uczenia maszynowego. Te struktury obsługują ciągłą integrację i wdrażanie, automatyzują testowanie i zarządzanie infrastrukturą oraz zapewniają ład i zgodność modelu, co ostatecznie skraca czas obrotu i zwiększania produktywności w całym cyklu życia uczenia maszynowego.

Pakiety zasobów usługi Databricks (DAB) to narzędzie do usprawniania tworzenia złożonych projektów danych, analiz i uczenia maszynowego dla platformy Databricks. Pakiety ułatwiają zarządzanie złożonymi projektami podczas aktywnego tworzenia, zapewniając możliwości ciągłej integracji/ciągłego wdrażania w przepływie pracy tworzenia oprogramowania przy użyciu jednej, zwięzłej i deklaratywnej składni YAML. Korzystając z pakietów w celu zautomatyzowania testowania, wdrażania i zarządzania konfiguracją projektu, można zmniejszyć błędy podczas promowania najlepszych rozwiązań dotyczących oprogramowania w całej organizacji jako szablonowych projektów.

3. Zarządzanie pojemnością i limitami przydziału

Zarządzanie limitami i limitami przydziałów usługi

Zarządzanie limitami usług i limitami przydziałów jest ważne dla utrzymania dobrze działającej infrastruktury i zapobiegania nieoczekiwanym kosztom. Każda usługa uruchomiona w chmurze musi uwzględniać limity, takie jak limity szybkości dostępu, liczba wystąpień, liczba użytkowników i wymagania dotyczące pamięci. W przypadku dostawcy usług w chmurze sprawdź [limity chmury][limity chmury]. Przed zaprojektowaniem rozwiązania należy zrozumieć te limity.

W szczególności w przypadku platformy Databricks istnieją różne typy limitów:

Limity platformy usługi Databricks: są to określone limity dla zasobów usługi Azure Databricks. Limity dla całej platformy są udokumentowane w temacie Limity zasobów.

Limity wykazu aparatu Unity: limity przydziału zasobów wykazu aparatu Unity

Limity przydziału subskrypcji/konta: usługa Azure Databricks korzysta z zasobów w chmurze dla swojej usługi. Na przykład obciążenia w usłudze Azure Databricks działają w klastrach, dla których platforma Databricks uruchamia maszyny wirtualne dostawcy usług w chmurze. Dostawcy usług w chmurze ustawiają domyślne limity przydziału liczby maszyn wirtualnych, które można uruchomić jednocześnie. W zależności od potrzeb te przydziały mogą wymagać dostosowania.

Aby uzyskać więcej informacji, zobacz Zwiększanie limitów przydziału procesorów wirtualnych rodziny maszyn wirtualnych.

W podobny sposób magazyn, sieć i inne usługi w chmurze mają ograniczenia, które muszą być zrozumiałe i uwzględniane.

limity chmury

Inwestowanie w planowanie pojemności

Planowanie pojemności obejmuje zarządzanie zasobami w chmurze, takimi jak magazyn, obliczenia i sieć, aby zachować wydajność przy jednoczesnym optymalizacji kosztów. Zaplanuj zmiany oczekiwanego obciążenia, które mogą wystąpić z różnych powodów, w tym nagłych zmian biznesowych, a nawet wydarzeń na świecie. Przetestuj odmiany obciążenia, w tym nieoczekiwane, aby upewnić się, że obciążenia mogą być skalowane. Upewnij się, że wszystkie regiony mogą być skalowane wystarczająco, aby obsługiwać łączne obciążenie w przypadku awarii jednego regionu. Rozważ następujące kwestie:

  • Ograniczenia technologii i usług oraz ograniczenia chmury. Zobacz Zarządzanie pojemnością i limitami przydziału.
  • Umowy SLA określające usługi, które mają być używane w projekcie.
  • Analiza kosztów w celu określenia, ile ulepszeń aplikacji jest realizowane, jeśli koszt zostanie zwiększony. Oceń, czy cena jest warta inwestycji.

Ważne jest zrozumienie i planowanie zdarzeń o wysokim priorytcie (woluminie). Jeśli aprowizowane zasoby w chmurze nie są wystarczające, a obciążenia nie mogą być skalowane, takie wzrosty woluminu mogą spowodować awarię.

4. Konfigurowanie monitorowania, alertów i rejestrowania

Ustanawianie procesów monitorowania

Ustanawianie procesów monitorowania dla platformy danych ma kluczowe znaczenie z kilku powodów. Procesy monitorowania umożliwiają wczesne wykrywanie problemów, takich jak problemy z jakością danych, wąskie gardła wydajności i awarie systemu, co może pomóc w zapobieganiu przestojom i utracie danych. Mogą one pomóc zidentyfikować nieefektywność na platformie danych i zoptymalizować koszty poprzez zmniejszenie strat i poprawę wykorzystania zasobów. Ponadto procesy monitorowania mogą pomóc zapewnić zgodność z wymaganiami prawnymi i zapewnić dzienniki inspekcji dostępu do danych i użycia.

Używanie natywnych i zewnętrznych narzędzi do monitorowania platformy

Platforma analizy danych usługi Databricks ma wbudowane rozwiązania do monitorowania i integruje zewnętrzne systemy monitorowania:

  • Monitorowanie platformy przy użyciu rozwiązań do monitorowania platformy Azure

    Monitorowanie ma kluczowe znaczenie dla dowolnego rozwiązania na poziomie produkcyjnym, a usługa Azure Databricks oferuje niezawodne funkcje monitorowania niestandardowych metryk aplikacji, zdarzeń zapytań przesyłanych strumieniowo i komunikatów dziennika aplikacji. Usługa Azure Databricks może wysyłać te dane monitorowania do różnych usług rejestrowania. W poniższych artykułach pokazano, jak wysyłać dane monitorowania z usługi Azure Databricks do usługi Azure Monitor, która jest platformą danych monitorowania na platformie Azure.

  • Monitorowanie usługi Databricks Lakehouse

    Monitorowanie usługi Databricks Lakehouse umożliwia monitorowanie właściwości statystycznych i jakości danych we wszystkich tabelach na koncie. Monitorowanie jakości danych zapewnia miary ilościowe służące do śledzenia i potwierdzania spójności danych w czasie oraz pomaga identyfikować i ostrzegać użytkowników o zmianach w dystrybucji danych i wydajności modelu. Możesz również śledzić wydajność modeli uczenia maszynowego, monitorując tabele wnioskowania zawierające dane wejściowe i przewidywania modelu.

    Zobacz Wyświetlanie wydatków na monitorowanie usługi Lakehouse, aby zrozumieć koszty monitorowania usługi Lakehouse.

  • Monitorowanie usługi SQL Warehouse

    Monitorowanie usługi SQL Warehouse jest niezbędne do zrozumienia profilu ładowania w czasie i efektywnego zarządzania usługą SQL Warehouse. Dzięki monitorowaniu usługi SQL Warehouse można wyświetlać informacje, takie jak liczba zapytań obsługiwanych przez magazyn lub liczbę klastrów przydzielonych do magazynu.

  • Alerty SQL usługi Databricks

    Alerty SQL usługi Databricks okresowo uruchamiają zapytania, oceniają zdefiniowane warunki i wysyłają powiadomienia, jeśli warunek jest spełniony. Alerty można skonfigurować w celu monitorowania firmy i wysyłania powiadomień, gdy zgłoszone dane wykraczają poza oczekiwane limity.

Ponadto można utworzyć alert SQL usługi Databricks na podstawie metryki z tabeli metryk monitora, na przykład, aby otrzymywać powiadomienia, gdy statystyka przechodzi z określonego zakresu lub jeśli dane dryfowały w porównaniu z tabelą bazową.

  • Automatyczne monitorowanie modułu ładującego

    Moduł automatycznego ładowania udostępnia interfejs API SQL do sprawdzania stanu strumienia. Za pomocą funkcji SQL można znaleźć metadane dotyczące plików, które zostały odnalezione przez strumień automatycznego modułu ładującego. Zobacz Monitorowanie automatycznego modułu ładującego.

    Za pomocą interfejsu odbiornika zapytań przesyłania strumieniowego platformy Apache Spark można dodatkowo monitorować strumienie modułu ładującego automatycznie.

  • Monitorowanie zadań

    Monitorowanie zadań ułatwia identyfikowanie i rozwiązywanie problemów w zadaniach usługi Databricks, takich jak błędy, opóźnienia lub wąskie gardła wydajności. Monitorowanie zadań zapewnia wgląd w wydajność zadań, umożliwiając optymalizację wykorzystania zasobów, zmniejszenie wydajności i poprawę ogólnej wydajności.

  • Monitorowanie tabel delta Live Tables

    Dziennik zdarzeń jest tworzony i utrzymywany dla każdego potoku tabel na żywo delty. Dziennik zdarzeń zawiera wszystkie informacje związane z potokiem, w tym dzienniki inspekcji, kontrole jakości danych, postęp potoku i pochodzenie danych. Możesz użyć dziennika zdarzeń, aby śledzić, interpretować i monitorować stan potoków danych.

  • Monitorowanie przesyłania strumieniowego

    Przesyłanie strumieniowe to jedna z najważniejszych technik przetwarzania danych na potrzeby pozyskiwania i analizy. Zapewnia użytkownikom i deweloperom małe opóźnienia i możliwości przetwarzania danych w czasie rzeczywistym na potrzeby akcji analitycznych i wyzwalających. Platforma analizy danych usługi Databricks umożliwia monitorowanie zapytań przesyłania strumieniowego ze strukturą.

  • Monitorowanie uczenia maszynowego i sztucznej inteligencji

    Monitorowanie wydajności modeli w przepływach pracy produkcyjnych jest ważnym aspektem cyklu życia modelu sztucznej inteligencji i uczenia maszynowego. Tabele wnioskowania upraszczają monitorowanie i diagnostykę modeli przez ciągłe rejestrowanie obsługujące dane wejściowe żądań i odpowiedzi (przewidywania) z punktów końcowych obsługujących model sztucznej inteligencji mozaiki i zapisywanie ich w tabeli delty w wykazie aparatu Unity. Następnie możesz użyć wszystkich możliwości platformy Databricks, takich jak zapytania DBSQL, notesy i monitorowanie usługi Lakehouse, aby monitorować, debugować i optymalizować modele.

    Aby uzyskać więcej informacji na temat monitorowania obsługi modelu, zobacz Monitorowanie jakości modelu i kondycji punktu końcowego.

  • Monitorowanie zabezpieczeń

    Zobacz Zabezpieczenia, zgodność i prywatność — monitorowanie zabezpieczeń.

  • Monitorowanie kosztów

    Zobacz Optymalizacja kosztów — monitorowanie i kontrolowanie kosztów.