Optymalizacja predykcyjna dla tabel zarządzanych w Unity Catalog
Usługa Databricks domyślnie włącza optymalizację predykcyjną dla wszystkich kont utworzonych po 11 listopada 2024 r.
Optymalizacja predykcyjna eliminuje konieczność ręcznego zarządzania operacjami utrzymania dla tabel zarządzanych przez Unity Catalog w usłudze Azure Databricks.
Po włączeniu optymalizacji predykcyjnej usługa Azure Databricks automatycznie wykonuje następujące czynności:
- Identyfikuje tabele, które wymagają operacji utrzymania i kolejkuje te operacje do wykonania.
- Zbiera statystyki, gdy dane są zapisywane w zarządzanej tabeli.
Operacje konserwacji są uruchamiane w razie potrzeby, eliminując zarówno niepotrzebne uruchomienia operacji konserwacji, jak i obciążenia związane ze śledzeniem i rozwiązywaniem problemów z wydajnością.
Usługa Databricks zaleca użycie automatycznego płynnego klastrowania i optymalizacji predykcyjnej dla wszystkich tabel zarządzanych przez Unity Catalog. Te funkcje zapewniają inteligentną optymalizację układu danych na podstawie wzorców użycia danych. Zobacz Użyj płynnego klastrowania dla tabel Delta.
Ważne
Optymalizacja predykcyjna działa tylko na tabelach zarządzanych przez Unity Catalog.
Optymalizacja predykcyjna nie jest uruchamiana w tabelach przesyłania strumieniowego ani w zmaterializowanych widokach utworzonych w usłudze Databricks SQL ani przy użyciu potoków DLT.
Jakie operacje są uruchamiane podczas optymalizacji predykcyjnej?
Optymalizacja predykcyjna automatycznie uruchamia następujące operacje dla tabel z włączoną obsługą:
Działanie | opis |
---|---|
OPTIMIZE
(1) |
Inicjuje klastrowanie przyrostowe dla włączonych tabel. Zobacz Użyj płynnego klastrowania dla tabel Delta. Zwiększa wydajność zapytań, optymalizując rozmiary plików. Zobacz Optymalizowanie układu pliku danych. |
VACUUM |
Zmniejsza koszty magazynowania, usuwając pliki danych, do których nie odwołuje się tabela. Zobacz Usuwanie nieużywanych plików danych za pomocą próżni. |
ANALYZE |
Wyzwala przyrostowe aktualizowanie statystyk w celu zwiększenia wydajności zapytań. Zobacz ANALYZE TABLE. |
(1)OPTIMIZE
nie uruchamia się ZORDER
podczas wykonywania przy użyciu optymalizacji predykcyjnej. W tabelach korzystających z kolejności Z optymalizacja predykcyjna zignoruje uporządkowane pliki Z.
Jeśli automatyczne klastrowanie płynne jest włączone, optymalizacja predykcyjna może wybrać nowe klucze klastrowania przed klastrowaniem danych. Zobacz Użyj płynnego klastrowania dla tabel Delta.
Ostrzeżenie
Okno przechowywania dla polecenia VACUUM
jest określane przez właściwość tabeli delta.deletedFileRetentionDuration
, która domyślnie wynosi 7 dni. Oznacza to, że VACUUM
usuwa pliki danych, do których nie odwołuje się już żadna wersja tabeli Delta z ostatnich 7 dni. Jeśli chcesz przechowywać dane dłużej (na przykład w celu obsługi podróży w czasie dłuższym przez dłuższy czas), musisz odpowiednio ustawić tę właściwość tabeli przed włączeniem optymalizacji predykcyjnej, jak w poniższym przykładzie:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Gdzie jest uruchamiana optymalizacja predykcyjna?
Optymalizacja predykcyjna identyfikuje tabele, które mogą korzystać z operacji ANALYZE
, OPTIMIZE
, i VACUUM
i je kolejkuje do uruchomienia dla zadań przy użyciu bezserwerowych obliczeń. Twoje konto jest rozliczane za zasoby obliczeniowe skojarzone z tymi obciążeniami przy użyciu SKU właściwego dla usług zarządzanych przez Databricks. Zobacz cennik zarządzanych usług Databricks. Zobacz Używanie tabel systemowych do śledzenia optymalizacji predykcyjnej.
Wymagania wstępne dotyczące optymalizacji predykcyjnej
Aby włączyć optymalizację predykcyjną, musisz spełnić następujące wymagania:
- Obszar roboczy usługi Azure Databricks musi znajdować się w planie Premium w regionie obsługującym optymalizację predykcyjną. Zobacz funkcje o ograniczonej dostępności regionalnej.
- Podczas włączania optymalizacji predykcyjnej należy użyć usług SQL Warehouse lub Databricks Runtime 12.2 LTS lub nowszych.
- Obsługiwane są tylko tabele zarządzane przez Unity Catalog.
- Jeśli potrzebujesz prywatnej łączności dla kont magazynowych, musisz skonfigurować bezserwerową łączność prywatną. Zobacz Konfigurowanie łączności prywatnej z zasobów obliczeniowych bezserwerowych.
Włączanie optymalizacji predykcyjnej
Optymalizację predykcyjną można włączyć dla konta, katalogu lub schematu. Wszystkie tabele zarządzane przez Unity Catalog domyślnie dziedziczą wartość konta. Możesz zastąpić domyślne ustawienia konta dla katalogu lub schematu, aby włączyć lub wyłączyć optymalizację predykcyjną na tym poziomie.
Uwaga
Jeśli twoje konto zostało utworzone po 11 listopada 2024 r., optymalizacja predykcyjna jest domyślnie włączona dla Twojego konta.
Aby włączyć lub wyłączyć optymalizację predykcyjną na określonym poziomie, musisz mieć następujące uprawnienia:
Obiekt katalogu Unity | Przywilej |
---|---|
Konto | Administrator konta |
Katalog | Właściciel wykazu |
Schemat | Właściciel schematu |
Włączanie lub wyłączanie optymalizacji predykcyjnej dla konta
Administrator konta może wykonać następujące kroki, aby włączyć optymalizację predykcyjną dla wszystkich magazynów metadanych na koncie. Obiekty na koncie będą domyślnie dziedziczyć to ustawienie (ale ustawienie może zostać zastąpione na poziomie katalogu lub schematu):
- Uzyskaj dostęp do konsoli kont.
- Przejdź do pozycji Ustawienia, a następnie włącz funkcję.
- Wybierz opcję do użycia (na przykład Włączone) obok Optymalizacja predykcyjna.
Uwaga
- Magazyny metadanych w regionach, które nie obsługują optymalizacji predykcyjnej, nie są włączone.
- Wyłączenie optymalizacji predykcyjnej na poziomie konta nie powoduje wyłączenia jej dla wykazów ani schematów, które je specjalnie włączyły.
Włączanie lub wyłączanie optymalizacji predykcyjnej dla wykazu lub schematu
Optymalizacja predykcyjna używa modelu dziedziczenia. Po włączeniu dla katalogu, schematy dziedziczą tę właściwość. Tabele w aktywowanym schemacie dziedziczą optymalizację predykcyjną. Aby zastąpić to zachowanie dziedziczenia, możesz jawnie włączyć lub wyłączyć optymalizację predykcyjną katalogu lub schematu.
Uwaga
Optymalizację predykcyjną można wyłączyć na poziomie katalogu lub schematu przed włączeniem jej na poziomie konta. Jeśli optymalizacja predykcyjna zostanie później włączona na koncie, zostanie ona zablokowana dla tabel w tych obiektach.
Użyj następującej składni, aby włączyć lub wyłączyć optymalizację predykcyjną lub powrócić do wartości domyślnej dziedziczonej z obiektu nadrzędnego:
ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
Sprawdzanie, czy optymalizacja predykcyjna jest włączona
Pole Predictive Optimization
jest właściwością katalogu Unity, która informuje, czy optymalizacja predykcyjna jest włączona. Jeśli optymalizacja predykcyjna jest dziedziczona z obiektu nadrzędnego, jest to wskazane w wartości pola.
Użyj następującej składni, aby sprawdzić, czy włączono optymalizację predykcyjną:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
Śledzenie optymalizacji predykcyjnej przy użyciu tabel systemowych
Usługa Azure Databricks udostępnia tabelę systemu system.storage.predictive_optimization_operations_history
w celu wglądu w operacje optymalizacji predykcyjnej, koszty i wpływ. Zobacz odnośnik do tabeli systemu optymalizacji predykcyjnej .
Komunikat o błędzie łącza prywatnego
Jeśli tabela systemowa oznacza operacje jako nieudane z FAILED: PRIVATE_LINK_SETUP_ERROR
, mogłeś nie skonfigurować poprawnie łącza prywatnego dla obliczeń bezserwerowych. Zobacz Konfigurowanie łączności prywatnej z zasobów obliczeniowych bezserwerowych.
Ograniczenia
Optymalizacja predykcyjna nie jest dostępna we wszystkich regionach. Zobacz funkcje o ograniczonej dostępności regionalnej.
W przypadku tabel z czasem przechowywania usuniętych plików (delta.deletedFileRetentionDuration
) skonfigurowanym poniżej wartości domyślnej 7 dni optymalizacja predykcyjna jest uruchamiana VACUUM
z czasem przechowywania określonym jako 7 dni. Zobacz Konfigurowanie przechowywania danych dla zapytań dotyczących podróży w czasie.
Optymalizacja predykcyjna nie wykonuje operacji konserwacji w następujących tabelach:
- Tabele załadowane do obszaru roboczego jako odbiorcy w ramach Delta Sharing.
- Tabele zewnętrzne.
- Zmaterializowane widoki. Zobacz Używanie widoków materializowanych w Databricks SQL.
- Tabele strumieniowania. Zobacz Ładowanie danych przy użyciu tabel strumieniowych w usłudze Databricks SQL.