Partager via


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 sur ESTIMATED_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, ANALYZEou 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 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