Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Tato systémová tabulka je ve verzi Public Preview.
Poznámka:
Pokud chcete mít přístup k této tabulce, musí vaše oblast podporovat prediktivní optimalizaci. Podívejte se na oblasti Azure Databricks.
Tento článek popisuje schéma tabulky historie operací prediktivní optimalizace a poskytuje ukázkové dotazy. Prediktivní optimalizace optimalizuje rozložení dat pro zajištění špičkového výkonu a efektivity nákladů. Systémová tabulka sleduje historii operací této funkce. Informace o prediktivní optimalizaci najdete v tématu Prediktivní optimalizace spravovaných tabulek v katalogu Unity.
Cesta k tabulce: Tato systémová tabulka se nachází na system.storage.predictive_optimization_operations_historyadrese .
Dostupnost rekordů
Záznamy jsou obvykle dostupné do 12 hodin. Doručení dat do nových pracovních prostor může trvat déle.
Considerations
Prediktivní optimalizace může na stejném clusteru spouštět více operací. Pokud ano, podíl jednotek DBU přiřazených každému z více operací je přibližný. To je důvod, proč je usage_unit nastaveno na ESTIMATED_DBU. Přesto je celkový počet DBU vynaložených na cluster přesný.
Schéma tabulky prediktivní optimalizace
Systémová tabulka historie operací prediktivní optimalizace používá následující schéma:
| Název sloupce | Datový typ | Popis | Příklad |
|---|---|---|---|
account_id |
řetězec | ID účtu. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
řetězec | ID pracovního prostoru, ve kterém prediktivní optimalizace provedla operaci. | 1234567890123456 |
start_time |
časové razítko | Čas, kdy byla operace spuštěna. Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. |
2023-01-09 10:00:00.000+00:00 |
end_time |
časové razítko | Čas ukončení operace. Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
řetězec | Název metastoru, do kterého patří optimalizovaná tabulka. | metastore |
metastore_id |
řetězec | ID metastoru, do kterého patří optimalizovaná tabulka. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
catalog_name |
řetězec | Název katalogu, do kterého patří optimalizovaná tabulka. | catalog |
schema_name |
řetězec | Název schématu, do kterého patří optimalizovaná tabulka. | schema |
table_id |
řetězec | ID optimalizované tabulky. Pro REFRESH_INDEX, ID indexu. |
138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
řetězec | Název optimalizované tabulky. Pro REFRESH_INDEX, název indexu. |
table1 |
operation_type |
řetězec | Operace optimalizace se provedla. Musí být jedna z následujících hodnotCOMPACTION: , , VACUUM, CLUSTERINGANALYZE, DATA_SKIPPING_COLUMN_SELECTIONAUTO_CLUSTERING_COLUMN_SELECTION, , COMPATIBILITY_MODE_REFRESH, DELETE, , PURGE, nebo REFRESH_INDEX. |
COMPACTION |
operation_id |
řetězec | ID operace optimalizace. | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
řetězec | Stav operace optimalizace. Viz Hodnoty stavu operace. | SUCCESSFUL |
operation_metrics |
map[řetězec, řetězec] | Další podrobnosti o konkrétní optimalizaci, která byla provedena. Viz Metriky operací. | {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"} |
usage_unit |
řetězec | Jednotka použití vznikla. Musí být následující hodnota: ESTIMATED_DBU. |
ESTIMATED_DBU |
usage_quantity |
desítkové číslo | Množství použité jednotky. | 2.12 |
Hodnoty stavu operace
Sloupec operation_status má jednu z následujících hodnot:
-
SUCCESSFUL: Operace byla úspěšně dokončena. -
FAILED: INTERNAL_ERROR: Operace selhala z důvodu, který nemá konkrétnější status. -
FAILED: PRIVATE_LINK_SETUP_ERROR: Cloudové úložiště tabulky odmítalo přístup k serverless výpočetnímu režimu, obvykle kvůli nastavení Private Link nebo firewallu. Viz Bezserverové výpočetní platformové sítě. -
FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROR: Sloupec času v politice automatického času na život v tabulce neexistuje, například proto, že byl vyřazen nebo přejmenován. Viz Automatické odstraňování řádků s automatickou dobou životnosti (TTL). -
FAILED: TRANSACTION_CONFLICT_ERROR: Operace kolidovala s souběžným zápisem do tabulky. Viz Výjimky konfliktů. -
FAILED: CANNOT_MODIFY_APPEND_ONLY_ERROR: Automatické měření času do života nemůže smazat řádky, protože vlastnost tabulkyappendOnlyjetrue. Viz vlastnosti tabulky. -
FAILED: DATATYPE_MISMATCH_ERROR: Sloupec času v politice automatického času na životě má jiný datový typ nežDATE,TIMESTAMP, neboTIMESTAMP_NTZ. Viz Automatické odstraňování řádků s automatickou dobou životnosti (TTL).
Metriky operací
Metriky zaznamenané ve sloupci operation_metrics se liší v závislosti na typu operace:
| Název operace | Popis operace | Metriky operací | Description |
|---|---|---|---|
COMPACTION |
Zlepšuje výkon dotazů optimalizací velikostí souborů. Viz Optimalizace rozložení datového souboru. | number_of_compacted_files |
Počet odebraných souborů |
amount_of_data_compacted_bytes |
Počet odebraných bajtů | ||
number_of_output_files |
Počet nových souborů, které byly přidány. | ||
amount_of_output_data_bytes |
Počet přidaných bajtů. | ||
VACUUM |
Snižuje náklady na úložiště odstraněním datových souborů, které tabulka již neodkazuje. viz Odebrání nepoužívaných datových souborů pomocí příkazu VACUUM. | number_of_deleted_files |
Počet souborů, které byly sesbírány odpadky. |
amount_of_data_deleted_bytes |
Počet bajtů odebráných jako odpad. | ||
ANALYZE |
Aktivuje přírůstkovou aktualizaci statistik za účelem zlepšení výkonu dotazů. Viz ANALYZE TABLE ... VÝPOČETNÍ STATISTIKA. | amount_of_scanned_bytes |
Počet prohledaných bajtů. |
number_of_scanned_files |
Počet naskenovaných souborů. | ||
staleness_percentage_reduced |
Snížení procenta zatuchlosti. Tato statistika se může pohybovat od 0 do 100 v závislosti na frekvenci, která ANALYZE je spuštěna. |
||
CLUSTERING |
Aktivuje přírůstkové seskupování pro aktivované tabulky. Viz Použití metody 'liquid clustering' pro tabulky. | number_of_removed_files |
Počet odebraných souborů |
number_of_clustered_files |
Počet nových souborů, které byly přidány. | ||
amount_of_data_removed_bytes |
Počet odebraných bajtů | ||
amount_of_clustered_data_bytes |
Počet přidaných bajtů. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Vyhodnotí, zda mají být vyvíjeny sloupce pro clustering. Viz Automatické shlukování kapalin. | old_clustering_columns |
Předchozí datové rozložení, které může být staré shlukovací klíče nebo "Žádné", pokud není rozděleno na části. |
new_clustering_columns |
Nové shlukovací sloupce. | ||
has_column_selection_changed |
Ukazatel, zda se sloupce shlukování změnily. | ||
additional_reason |
Důvody změny nebo žádná změna ve shlukování sloupců. | ||
DATA_SKIPPING_COLUMN_SELECTION |
Zjistí sloupce s chybějícími daty, přeskočí statistiky z pracovního zatížení a doplní je. Viz Přeskočení dat. | amount_of_scanned_bytes |
Počet prohledaných bajtů. |
number_of_scanned_files |
Počet naskenovaných souborů. | ||
added_data_skipping_columns |
Přidány sloupce pro přeskakování dat. | ||
removed_data_skipping_columns |
Sloupce přeskakování dat byly odstraněny. | ||
old_data_skipping_columns |
Předchozí vyčerpávající seznam sloupců přeskakování dat. | ||
new_data_skipping_columns |
Aktuální vyčerpávající seznam sloupců přeskakujících data. | ||
COMPATIBILITY_MODE_REFRESH |
Zjistí, jestli je režim kompatibility zastaralý, a aktualizuje tabulku. Viz Režim kompatibility. | N/A | Obnovovací operace v režimu kompatibility. |
DELETE |
Odstraní řádky, které překročily automatickou dobu platnosti času do života. Viz Automatické odstraňování řádků s automatickou dobou životnosti (TTL). | number_of_deleted_rows |
Počet odebraných řádků To bylo 0 v době, kdy žádné řádky nebyly způsobilé ke smazání. |
amount_of_data_deleted_bytes |
Počet odebraných bajtů | ||
PURGE |
Přepisuje datové soubory tak, aby fyzicky odstranil řádky již smazané pomocí vektorů pro mazání. Dříve běží v VACUUM tabulkách s povolenými deletion vectory. Viz Automatické odstraňování řádků s automatickou dobou životnosti (TTL). |
number_of_purged_rows |
Počet řádků vyčištěných. To bylo 0 v době, kdy žádné řádky nebyly způsobilé k vymazání. Viz Automatické odstraňování řádků s automatickou dobou životnosti (TTL). |
REFRESH_INDEX |
Udržuje indexy aktuální podle jejich základní tabulky.
table_name a table_id nesou indexové jméno a ID. Viz Automatická obnova indexu. |
refresh_type |
Typ obnovy, který probíhal, například REGULAR (přidává záznamy pro nová data), FULL (také odstraňuje položky pro smazaná data) nebo PURGE (odstraňuje položky pro řádky smazané automatickým časem do života). |
staleness_percentage_reduced |
Procento řádků základní tabulky, jejichž indexové položky tato obnova přinesla na aktuální úroveň. Tato statistika může být od 0 do 100. |
Vzorové dotazy
Následující části obsahují ukázkové dotazy, které můžete použít k získání přehledu o tabulce systému prediktivní optimalizace. Aby tyto dotazy fungovaly, musíte nahradit hodnoty parametrů vlastními hodnotami.
Tento článek obsahuje následující ukázkové dotazy:
- Kolik odhadovaných jednotek DBU využila prediktivní optimalizace za posledních 30 dní?
- U kterých tabulek byla prediktivní optimalizace vynaložena nejvíce za posledních 30 dnů (odhadované náklady)?
- U kterých tabulek provádí prediktivní optimalizace většinu operací?
- Kolik celkových bajtů bylo pro daný katalog zkomprimováno?
- Jaké tabulky měly nejvíce bajtů, které byly čištěny?
- Jaká je míra úspěšnosti operací spuštěných prediktivní optimalizací?
Kolik odhadovaných jednotek DBU využila prediktivní optimalizace v posledních 30 dnech?
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30;
Pokud chcete najít stejnou hodnotu pro konkrétní kanál ETL, můžete nejprve vyhledat tabulky v daném kanálu a pak vyhledat jednotky DBU:
-- 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;
U kterých tabulek byla prediktivní optimalizace vynaložena nejvíce za posledních 30 dnů (odhadované náklady)?
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;
U kterých tabulek provádí prediktivní optimalizace většinu operací?
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;
Kolik celkových bajtů bylo pro daný katalog zkomprimováno?
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;
Které tabulky měly nejvíce bajtů vyčištěných?
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;
Jaká je míra úspěšnosti operací spuštěných prediktivní optimalizací?
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;