Aller au contenu principal

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

info

Aperçu

Cette table système est en aperçu public.

remarque

Pour avoir accès à cette table, votre région doit prendre en charge l'optimisation prédictive. Voir clouds et régions 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 le layout de vos données pour des performances optimales et une efficacité des coûts. La table du système enregistre l'historique des opérations de cette fonctionnalité. Pour plus d'informations sur l'optimisation prédictive, consultez l'optimisation prédictive pour les tables gérées par Unity Catalog.

**Chemin de la table** : Cette table système est située system.storage.predictive_optimization_operations_history à.

Considérations de livraison

  • La table système d'optimisation prédictive se met à jour dans un délai de deux heures. Toutefois, les informations de facturation peuvent prendre jusqu'à 24 heures pour que les données soient renseignées.
  • L'optimisation prédictive peut exécuter plusieurs opérations sur le même cluster. Dans ce cas, la part des DBU attribuées à chacune des opérations multiples est approximée. C'est pourquoi le usage_unit est défini sur ESTIMATED_DBU. Néanmoins, le nombre total d'unités de consommation (DBU) dépensées sur le cluster sera précis.

Schéma de table d'optimisation prédictive

La table système d’historique des opérations d’optimisation prédictive utilise le schéma suivant :

Nom de colonne

Type de données

Description

Exemple

account_id

chaîne

ID du compte.

11e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

chaîne

L'ID du workspace dans lequel l'optimisation prédictive a exécuté l'opération.

1234567890123456

start_time

Horodatage

L'heure à laquelle l'Opération a start. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, où +00:00 représente l'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 l'UTC.

2023-01-09 11:00:00.000+00:00

metastore_name

chaîne

Le nom du métastore auquel la table optimisée appartient.

metastore

metastore_id

chaîne

L'ID du métastore auquel appartient la table optimisée.

5a31ba44-bbf4-4174-bf33-e1fa078e6765

catalog_name

chaîne

Le nom du catalogue auquel la table optimisée appartient.

catalog

schema_name

chaîne

Le nom du schéma auquel appartient la table optimisée.

schema

table_id

chaîne

L'ID de la table optimisée.

138ebb4b-3757-41bb-9e18-52b38d3d2836

table_name

chaîne

Le nom de la table optimisée.

table1

operation_type

chaîne

L'opération d'optimisation effectuée. Doit être l'une des valeurs suivantes : COMPACTION, VACUUM, ANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, ou COMPATIBILITY_MODE_REFRESH.

COMPACTION

operation_id

chaîne

L'ID de l'opération d'optimisation.

4dad1136-6a8f-418f-8234-6855cfaff18f

operation_status

chaîne

L'état de l'opération d'optimisation. Doit être l'une des valeurs suivantes : SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROR ou FAILED: PRIVATE_LINK_SETUP_ERROR.

SUCCESSFUL

operation_metrics

map[chaîne, chaîne]

Détails supplémentaires sur l'optimisation spécifique qui a été effectuée. Voir les métriques d'opérations.

{"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}

usage_unit

chaîne

L'unité d'utilisation que cette opération a entraînée. Doit être la valeur suivante : ESTIMATED_DBU.

ESTIMATED_DBU

usage_quantity

décimal

La quantité de l'unité d'utilisation qui a été utilisée par cette opération.

2.12

Nom de colonne

Type de données

Description

Exemple

account_id

chaîne

ID du compte.

11e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

chaîne

L'ID du workspace dans lequel l'optimisation prédictive a exécuté l'opération.

1234567890123456

start_time

Horodatage

L'heure à laquelle l'Opération a start. Les informations de fuseau horaire sont enregistrées à la fin de la valeur, où +00:00 représente l'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 l'UTC.

2023-01-09 11:00:00.000+00:00

metastore_name

chaîne

Le nom du métastore auquel la table optimisée appartient.

metastore

metastore_id

chaîne

L'ID du métastore auquel appartient la table optimisée.

5a31ba44-bbf4-4174-bf33-e1fa078e6765

catalog_name

chaîne

Le nom du catalogue auquel la table optimisée appartient.

catalog

schema_name

chaîne

Le nom du schéma auquel appartient la table optimisée.

schema

table_id

chaîne

L'ID de la table optimisée.

138ebb4b-3757-41bb-9e18-52b38d3d2836

table_name

chaîne

Le nom de la table optimisée.

table1

operation_type

chaîne

L'opération d'optimisation effectuée. Doit être l'une des valeurs suivantes : COMPACTION, VACUUM, ANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, ou COMPATIBILITY_MODE_REFRESH.

COMPACTION

operation_id

chaîne

L'ID de l'opération d'optimisation.

4dad1136-6a8f-418f-8234-6855cfaff18f

operation_status

chaîne

L'état de l'opération d'optimisation. Doit être l'une des valeurs suivantes : SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROR ou FAILED: PRIVATE_LINK_SETUP_ERROR.

SUCCESSFUL

operation_metrics

map[chaîne, chaîne]

Détails supplémentaires sur l'optimisation spécifique qui a été effectuée. Voir les métriques d'opérations.

{"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}

usage_unit

chaîne

L'unité d'utilisation que cette opération a entraînée. Doit être la valeur suivante : ESTIMATED_DBU.

ESTIMATED_DBU

usage_quantity

décimal

La quantité de l'unité d'utilisation qui a été utilisée par cette opération.

2.12

Métriques des opérations

Les métriques enregistrées dans la colonne operation_metrics varient en fonction du type d'opération :

Nom de l'opération

Description des opérations

Métriques des opérations

Description

COMPACTION

Améliore les performances des requêtes en optimisant la taille des fichiers. Voir Optimiser le Layout des fichiers de données.

number_of_compacted_files

Nombre de fichiers supprimés par cette opération.

amount_of_data_compacted_bytes

Nombre 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 vacuum.

number_of_deleted_files

Nombre de fichiers collectés par cette opération.

amount_of_data_deleted_bytes

Quantité d'octets collectés par cette opération.

ANALYZE

Trigger la mise à jour incrémentielle des statistiques pour améliorer les performances des requêtes. Voir ANALYZE TABLE … COMPUTE STATISTICS.

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 varier de 0 à 100 selon la fréquence d'exécution de ANALYZE.

CLUSTERING

Déclenche le clustering incrémental pour les tables activées. Voir Utiliser le clustering liquide 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

Nombre 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

Évalue la nécessité de faire évoluer les colonnes de clusters. Voir le clustering liquide automatique.

old_clustering_columns

Layout de données précédent, qui peut être d'anciennes clés de clustering ou « None » si non partitionné.

new_clustering_columns

Nouvelles colonnes de clustering appliquées par cette opération.

has_column_selection_changed

Si cette opération a fait évoluer les colonnes de clustering.

additional_reason

Raisons du changement ou de l'absence de changement dans les colonnes de clustering.

DATA_SKIPPING_COLUMN_SELECTION

Détecte les colonnes avec des données manquantes, en ignorant les statistiques de la charge de travail, et les remplit. Voir 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

Colonnes de saut de données nouvellement ajoutées appliquées par cette opération.

removed_data_skipping_columns

Colonnes de saut de données 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 refresh la table. Consultez Mode de compatibilité.

N/A

Opérations de refresh en Mode de compatibilité.

Nom de l'opération

Description des opérations

Métriques des opérations

Description

COMPACTION

Améliore les performances des requêtes en optimisant la taille des fichiers. Voir Optimiser le Layout des fichiers de données.

number_of_compacted_files

Nombre de fichiers supprimés par cette opération.

amount_of_data_compacted_bytes

Nombre 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 vacuum.

number_of_deleted_files

Nombre de fichiers collectés par cette opération.

amount_of_data_deleted_bytes

Quantité d'octets collectés par cette opération.

ANALYZE

Trigger la mise à jour incrémentielle des statistiques pour améliorer les performances des requêtes. Voir ANALYZE TABLE … COMPUTE STATISTICS.

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 varier de 0 à 100 selon la fréquence d'exécution de ANALYZE.

CLUSTERING

Déclenche le clustering incrémental pour les tables activées. Voir Utiliser le clustering liquide 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

Nombre 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

Évalue la nécessité de faire évoluer les colonnes de clusters. Voir le clustering liquide automatique.

old_clustering_columns

Layout de données précédent, qui peut être d'anciennes clés de clustering ou « None » si non partitionné.

new_clustering_columns

Nouvelles colonnes de clustering appliquées par cette opération.

has_column_selection_changed

Si cette opération a fait évoluer les colonnes de clustering.

additional_reason

Raisons du changement ou de l'absence de changement dans les colonnes de clustering.

DATA_SKIPPING_COLUMN_SELECTION

Détecte les colonnes avec des données manquantes, en ignorant les statistiques de la charge de travail, et les remplit. Voir 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

Colonnes de saut de données nouvellement ajoutées appliquées par cette opération.

removed_data_skipping_columns

Colonnes de saut de données 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 refresh la table. Consultez Mode de compatibilité.

N/A

Opérations de refresh en Mode de compatibilité.

Exemples de requêtes

Les sections suivantes incluent des exemples de queries que vous pouvez utiliser pour obtenir des insights sur la table système d'optimisation prédictive. Pour que ces queries fonctionnent, vous devez remplacer les valeurs des parameters par vos propres valeurs.

Cet article comprend les exemples de queries suivants :

Combien de DBUs estimées l'optimisation prédictive a-t-elle utilisées au cours des 30 derniers jours ?

SQL
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 trouver les tables dans ce pipeline, puis rechercher les DBU :

SQL
-- 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 a-t-elle le plus dépensé au cours des 30 derniers jours (coût estimé) ?

SQL
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 ?

SQL
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 au total ont été compactés ?

SQL
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 tables contenaient le plus d’octets vacuum ?

SQL
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 ?

SQL
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;