Partager via


Référence de table système d’optimisation prédictive

Important

Cette fonctionnalité est disponible en préversion publique.

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 Delta Lake.

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é. 2023-01-09 10:00:00.000
end_time timestamp L’heure à laquelle l’opération s’est terminée. 2023-01-09 11:00:00.000
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 ou VACUUM. 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. Pour les opérations COMPACTION : (number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_files, amount_of_output_data_bytes) Pour les opérations VACUUM : (number_of_deleted_files, amount_of_data_deleted_bytes) {"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

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