Delen via


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 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: COMPACTION, , VACUUMANALYZE, CLUSTERING, , AUTO_CLUSTERING_COLUMN_SELECTION, , of DATA_SKIPPING_COLUMN_SELECTIONCOMPATIBILITY_MODE_REFRESH. 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 of FAILED: INTERNAL_ERROR. SUCCESSFUL
operation_metrics map[tekenreeks, tekenreeks] Aanvullende informatie 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 gebruikseenheid die aan deze bewerking is toegekend. Moet de volgende waarde zijn: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity decimaal De hoeveelheid gebruikseenheid die door deze bewerking is gebruikt. 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 door deze bewerking is verwijderd.
amount_of_data_compacted_bytes Hoeveelheid bytes verwijderd door deze bewerking.
number_of_output_files Het aantal nieuwe bestanden dat door deze bewerking is toegevoegd.
amount_of_output_data_bytes Het aantal bytes dat door deze bewerking is toegevoegd.
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 Aantal bestanden garbage verzameld door deze bewerking.
amount_of_data_deleted_bytes Hoeveelheid bytes garbage verzameld door deze bewerking.
ANALYZE Activeert incrementele update van statistieken om de queryprestaties te verbeteren. Zie ANALYZE TABLE. amount_of_scanned_bytes Het aantal bytes dat door deze bewerking is gescand.
number_of_scanned_files Het aantal bestanden dat door deze bewerking is gescand.
staleness_percentage_reduced Vermindering van het verouderingspercentage na deze bewerking. Deze statistiek kan variëren van 0 tot 100 op basis 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 door deze bewerking is verwijderd.
number_of_clustered_files Het aantal nieuwe bestanden dat door deze bewerking is toegevoegd.
amount_of_data_removed_bytes Hoeveelheid bytes verwijderd door deze bewerking.
amount_of_clustered_data_bytes Het aantal bytes dat door deze bewerking is toegevoegd.
AUTO_CLUSTERING_COLUMN_SELECTION Evalueert of u clusteringkolommen wilt ontwikkelen. Zie Automatische vloeistofclustering. old_clustering_columns Vorige gegevensstructuur, die oude clusteringsleutels kan zijn of 'None' indien deze niet is gepartitioneerd.
new_clustering_columns Nieuwe clusteringkolommen die door deze bewerking worden toegepast.
has_column_selection_changed Of de clusterkolommen door deze bewerking geëvolueerd zijn.
additional_reason Redenen voor de wijziging of geen wijziging in clusterkolommen.
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 door deze bewerking is gescand.
number_of_scanned_files Het aantal bestanden dat door deze bewerking is gescand.
added_data_skipping_columns Kolommen voor het overslaan van gegevens die door deze bewerking zijn toegevoegd.
removed_data_skipping_columns Kolommen voor gegevensoverslaan die door deze bewerking zijn verwijderd.
old_data_skipping_columns Vorige uitgebreide lijst van kolommen die gegevens overslaan.
new_data_skipping_columns Huidige uitgebreide lijst met kolommen voor het overslaan van gegevens.
COMPATIBILITY_MODE_REFRESH Hiermee wordt gedetecteerd of de compatibiliteitsmodus verouderd is en wordt de tabel vernieuwd. Zie de compatibiliteitsmodus. N/A Vernieuwingsbewerkingen in de compatibiliteitsmodus.

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;