Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Migrowanie obciążeń z klasycznego środowiska obliczeniowego do bezserwerowych obliczeń. Bezserwerowe obliczenia obsługują automatyczne aprowizowanie, skalowanie, uaktualnienia środowiska uruchomieniowego i optymalizację.
Większość klasycznych obciążeń może migrować z minimalnymi zmianami lub bez zmian w kodzie. Ta strona koncentruje się na tych obciążeniach. Niektóre funkcje, takie jak df.cache, nie są jeszcze obsługiwane w przypadku bezserwerowych, ale nie będą wymagały zmian kodu po udostępnieniu. Niektóre obciążenia zależne od notesów języka R lub Scala wymagają klasycznych obliczeń i nie będą mogły zostać zmigrowane do środowisk bezserwerowych. Aby uzyskać pełną listę bieżących ograniczeń, zobacz Ograniczenia obliczeniowe bezserwerowe.
Migracja z agentem migracyjnym
Ważna
Ta funkcja jest dostępna w wersji beta. Administratorzy przestrzeni roboczej mogą włączyć ją ze strony Podglądów , wybierając podgląd Agenta Obliczeniowego . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Możesz użyć narzędzia do migracji, aby przenieść pojedynczy notatnik lub zadanie do bezserwerowych zasobów obliczeniowych. Agent przegląda środowisko obciążenia, biblioteki, konfiguracje Sparka, tagi i kod, a następnie proponuje każdą zmianę jako indywidualną sugestię, którą możesz zaakceptować lub odrzucić. Akceptowane zmiany są wprowadzane i można je cofnąć.
Co agent przegląda i zmienia
| Area | Co robi agent |
|---|---|
| Środowisko i biblioteki | Tłumaczy instalacje bibliotek do specyfikacji środowiska bezserwerowego, w tym instalacje %pip, skrypty inicjalizacyjne klastra, biblioteki klastrów używane w zadaniach oraz odwołania do prywatnego indeksu pakietów. |
| Zmienne środowiskowe | Tłumaczy zmienne środowiskowe klastra na ich odpowiedniki bezserwerowe, zachowując odwołania do sekretów przestrzeni roboczej i pomijając wartości zarządzane przez platformę. |
| Dostęp do danych i pamięci masowej | Przepisuje ścieżki niezgodne z trybem serverless, takie jak dysk lokalny, dbfs:/ i ścieżki montowania, na woluminy Unity Catalog. Agent automatycznie stosuje jednoznaczne poprawki i prosi o wybór woluminu, gdy cel jest niejednoznaczny. |
| Konfiguracje platformy Spark | Klasyfikuje każdą konfigurację Spark, zakomentowuje konfiguracje, które można bezpiecznie usunąć, oraz oznacza i usuwa konfiguracje, których środowisko bezserwerowe nie obsługuje. Obejmuje zarówno konfiguracje dołączone do klastra, jak i konfiguracje w notesie. |
| Kod obciążenia | Przepisuje kod, którego serwerless nie obsługuje, na kompatybilne odpowiedniki, na przykład operacje RDD przepisywane na operacje DataFrame, oraz dostosowuje kod pod zachowanie SQL w trybie ANSI na serwerless. |
| Tagi | Tłumaczy niestandardowe tagi klastrów, takie jak tag centrum kosztów, na ich bezserwerowe odpowiedniki. |
| Tryb wydajności | Sugeruje tryb wydajności w zależności od konfiguracji klastra. Zobacz Wybieranie trybu wydajności. |
Requirements
Zalecany jest dostęp administratora przestrzeni roboczej, aby zapewnić pełną migrację. Dzieje się tak, ponieważ agent analizuje także globalne skrypty inicjalizacyjne na poziomie przestrzeni roboczej, oprócz docelowego obciążenia. Migracja może być możliwa, jeśli masz uprawnienia
CAN MANAGEdo obciążenia roboczego, ale bez uprawnień administratora może to skutkować brakiem bibliotek, ustawień środowiska lub tagów.Potwierdź, że masz dostęp do agenta. Wpisz
/computew Genie Code./computepowinno pojawić się w menu autouzupełniania. Jeśli się nie pojawi, administrator obszaru roboczego musi włączyć podgląd w Twoim obszarze roboczym.
Migracja zeszytu
- Otwórz notatnik, który chcesz przenieść.
- Otwórz Genie Code i uruchom
/compute migrate to serverlessz palety/poleceń. - Przejrzyj ustalenia agenta. Agent skanuje środowisko, biblioteki i kod notatnika, proponując zmianę dla każdego elementu, który jej wymaga, na przykład przeniesienie instalacji biblioteki do specyfikacji środowiska lub przepisanie komórki kodu, aby działała bez serwera.
- Akceptuj lub odrzucaj każdą proponowaną zmianę.
- Zastosuj zmiany, które zaakceptowałeś. Są zapisywane bezpośrednio w notatniku.
- Podłącz notebook do serwerless i uruchom go, aby potwierdzić, że zachowuje się zgodnie z oczekiwaniami. Zobacz Weryfikacja przeniesionego obciążenia.
Migracja pracy
- Otwórz stanowisko, które chcesz przenieść.
- Otwórz Genie Code i uruchom
/compute migrate to serverlessz palety/poleceń. - Agent klonuje Twoje zadanie i próbuje zmigrować sklonowane zadanie do środowiska bezserwerowego.
- Przejrzyj ustalenia agenta. W przypadku zadania wielozadaniowego agent wyszczególnia każde zadanie oraz przypisaną do niego konfigurację klastra, a następnie proponuje zmiany dla każdego z nich, jednocześnie zachowując harmonogram zadania.
- Zaakceptuj lub odrzuć każdą proponowaną zmianę na powierzchni migracji: środowisko i biblioteki, konfiguracje Spark oraz wszelki kod obciążenia, który musi się zmienić.
- Zastosuj zmiany, które zaakceptowałeś. Zasoby obliczeniowe zadania zostały przełączone na tryb bezserwerowy.
- Uruchom zadanie w trybie bezserwerowym i potwierdź wyniki. Zobacz Weryfikacja przeniesionego obciążenia.
- Opcjonalnie, jako ostatni krok, agent promuje migrowanego klona. Kopiuje konfigurację klona i notatniki z powrotem na twoje oryginalne zadanie (zachowując ten sam identyfikator zadania, harmonogram i uprawnienia), a następnie usuwa klona. Jeśli pominiesz promowanie i pozostawisz oba zadania, wstrzymaj harmonogram dla tego zadania, którego nie uruchamiasz; w przeciwnym razie oba zadania zostaną uruchomione przez ten sam wyzwalacz, co może prowadzić do zduplikowanych zapisów lub innych skutków ubocznych.
Weryfikacja przeniesionego obciążenia
Agent proponuje i wdraża zmiany, ale nie wykonuje Twojego obciążenia ani nie weryfikuje jego wyników. Zawsze uruchamiaj zmigrowane obciążenie w środowisku bezserwerowym i potwierdź wyniki, zanim zaczniesz na nim polegać, zwłaszcza w przypadku obciążeń zapisujących dane do tabel produkcyjnych. Jeśli agent zaproponuje zmianę, która wydaje się nieodpowiednia, odrzuć ją i prześlij nam opinię, abyśmy mogli ulepszyć agenta. Zobacz Przesyłanie opinii o produkcie.
Wskazówka
Podczas walidacji przeniesionego obciążenia uruchamiaj je w trybie optymalizacji wydajności. Uruchamia się szybciej niż w trybie standardowym, więc otrzymujesz szybsze informacje zwrotne po potwierdzeniu wyników. Przełącz się na tryb, który najlepiej pasuje do obciążenia, zanim uruchomisz go w produkcji. Zobacz Wybieranie trybu wydajności.
Gdy agent znajdzie coś, czego nie może bezpiecznie przenieść, zgłasza blokadę i domyślnie się zatrzymuje. Możesz jawnie nakazać, aby pominął niektóre blokady zgodności lub zależności, ale wiąże się to z ryzykiem, że te zależności, przypisanie kosztów lub zachowanie w czasie działania nie zostaną zachowane, a obciążenie robocze może zawieść w środowisku bezserwerowym.
Cofnij zmiany migracji
Zmiany wprowadzane przez agenta są odwracalne.
W przypadku notatnika otwórz go i przywróć wersję z czasów tuż przed migracją. Zobacz Historia wersji w notesach usługi Databricks.
Dla zadania, jeśli nie awansowałeś przeniesionego klona, twoje oryginalne zadanie nigdy się nie zmieniało: uruchom go jak wcześniej i usuń klon. Jeśli promowałeś klona, przywróć dane z kopii zapasowej utworzonej przez agenta przed wprowadzeniem jakichkolwiek zmian:
- Otwórz folder z kopią zapasową w katalogu głównym obszaru roboczego:
/Workspace/Users/<your-username>/serverless-migration/backups/job-<job-id>/<timestamp>/. Agent pokazał tę ścieżkę podczas migracji. Jeśli jest kilka znaczników czasu, wybierz ten z tuż przed migracją. - Otwórz
job.yaml, który przechowuje ustawienia zadania sprzed migracji, i zastosuj te ustawienia ponownie do tego samego zadania za pomocą żądaniaPOST /api/2.2/jobs/reset, które nadpisuje ustawienia zadania tymi, które podasz. Możesz też wkleić je do definicji JSON zadania w interfejsie użytkownika. To przywraca zadanie do klasycznego środowiska obliczeniowego. - Otwórz
mapping.yaml, która wymienia każdy plik zarchiwizowany oraz oryginalną ścieżkę, z której pochodzi. Skopiuj każdy plik kopii zapasowej z powrotem do jego oryginalnej lokalizacji, aby cofnąć zmiany w kodzie. - Uruchom zadanie, aby potwierdzić, że zachowuje się tak, jak się zachowywało przed migracją.
Migracja nigdy nie usuwa tej kopii zapasowej. Zadania, których agent nie zmodyfikował, takie jak zadania pochodzące z repozytorium Git, SQL lub dbt, są rejestrowane w job.yaml, ale ich pliki nie są kopiowane do kopii zapasowej, więc w razie potrzeby przywróć je ze źródła referencyjnego.
Znane ograniczenia
- Za blokujące uznaje się: niestandardowe obrazy, warianty ML Runtime, wersje Databricks Runtime wcześniejsze niż 13, konfiguracje Spark, których nie można bezpiecznie ignorować w środowisku bezserwerowym, oraz zależności, takie jak pakiety egg, pliki JAR i biblioteki Maven. Bloker oznacza, że agent zatrzymuje się zamiast migrować ten element. Możesz albo samodzielnie rozwiązać ten problem i ponownie uruchomić migrację, albo polecić agentowi, aby mimo to przeprowadził migrację, co pozostawi ten element nierozwiązany i może spowodować niepowodzenie działania obciążenia w środowisku bezserwerowym.
- Agent odczytuje skrypty inicjalizacyjne przechowywane w plikach obszaru roboczego lub woluminach usługi Unity Catalog. Skrypty init przechowywane w ABFSS lub DBFS nie mogą być odczytywane i są zgłaszane jako blokery.
- Agent nie sprawdza wszystkich klasycznych atrybutów obliczeniowych. Dostarczanie logów klastra i klucze SSH nie są uwzględniane w modelu, a chociaż system wykrywa w kodzie zadań wiele zależności związanych z punktami montowania DBFS, nie identyfikuje ani nie rozpoznaje wszystkich takich punktów montowania.
- Interfejsy API pamięci podręcznej i punktów kontrolnych, globalne widoki tymczasowe, wywołania do zarządzania punktami montowania DBFS oraz kod w języku Scala lub R są domyślnie bezwzględnymi blokadami. Możesz polecić agentowi, aby kontynuował, ale nienaprawiona funkcjonalność pozostanie bez zmian i może nie działać w środowisku serverless.
- Prace z ponad 10 zadaniami do migracji nie mogą być obecnie migrowane.
- Agent przenosi po jednym obciążeniu roboczym naraz. Nie ma procesu odkrywania na całej flocie, migracji masowej ani zatwierdzania przez administratorów.
- Agent proponuje zmiany i stosuje te, które akceptujesz, ale nie wykonuje Twojego obciążenia ani nie weryfikuje poprawności wyników. Zweryfikuj zmigrowane obciążenie robocze przed użyciem go do obsługi danych produkcyjnych.
- Jeśli źródłem referencyjnym Twojego obciążenia roboczego jest pakiet Databricks Asset Bundle lub folder Git, agent wprowadza zmiany bezpośrednio w obiekcie obszaru roboczego. Zsynchronizuj te zmiany z pakietem lub repozytorium, aby kolejne wdrożenie nie nadpisało migracji.
Ręczna migracja do architektury serverless
Aby przeprowadzić migrację obciążeń z klasycznego środowiska obliczeniowego do obliczeń bezserwerowych, wykonaj następujące kroki:
- Sprawdź wymagania wstępne: sprawdź, czy dostęp do obszaru roboczego, sieci i magazynu w chmurze spełnia wymagania. Zobacz Przed rozpoczęciem.
- Aktualizuj kod: wprowadź wszelkie niezbędne zmiany w kodzie i konfiguracji. Zobacz Aktualizowanie kodu.
- Przetestuj obciążenia: Zweryfikuj zgodność i poprawność przed przełączeniem. Zobacz Testowanie obciążeń.
- Wybierz tryb wydajności: wybierz tryb wydajności, który najlepiej odpowiada wymaganiom obciążenia. Zobacz Wybieranie trybu wydajności.
- Migrowanie w fazach: Prowadź stopniowe wdrażanie architektury bezserwerowej, zaczynając od nowych i niskiego ryzyka obciążeń. Zobacz Migrowanie w fazach.
- Monitorowanie kosztów: śledzenie użycia bezserwerowej jednostki DBU i konfigurowanie alertów. Zobacz Monitorowanie kosztów.
Zanim rozpoczniesz
Przed rozpoczęciem migracji może być konieczne zaktualizowanie niektórych starszych konfiguracji w obszarze roboczym.
| wymagania wstępne | Action | Szczegóły |
|---|---|---|
| Obszar roboczy jest włączony dla Unity Catalog | Migrowanie z magazynu metadanych Hive w razie potrzeby | Zaktualizuj obszar roboczy Azure Databricks do Unity Catalog |
| Skonfigurowano sieć | Zastąp komunikację równorzędną VPC kartami sieciowymi, Private Link lub regułami zapory | Sieć bezserwerowej płaszczyzny obliczeniowej |
| Dostęp do magazynu w chmurze | Zastąp przestarzałe wzorce dostępu do danych zewnętrznymi lokalizacjami Unity Catalog | Połącz się z chmurą obiektów pamięci masowej za pomocą usługi Unity Catalog |
Upewnij się, że obszar roboczy znajduje się w obsługiwanym regionie.
Aktualizowanie kodu
W poniższych sekcjach wymieniono zmiany kodu i konfiguracji wymagane do wprowadzenia obciążeń zgodnych z bezserwerowymi.
Dostęp do danych
Starsze wzorce dostępu do danych nie są obsługiwane w przypadku bezserwerowych. Zaktualizuj kod, aby zamiast tego używać Unity Catalog.
| Wzorzec klasyczny | Wymiana bezserwerowa | Szczegóły |
|---|---|---|
Ścieżki systemu plików DBFS (dbfs:/...) |
Woluminy katalogu Unity | Co to są woluminy Katalogu Unity? |
| Tabele magazynu metadanych Hive | Tabele katalogu Unity (lub Federacja HMS) | Zaktualizuj obszar roboczy Azure Databricks do Unity Catalog |
| Poświadczenia konta magazynowego | Lokalizacje zewnętrzne katalogu Unity | Połącz się z chmurą obiektów pamięci masowej za pomocą usługi Unity Catalog |
| Niestandardowe pliki JAR JDBC | Federacja Lakehouse | Co to jest federacja zapytań? |
Ostrzeżenie
Dostęp do systemu plików DBFS jest ograniczony w przypadku środowisk bezserwerowych. Przed migracją zaktualizuj wszystkie dbfs:/ ścieżki do woluminów Unity Catalog. Aby uzyskać więcej informacji, zobacz Migrowanie plików przechowywanych w systemie plików DBFS.
Przykład: zastępowanie ścieżek DBFS i odwołań do magazynu metadanych Hive
# Classic
df = spark.read.csv("dbfs:/mnt/datalake/data.csv", header=True)
df.write.parquet("dbfs:/mnt/output/results")
df = spark.table("my_database.my_table")
# Serverless
df = spark.read.csv("/Volumes/main/sales/raw_data/data.csv", header=True)
df.write.parquet("/Volumes/main/analytics/output/results")
df = spark.table("main.my_database.my_table") # three-level namespace
Interfejsy API i kod
Niektóre interfejsy API i wzorce kodu nie są obsługiwane w środowiskach bezserwerowych. Zapoznaj się z tą tabelą, aby sprawdzić, czy kod musi zostać zaktualizowany.
| Wzorzec klasyczny | Wymiana bezserwerowa | Szczegóły |
|---|---|---|
API RDD (interfejsy) (sc.parallelize, rdd.map) |
Interfejsy API ramki danych | Porównaj Spark Connect z Spark Classic |
df.cache(), df.persist() |
Usuwanie wywołań buforowania | Ograniczenia obliczeń bezserwerowych |
spark.sparkContext, sqlContext |
Bezpośrednio użyj spark (SparkSession) |
Porównaj Spark Connect z Spark Classic |
Zmienne Hive (${var}) |
SQL DECLARE VARIABLE lub Python f-strings |
DECLARE VARIABLE |
| Nieobsługiwane konfiguracje platformy Spark | Usuń nieobsługiwane konfiguracje. Serwery bezserwerowe automatycznie dostrajają większość ustawień. | Konfigurowanie właściwości platformy Spark dla notesów i zadań bezserwerowych |
Przykład: zastępowanie operacji RDD ramkami danych
from pyspark.sql import functions as F
# sc.parallelize + rdd.map
# Classic: rdd = sc.parallelize([1, 2, 3]); rdd.map(lambda x: x * 2).collect()
df = spark.createDataFrame([(1,), (2,), (3,)], ["value"])
result = df.select((F.col("value") * 2).alias("value")).collect()
# rdd.flatMap
# Classic: sc.parallelize(["hello world"]).flatMap(lambda l: l.split(" ")).collect()
df = spark.createDataFrame([("hello world",)], ["line"])
words = df.select(F.explode(F.split("line", " ")).alias("word")).collect()
# rdd.groupByKey
# Classic: rdd.groupByKey().mapValues(list).collect()
df = spark.createDataFrame([("a", 1), ("b", 2), ("a", 3)], ["key", "value"])
grouped = df.groupBy("key").agg(F.collect_list("value").alias("values")).collect()
# rdd.mapPartitions → applyInPandas
import pandas as pd
def process_group(pdf: pd.DataFrame) -> pd.DataFrame:
return pd.DataFrame({"total": [pdf["id"].sum()]})
result = (spark.range(100).repartition(4)
.groupBy(F.spark_partition_id())
.applyInPandas(process_group, schema="total long").collect())
# sc.textFile → spark.read.text
df = spark.read.text("/Volumes/catalog/schema/volume/file.txt")
Przykład: Zastąp SparkContext i cache'owanie
from pyspark.sql.functions import broadcast
# sc.broadcast → broadcast join
result = main_df.join(broadcast(lookup_df), "key")
# sc.accumulator → DataFrame aggregation
total = df.agg(F.sum("amount")).collect()[0][0]
# sqlContext.sql → spark.sql
result = spark.sql("SELECT * FROM main.db.table")
# df.cache() → remove caching calls
# Materialize expensive intermediate results to Delta as a workaround:
df = spark.read.parquet(path)
result = df.filter("status = 'active'")
expensive_df.write.format("delta").mode("overwrite").saveAsTable("main.scratch.temp")
result = spark.table("main.scratch.temp")
Biblioteki i środowiska
Można zarządzać bibliotekami oraz środowiskami na poziomie obszaru roboczego, używając środowisk podstawowych, oraz na poziomie notesu, korzystając z środowiska bezserwerowego.
| Wzorzec klasyczny | Wymiana bezserwerowa | Szczegóły |
|---|---|---|
| Skrypty inicjalizacyjne | Środowiska bezserwerowe | Konfiguracja środowiska bezserwerowego |
| Biblioteki o zakresie klastra | Biblioteki o zakresie notesu lub środowiskowe | Konfiguracja środowiska bezserwerowego |
| Biblioteki Maven/JAR | Obsługa zadań JAR; PyPI dla notatników | Zadanie JAR dla prac |
| Kontenery Docker | Środowiska bezserwerowe dla potrzeb biblioteki | Konfiguracja środowiska bezserwerowego |
Przypinanie pakietów Python w requirements.txt dla powtarzalnych środowisk. Zobacz Określanie wersji pakietów w Pythonie.
Streaming
Obciążenia pracy związane z przesyłaniem strumieniowym są obsługiwane w architekturze bezserwerowej, ale niektóre wyzwalacze nie są dostępne. Zaktualizuj kod, aby używał obsługiwanych wyzwalaczy.
| Wyzwalacz Spark | Wsparte | Notatki |
|---|---|---|
Trigger.AvailableNow() |
Yes | Zalecane |
Trigger.Once() |
Yes | Jest to przestarzałe. Użyj Trigger.AvailableNow() zamiast tego. |
Trigger.ProcessingTime(interval) |
Nie. | Zwraca INFINITE_STREAMING_TRIGGER_NOT_SUPPORTED |
Trigger.Continuous(interval) |
Nie. | Zamiast tego używaj trybu ciągłego w potokach Lakeflow |
Wartość domyślna (nie jest ustawieniem .trigger()) |
Nie. | Pominięcie .trigger() powoduje domyślne ustawienie na ProcessingTime("0 seconds"), która nie jest obsługiwana w środowisku bezserwerowym. Zawsze ustawiaj .trigger(availableNow=True) jawnie. |
W przypadku ciągłego przesyłania strumieniowego należy przeprowadzić migrację do potoków deklaratywnych platformy Spark w trybie ciągłym lub używać zadań harmonogramu ciągłego z programem AvailableNow. W przypadku dużych źródeł ustaw maxFilesPerTrigger lub maxBytesPerTrigger, aby zapobiec błędom braku pamięci.
Przykład: naprawianie wyzwalaczy przesyłania strumieniowego
# Classic (not supported on serverless — default trigger is ProcessingTime)
query = df.writeStream.format("delta").outputMode("append").start()
# Serverless (explicit AvailableNow trigger)
query = (df.writeStream.format("delta").outputMode("append")
.trigger(availableNow=True)
.option("checkpointLocation", checkpoint_path)
.start(output_path))
query.awaitTermination()
# With OOM prevention for large sources
query = (spark.readStream.format("delta")
.option("maxFilesPerTrigger", 100)
.option("maxBytesPerTrigger", "10g")
.load(input_path)
.writeStream.format("delta")
.trigger(availableNow=True)
.option("checkpointLocation", checkpoint_path)
.start(output_path))
Testowanie obciążeń
- Szybki test zgodności: uruchom obciążenie w klasycznym środowisku obliczeniowym z trybem dostępu Standard i środowiskiem Databricks Runtime 14.3 lub nowszym. Jeśli przebieg zakończy się pomyślnie, obciążenie może zostać przeniesione do środowiska bezserwerowego bez żadnych zmian w kodzie.
- Porównanie A/B (zalecane w środowisku produkcyjnym): uruchom to samo obciążenie na klasycznym (kontrolce) i bezserwerowym (eksperyment). Porównaj tabele wyjściowe i zweryfikuj poprawność. Iteruj do momentu dopasowania danych wyjściowych.
- Tymczasowe konfiguracje: podczas testowania można tymczasowo ustawić obsługiwane konfiguracje platformy Spark. Usuń je, gdy będą stabilne.
Wybieranie trybu wydajności
Przetwarzanie bezserwerowe i przepływy obsługują dwa tryby wydajności: standardowy i zoptymalizowany pod kątem wydajności. Wybrany tryb wydajności zależy od wymagań dotyczących obciążenia.
| Tryb | dostępność | Firma startupowa | Najlepsze dla |
|---|---|---|---|
| Standard | Zadania, potoki Lakeflow | 4–6 minut | Partia wrażliwa na koszty |
| Zoptymalizowane pod kątem wydajności | Notatniki, zadania, potoki Lakeflow | Sekundy | Interakcyjne, wrażliwe na opóźnienia |
Migrowanie w fazach
- Nowe obciążenia: Uruchamiaj wszystkie nowe notesy i zadania na platformie bezserwerowej.
- Obciążenia o niskim ryzyku: migrowanie obciążeń PySpark/SQL już w standardowym trybie dostępu i środowisku Databricks Runtime 14.3 lub nowszym.
- Złożone obciążenia: migrowanie obciążeń wymagających zmian kodu (ponowne zapisywanie RDD, aktualizacje systemu plików DBFS, poprawki wyzwalacza).
- Pozostałe obciążenia: okresowe przeglądanie w miarę rozszerzania możliwości.
Monitorowanie kosztów
Rozliczenia bezserwerowe są oparte na użyciu jednostek DBU, a nie na czasie działania klastra. Przed migracją na dużą skalę zweryfikuj oczekiwania dotyczące kosztów z reprezentatywnymi obciążeniami. Aby zapoznać się z narzędziami i strategiami monitorowania kosztów bezserwerowych, zobacz Monitorowanie kosztów obliczeń bezserwerowych.
Dodatkowe zasoby
- Najlepsze rozwiązania dotyczące przetwarzania bezserwerowego: porady dotyczące optymalizacji dla obciążeń bezserwerowych
- Ograniczenia obliczeniowe bezserwerowe: pełna lista bieżących ograniczeń i nieobsługiwanych funkcji
- Konfigurowanie środowiska bezserwerowego: zarządzanie bibliotekami i zależnościami
- Obsługiwane konfiguracje Spark: konfiguracje Spark dostępne w środowisku bezserwerowym
- Spark Connect a klasyczna platforma Spark: różnice behawioralne w architekturze bezserwerowej
- Zabezpieczenia sieci bezserwerowej: kontrolery sieci, Private Link i konfiguracja zapory
- Informacje o wersji obliczeniowej bezserwerowej: śledzenie nowych możliwości w miarę ich dostarczania
- Przewodnik uaktualniania katalogu Unity: Migrowanie z Hive Metastore do katalogu Unity
Więcej informacji można również znaleźć w następujących wpisach w blogu:
- Co to jest przetwarzanie bezserwerowe?: Omówienie możliwości bezserwerowych i wyników klientów
- Ewolucja inżynierii danych: Jak przetwarzanie bezserwerowe przekształca notesy i zadania Lakeflow: Jak przetwarzanie bezserwerowe wspiera zadania i potoki Lakeflow.