Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cette table système est en préversion publique.
Remarque
Pour avoir accès à cette table, votre région doit prendre en charge l’optimisation prédictive. Voir les 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
- La table système d’optimisation prédictive est mise à jour dans les deux heures. Toutefois, les informations de facturation peuvent prendre jusqu’à 24 heures pour remplir les donné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_unitest 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 | Descriptif | Exemple : |
|---|---|---|---|
account_id |
ficelle | ID du compte. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
ficelle | L’ID de l’espace de travail dans lequel l’optimisation prédictive a exécuté l’opération. | 1234567890123456 |
start_time |
horodatage | 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 |
horodatage | 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 |
ficelle | Le nom du metastore auquel appartient la table optimisée. | metastore |
metastore_id |
ficelle | ID du metastore auquel appartient la table optimisée. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
catalog_name |
ficelle | Le nom du catalogue auquel appartient la nouvelle table. | catalog |
schema_name |
ficelle | Le nom du schéma auquel appartient la nouvelle table. | schema |
table_id |
ficelle | L’ID de la table optimisée. | 138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
ficelle | Le nom de la table optimisée. | table1 |
operation_type |
ficelle | Opération d’optimisation effectuée. Doit être l’une des valeurs suivantes : COMPACTION, , VACUUMANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTIONou COMPATIBILITY_MODE_REFRESH. |
COMPACTION |
operation_id |
ficelle | L’ID de l’opération d’optimisation. | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
ficelle | L’état de l’opération d’optimisation. Doit être l’une des valeurs suivantes : 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 |
ficelle | L’unité d’utilisation que cette opération a engagée. Doit être la valeur suivante : 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 :
| Nom de l’opération | Description de l’opération | Métriques d’opération | Description |
|---|---|---|---|
COMPACTION |
Améliore les performances des requêtes en optimisant les tailles de fichier. Consultez Optimiser la disposition des fichiers de données. | number_of_compacted_files |
Nombre de fichiers supprimés par cette opération. |
amount_of_data_compacted_bytes |
Quantité d’octets supprimés par cette opération. | ||
number_of_output_files |
Nombre de nouveaux fichiers ajoutés par cette opération. | ||
amount_of_output_data_bytes |
Quantité d’octets ajoutés par cette opération. | ||
VACUUM |
Réduit les coûts de stockage en supprimant les fichiers de données qui ne sont plus référencés par la table. Consultez Supprimer les fichiers de données inutilisés avec le nettoyage. | number_of_deleted_files |
Nombre de fichiers ramassés par le processus de collecte des déchets de cette opération. |
amount_of_data_deleted_bytes |
Quantité d’octets de déchets mémoire collectés par cette opération. | ||
ANALYZE |
Déclenche la mise à jour incrémentielle des statistiques pour améliorer les performances des requêtes. Voir ANALYZE TABLE. | amount_of_scanned_bytes |
Quantité d’octets analysés par cette opération. |
number_of_scanned_files |
Nombre de fichiers analysés par cette opération. | ||
staleness_percentage_reduced |
Réduction du pourcentage d’obsolescence après cette opération. Cette statistique peut être comprise entre 0 et 100 en fonction de la fréquence d’exécution ANALYZE . |
||
CLUSTERING |
Déclenche le clustering incrémentiel pour les tables activées. Consultez Utilisation de Liquid Clustering pour les tables. | number_of_removed_files |
Nombre de fichiers supprimés par cette opération. |
number_of_clustered_files |
Nombre de nouveaux fichiers ajoutés par cette opération. | ||
amount_of_data_removed_bytes |
Quantité d’octets supprimés par cette opération. | ||
amount_of_clustered_data_bytes |
Quantité d’octets ajoutés par cette opération. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Détermine s’il faut faire évoluer les colonnes de regroupement. Consultez le regroupement automatique de liquide. | old_clustering_columns |
Disposition de données précédente, qui peut être d'anciennes clés de clustering ou « aucun » si elle n’est pas partitionnée. |
new_clustering_columns |
Nouvelles colonnes de clustering appliquées par cette opération. | ||
has_column_selection_changed |
Indique si cette opération a modifié les colonnes de clustering. | ||
additional_reason |
Raisons de la modification ou de l’absence de modification dans les colonnes de clustering. | ||
DATA_SKIPPING_COLUMN_SELECTION |
Détecte les colonnes avec des données manquantes, ignore les statistiques des charges de travail, et les complète. Consultez le saut de données. | amount_of_scanned_bytes |
Quantité d’octets analysés par cette opération. |
number_of_scanned_files |
Nombre de fichiers analysés par cette opération. | ||
added_data_skipping_columns |
Les colonnes de saut de données nouvellement ajoutées sont appliquées par cette opération. | ||
removed_data_skipping_columns |
Données qui ignorent les colonnes supprimées par cette opération. | ||
old_data_skipping_columns |
Liste exhaustive précédente des colonnes de saut de données. | ||
new_data_skipping_columns |
Liste exhaustive actuelle des colonnes de saut de données. | ||
COMPATIBILITY_MODE_REFRESH |
Détecte si le mode de compatibilité est obsolète et actualise la table. Consultez le mode de compatibilité. | N/A | Opérations d’actualisation du mode de compatibilité. |
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 de paramètre par vos propres valeurs.
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 ?
- Sur quelles tables l'optimisation prédictive a-t-elle dépensé le plus au cours des 30 derniers jours (coût estimé) ?
- 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 l’optimisation prédictive ?
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;
Pour trouver la même valeur pour un pipeline ETL spécifique, vous pouvez d'abord identifier les tables de ce pipeline, puis rechercher les DBUs :
-- 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;
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 l’optimisation prédictive ?
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;