Référence de table système d’optimisation prédictive
Important
Cette table système est en préversion publique. Pour accéder à la table, le schéma doit être activé dans votre catalogue system
. Pour plus d’informations, consultez Activer les schémas de table système.
Remarque
Pour avoir accès à cette table, vous devez activer le schéma storage
(consultez Activer les schémas de la table système) et votre région doit prendre en charge l’optimisation prédictive (consultez régions Azure Databricks).
Cet article décrit le schéma de la table d’historique des opérations d’optimisation prédictive et fournit des exemples de requêtes. L’optimisation prédictive optimise votre disposition de données pour obtenir des performances optimales et une bonne rentabilité. La table système suit l’historique des opérations de cette fonctionnalité. Pour plus d’informations sur l’optimisation prédictive, consultez Optimisation prédictive pour les tables managées Unity Catalog.
Chemin d’accès de la table : cette table système se trouve à l’emplacement system.storage.predictive_optimization_operations_history
.
Considérations relatives à la livraison
- Les données peuvent prendre jusqu’à 24 heures pour être alimentées.
- L’optimisation prédictive peut exécuter plusieurs opérations sur le même cluster. Si c’est le cas, le partage des DBU attribuées à chacune des opérations multiples est approximatif. C’est pourquoi le
usage_unit
est défini surESTIMATED_DBU
. Toutefois, le nombre total d’unités de DBU utilisées dans le cluster sera exact.
Schéma de table d’optimisation prédictive
La table système de l’historique des opérations d’optimisation prédictive utilise le schéma suivant :
Nom de la colonne | Type de données | Description | Exemple : |
---|---|---|---|
account_id |
string | ID du compte. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | L’ID de l’espace de travail dans lequel l’optimisation prédictive a exécuté l’opération. | 1234567890123456 |
start_time |
timestamp | L’heure à laquelle l’opération a démarré. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, où +00:00 représente le fuseau horaire UTC. |
2023-01-09 10:00:00.000+00:00 |
end_time |
timestamp | L’heure à laquelle l’opération s’est terminée. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, où +00:00 représente le fuseau horaire UTC. |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
string | Le nom du metastore auquel appartient la table optimisée. | metastore |
catalog_name |
string | Le nom du catalogue auquel appartient la nouvelle table. | catalog |
schema_name |
string | Le nom du schéma auquel appartient la nouvelle table. | schema |
table_id |
string | L’ID de la table optimisée. | 138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
string | Le nom de la table optimisée. | table1 |
operation_type |
string | L’opération d’optimisation qui a été effectuée. La valeur sera COMPACTION , VACUUM , ANALYZE ou CLUSTERING . |
COMPACTION |
operation_id |
string | L’ID de l’opération d’optimisation. | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
string | L’état de l’opération d’optimisation. La valeur sera SUCCESSFUL ou FAILED: INTERNAL_ERROR . |
SUCCESSFUL |
operation_metrics |
map[string, string] | Détails supplémentaires sur l’optimisation spécifique effectuée. Consultez les métriques d’opération. | {"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 | L’unité d’utilisation que cette opération a engagée. Ne peut être qu’une seule valeur : ESTIMATED_DBU . |
ESTIMATED_DBU |
usage_quantity |
Décimal | La quantité de l’unité d’utilisation utilisée par cette opération. | 2.12 |
Métriques d’opération
Les métriques enregistrées dans la operation_metrics
colonne varient en fonction du type d’opération :
COMPACTION
:number_of_compacted_files
, ,amount_of_data_compacted_bytes
,number_of_output_files
,amount_of_output_data_bytes
VACUUM
:number_of_deleted_files
,amount_of_data_deleted_bytes
ANALYZE
:amount_of_scanned_bytes
,number_of_scanned_files
,staleness_percentage_reduced
CLUSTERING
:number_of_removed_files
, ,number_of_clustered_files
,amount_of_data_removed_bytes
,amount_of_clustered_data_bytes
Exemples de requêtes
Les sections suivantes incluent des exemples de requêtes que vous pouvez utiliser pour obtenir des insights sur la table système d’optimisation prédictive. Pour que ces requêtes fonctionnent, vous devez remplacer les valeurs entre crochets {{}}
par vos propres paramètres.
Vous trouverez dans cet article des requêtes telles que :
- Combien de DBU utilisent l’optimisation prédictive au cours des 30 derniers jours ?
- Sur quelles tables l’optimisation prédictive est-elle intervenue le plus souvent au cours des 30 derniers jours ?
- Sur quelles tables l’optimisation prédictive effectue-t-elle le plus d’opérations ?
- Pour un catalogue donné, combien d’octets totaux ont été compactés ?
- Quelles sont les tables pour lesquelles le plus grand nombre d’octets a été aspiré ?
- Quel est le taux de réussite des opérations exécutées par des optimisations prédictives ?
Combien de DBU estimés utilisent l’optimisation prédictive au cours des 30 derniers jours ?
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30
Sur quelles tables l’optimisation prédictive est-elle intervenue le plus souvent au cours des 30 derniers jours (coût estimé) ?
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
Sur quelles tables l’optimisation prédictive effectue-t-elle le plus d’opérations ?
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
Pour un catalogue donné, combien d’octets totaux ont été compactés ?
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
Quelles sont les tables pour lesquelles le plus grand nombre d’octets a été aspiré ?
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
Quel est le taux de réussite des opérations exécutées par des optimisations prédictives ?
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