Naslaginformatie over systeemtabellen voor voorspellende optimalisatie

Belangrijk

Deze systeemtabel bevindt zich in openbare preview.

Notitie

Als u toegang tot deze tabel wilt hebben, moet uw regio ondersteuning bieden voor voorspellende optimalisatie. Zie Azure Databricks regio's.

In dit artikel vindt u een overzicht van het schema van de tabel voor de bewerkingsgeschiedenis van voorspellende optimalisatie en vindt u voorbeeldquery's. Voorspellende optimalisatie optimaliseert uw gegevensindeling voor piekprestaties en kostenefficiëntie. De systeemtabel houdt de bewerkingsgeschiedenis van deze functie bij. Zie Voorspellende optimalisatie voor beheerde tabellen in Unity Catalog voor informatie over voorspellende optimalisatie.

Tabelpad: Deze systeemtabel bevindt zich op system.storage.predictive_optimization_operations_history.

Overwegingen voor levering

  • De systeemtabel voor voorspellende optimalisatie wordt binnen twee uur bijgewerkt. Het kan echter tot 24 uur duren voordat de facturatiegegevens in de data verschijnen.
  • Voorspellende optimalisatie kan meerdere bewerkingen uitvoeren op hetzelfde cluster. Als dat zo is, wordt het aandeel van DBU's dat aan elk van de verschillende bewerkingen wordt toegeschreven, geschat. Daarom is de usage_unit ingesteld op ESTIMATED_DBU. Toch is het totale aantal DBU's dat aan het cluster is besteed, nauwkeurig.

Schema voor voorspellende optimalisatietabellen

De systeemtabel voor de bewerkingsgeschiedenis van voorspellende optimalisatie maakt gebruik van het volgende schema:

Kolomnaam Gegevenstype Beschrijving Voorbeeld
account_id tekenreeks De id van het account. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id tekenreeks De id van de werkruimte waarin voorspellende optimalisatie de bewerking heeft uitgevoerd. 1234567890123456
start_time tijdstempel Het tijdstip waarop de bewerking is gestart. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde, waarbij +00:00 UTC vertegenwoordigt. 2023-01-09 10:00:00.000+00:00
end_time tijdstempel Het tijdstip waarop de bewerking is beëindigd. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde, waarbij +00:00 UTC vertegenwoordigt. 2023-01-09 11:00:00.000+00:00
metastore_name tekenreeks De naam van de metastore waartoe de geoptimaliseerde tabel behoort. metastore
metastore_id tekenreeks De id van de metastore waartoe de geoptimaliseerde tabel behoort. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
catalog_name tekenreeks De naam van de catalogus waartoe de geoptimaliseerde tabel behoort. catalog
schema_name tekenreeks De naam van het schema waartoe de geoptimaliseerde tabel behoort. schema
table_id tekenreeks De id van de geoptimaliseerde tabel. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name tekenreeks De naam van de geoptimaliseerde tabel. table1
operation_type tekenreeks De optimalisatiebewerking is uitgevoerd. Moet een van de volgende waarden zijn: , , , , , AUTO_CLUSTERING_COLUMN_SELECTION, COMPATIBILITY_MODE_REFRESHDATA_SKIPPING_COLUMN_SELECTION, DELETE, of PURGE. CLUSTERINGANALYZEVACUUMCOMPACTION COMPACTION
operation_id tekenreeks De id voor de optimalisatiebewerking. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status tekenreeks De status van de optimalisatiebewerking. Moet een van de volgende waarden zijn: SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERRORof FAILED: PRIVATE_LINK_SETUP_ERROR. SUCCESSFUL
operation_metrics map[tekenreeks, tekenreeks] De extra details over de specifieke optimalisatie die is uitgevoerd. Zie Operationele statistieken. {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}
usage_unit tekenreeks De eenheid van gebruik die werd gemaakt. Moet de volgende waarde zijn: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity decimaal De hoeveelheid gebruikte eenheid. 2.12

Operationele kengetallen

De metrische gegevens die in de kolom operation_metrics zijn vastgelegd, variëren afhankelijk van het bewerkingstype:

Bewerkingsnaam Beschrijving van bewerking Metrische gegevens over bewerkingen Beschrijving
COMPACTION Verbetert de queryprestaties door de bestandsgrootten te optimaliseren. Zie Indeling van gegevensbestand optimaliseren. number_of_compacted_files Het aantal bestanden dat is verwijderd.
amount_of_data_compacted_bytes Het aantal verwijderde bytes.
number_of_output_files Het aantal nieuwe bestanden dat is toegevoegd.
amount_of_output_data_bytes Het aantal toegevoegde bytes.
VACUUM Vermindert de opslagkosten door gegevensbestanden te verwijderen waarnaar niet meer wordt verwezen door de tabel. Zie Ongebruikte gegevensbestanden verwijderen met vacuüm. number_of_deleted_files Het aantal bestanden dat afval verzamelde.
amount_of_data_deleted_bytes Het aantal bytes dat garbage collected is.
ANALYZE Activeert incrementele update van statistieken om de queryprestaties te verbeteren. Zie ANALYZE TABLE ... REKENSTATISTIEKEN. amount_of_scanned_bytes Het aantal bytes dat gescand is.
number_of_scanned_files Het aantal gescand bestanden.
staleness_percentage_reduced De vermindering van het percentage oude bloed. Deze statistiek kan variëren van 0 tot 100, afhankelijk van de frequentie die ANALYZE wordt uitgevoerd.
CLUSTERING Triggert stapsgewijze clustering van ingeschakelde tabellen. Zie Liquid Clustering gebruiken voor tabellen. number_of_removed_files Het aantal bestanden dat is verwijderd.
number_of_clustered_files Het aantal nieuwe bestanden dat is toegevoegd.
amount_of_data_removed_bytes Het aantal verwijderde bytes.
amount_of_clustered_data_bytes Het aantal toegevoegde bytes.
AUTO_CLUSTERING_COLUMN_SELECTION Evalueert of u clusteringkolommen wilt ontwikkelen. Zie Automatische vloeistofclustering. old_clustering_columns De vorige datalay-out, die oude clusteringsleutels kan zijn of "Geen" als ze niet gepartitioneerd zijn.
new_clustering_columns De nieuwe clusterkolommen.
has_column_selection_changed De indicator of de clusterende kolommen veranderd zijn.
additional_reason De redenen voor de verandering of geen verandering in clusteringskolommen.
DATA_SKIPPING_COLUMN_SELECTION Detecteert kolommen met ontbrekende gegevens, waarbij statistieken uit werkbelastinggegevens worden overgeslagen en vult deze vervolgens aan. Zie Gegevens overslaan. amount_of_scanned_bytes Het aantal bytes dat gescand is.
number_of_scanned_files Het aantal gescand bestanden.
added_data_skipping_columns De kolommen die data overslaan zijn toegevoegd.
removed_data_skipping_columns De kolommen die data overslaan zijn verwijderd.
old_data_skipping_columns De vorige uitputtende lijst van kolommen die data overslaan.
new_data_skipping_columns De huidige uitputtende lijst van kolommen die data overslaan.
COMPATIBILITY_MODE_REFRESH Hiermee wordt gedetecteerd of de compatibiliteitsmodus verouderd is en wordt de tabel vernieuwd. Zie de compatibiliteitsmodus. N/A De verversingsoperaties in de compatibiliteitsmodus.
DELETE Verwijdert rijen die de automatische time-to-live vervaldatum hebben overschreden. Zie Automatisch verwijderen van rijen met automatische time-to-live. number_of_deleted_rows Het aantal rijen dat is verwijderd. Dit was 0 het moment waarop geen rijen in aanmerking kwamen voor verwijdering.
amount_of_data_deleted_bytes Het aantal verwijderde bytes.
PURGE Herschrijft databestanden om rijen die al verwijderd zijn fysiek te verwijderen met verwijderingsvectoren. Draait eerder VACUUM op tabellen met verwijdervectoren ingeschakeld. Zie Automatisch verwijderen van rijen met automatische time-to-live. number_of_purged_rows Het aantal rijen is gezuiverd. Dit was 0 het moment waarop geen enkele rij in aanmerking kwam om te zuiveren. Zie Automatisch verwijderen van rijen met automatische time-to-live.

Voorbeeldqueries

De volgende secties bevatten voorbeeldquery's die u kunt gebruiken om inzicht te krijgen in de tabel van het voorspellend optimalisatiesysteem. Voordat deze query's werken, moet u de parameterwaarden vervangen door uw eigen waarden.

Dit artikel bevat de volgende voorbeeldquery's:

Hoeveel geschatte DBU's hebben voorspellende optimalisatie gebruikt in de afgelopen 30 dagen?

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

Als u dezelfde waarde voor een specifieke ETL-pijplijn wilt vinden, kunt u eerst de tabellen in die pijplijn vinden en vervolgens zoeken naar de DBU's:

-- Find all full table names for the pipeline:
WITH pipeline_mapping AS (
  SELECT DISTINCT target_table_full_name AS target_table_name
  FROM system.access.table_lineage
  WHERE entity_type = 'PIPELINE' AND entity_id = :pipeline_id
)
-- Select all operations for any table in that pipeline:
SELECT SUM(usage_quantity)
  FROM system.storage.predictive_optimization_operations_history
  WHERE
    CONCAT_WS('.', catalog_name, schema_name, table_name)
      IN ( SELECT target_table_name FROM pipeline_mapping)
    AND usage_unit = "ESTIMATED_DBU"
    AND timestampdiff(day, start_time, Now()) < 30;

Op welke tabellen is voorspellende optimalisatie de afgelopen 30 dagen (geschatte kosten) het meest besteed?

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;

Op welke tabellen worden de meeste bewerkingen uitgevoerd door voorspellende optimalisatie?

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;

Voor een bepaalde catalogus hoeveel totaal aantal bytes zijn gecomprimeerd?

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;

Welke tabellen hadden de meeste bytes leeggezogen?

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;

Wat is het slagingspercentage voor bewerkingen die worden uitgevoerd door voorspellende optimalisatie?

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;