Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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_unitingesteld opESTIMATED_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?
- Op welke tabellen heeft voorspellende optimalisatie de meeste kosten besteed in de afgelopen 30 dagen (geschatte kosten)?
- Op welke tabellen worden voorspellende optimalisaties uitgevoerd voor de meeste bewerkingen?
- Hoeveel totale bytes zijn voor een bepaalde catalogus gecomprimeerd?
- Welke tabellen hadden de meeste bytes gevacumeerd?
- Wat is het slagingspercentage voor bewerkingen die worden uitgevoerd door voorspellende optimalisatie?
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;