Udostępnij za pośrednictwem


Dokumentacja tabeli systemu optymalizacji predykcyjnej

Ważne

Ta tabela systemowa jest dostępna w publicznej wersji zapoznawczej. Aby uzyskać dostęp do tabeli, schemat musi być włączony w system katalogu. Aby uzyskać więcej informacji, zobacz Włączanie schematów tabel systemowych.

Uwaga

Aby mieć dostęp do tej tabeli, należy włączyć storage schemat (zobacz Włączanie schematów tabel systemowych), a region musi obsługiwać optymalizację predykcyjną (zobacz Regiony usługi Azure Databricks).

W tym artykule opisano schemat tabeli historii operacji optymalizacji predykcyjnej i przedstawiono przykładowe zapytania. Optymalizacja predykcyjna optymalizuje układ danych pod kątem szczytowej wydajności i wydajności kosztów. Tabela systemowa śledzi historię operacji tej funkcji. Aby uzyskać informacje na temat optymalizacji predykcyjnej, zobacz Optymalizacja predykcyjna dla tabel zarządzanych przez wykaz aparatu Unity.

Ścieżka tabeli: ta tabela systemowa znajduje się w lokalizacji system.storage.predictive_optimization_operations_history.

Zagadnienia dotyczące dostarczania

  • Wypełnienie danych może potrwać do 24 godzin.
  • Optymalizacja predykcyjna może uruchamiać wiele operacji w tym samym klastrze. Jeśli tak, udział jednostek DBU przypisany do każdej z wielu operacji jest przybliżony. usage_unit Dlatego parametr ma wartość ESTIMATED_DBU. Mimo to łączna liczba jednostek DBU wydanych na klaster będzie dokładna.

Schemat tabeli optymalizacji predykcyjnej

Tabela systemu historii operacji optymalizacji predykcyjnej używa następującego schematu:

Nazwa kolumny Typ danych opis Przykład
account_id string Identyfikator konta. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string Identyfikator obszaru roboczego, w którym uruchomiono operację optymalizacji predykcyjnej. 1234567890123456
start_time timestamp Godzina rozpoczęcia operacji. Informacje o strefie czasowej są rejestrowane na końcu wartości reprezentującej +00:00 czas UTC. 2023-01-09 10:00:00.000+00:00
end_time timestamp Godzina zakończenia operacji. Informacje o strefie czasowej są rejestrowane na końcu wartości reprezentującej +00:00 czas UTC. 2023-01-09 11:00:00.000+00:00
metastore_name string Nazwa magazynu metadanych, do którego należy zoptymalizowana tabela. metastore
catalog_name string Nazwa katalogu, do którego należy zoptymalizowana tabela. catalog
schema_name string Nazwa schematu, do którego należy zoptymalizowana tabela. schema
table_id string Identyfikator zoptymalizowanej tabeli. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name string Nazwa zoptymalizowanej tabeli. table1
operation_type string Operacja optymalizacji, która została wykonana. Wartość będzie mieć COMPACTIONwartość , VACUUMlub CLUSTERING. COMPACTION
operation_id string Identyfikator operacji optymalizacji. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status string Stan operacji optymalizacji. Wartość będzie mieć SUCCESSFUL wartość lub FAILED: INTERNAL_ERROR. SUCCESSFUL
operation_metrics map[ciąg, ciąg] Dodatkowe szczegóły dotyczące określonej optymalizacji, która została wykonana. Zobacz Metryki operacji. {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}
usage_unit string Jednostka użycia, jaką poniosła ta operacja. Może być tylko jedną wartością: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity decimal Ilość jednostki użycia, która została użyta przez tę operację. 2.12

Metryki operacji

Metryki zarejestrowane w operation_metrics kolumnie różnią się w zależności od typu operacji:

  • COMPACTION: number_of_compacted_files, , amount_of_data_compacted_bytes, , number_of_output_filesamount_of_output_data_bytes
  • VACUUM: number_of_deleted_files, amount_of_data_deleted_bytes
  • CLUSTERING: number_of_removed_files, , number_of_clustered_files, , amount_of_data_removed_bytesamount_of_clustered_data_bytes

Przykładowe zapytania

Poniższe sekcje zawierają przykładowe zapytania, których można użyć, aby uzyskać wgląd w tabelę systemu optymalizacji predykcyjnej. Aby te zapytania działały, należy zastąpić wartości w nawiasach klamrowych {{}} własnymi parametrami.

Ten artykuł zawiera następujące przykładowe zapytania:

Ile szacowanych jednostek DBU korzysta z optymalizacji predykcyjnej w ciągu ostatnich 30 dni?

SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
     usage_unit = "ESTIMATED_DBU"
     AND  timestampdiff(day, start_time, Now()) < 30

W których tabelach optymalizacja predykcyjna wydała najwięcej w ciągu ostatnich 30 dni (szacowany koszt)?

SELECT
     metastore_name,
     catalog_name,
     schema_name,
     table_name,
     SUM(usage_quantity) as totalDbus
FROM system.storage.predictive_optimization_operations_history
WHERE
    usage_unit = "ESTIMATED_DBU"
    AND timestampdiff(day, start_time, Now()) < 30
GROUP BY ALL
ORDER BY totalDbus DESC

W jakich tabelach optymalizacja predykcyjna wykonuje najwięcej operacji?

SELECT
     metastore_name,
     catalog_name,
     schema_name,
     table_name,
     operation_type,
     COUNT(DISTINCT operation_id) as operations
FROM system.storage.predictive_optimization_operations_history
GROUP BY ALL
ORDER BY operations DESC

Ile bajtów w danym wykazie zostało skompaktowanych?

SELECT
     schema_name,
     table_name,
     SUM(operation_metrics["amount_of_data_compacted_bytes"]) as bytesCompacted
FROM system.storage.predictive_optimization_operations_history
WHERE
    metastore_name = {{metastore_name}}
    AND catalog_name = {{catalog_name}}
    AND operation_type = "COMPACTION"
GROUP BY ALL
ORDER BY bytesCompacted DESC

Jakie tabele miały najwięcej bajtów opróżnionych?

SELECT
     metastore_name,
     catalog_name,
     schema_name,
     table_name,
     SUM(operation_metrics["amount_of_data_deleted_bytes"]) as bytesVacuumed
FROM system.storage.predictive_optimization_operations_history
WHERE operation_type = "VACUUM"
GROUP BY ALL
ORDER BY bytesVacuumed DESC

Jaki jest współczynnik powodzenia operacji uruchamianych przez optymalizacje predykcyjne?

WITH operation_counts AS (
     SELECT
           COUNT(DISTINCT (CASE WHEN operation_status = "SUCCESSFUL" THEN operation_id END)) as successes,
           COUNT(DISTINCT operation_id) as total_operations
    FROM system.storage.predictive_optimization_operations_history
 )
SELECT successes / total_operations as success_rate
FROM operation_counts