Aller au contenu principal

Surveiller les vues matérialisées autonomes

Surveillez et interrogez les données de refresh d'une vue matérialisée autonome à l'aide de l'Explorateur de catalogues, de DESCRIBE EXTENDED ou du journal d'événements du pipeline.

Afficher les détails d'une seule vue matérialisée

Vous pouvez afficher les détails d'une seule vue matérialisée en utilisant l'Explorateur de catalogues, ou par programmation, avec l'opération DESCRIBE EXTENDED. Vous pouvez également interroger le log des événements pour obtenir les détails de l'historique des refresh d'une vue matérialisée.

Afficher les détails dans l’Explorateur de catalogues

Vous pouvez accéder aux information sur votre vue matérialisée en la visualisant dans l'Explorateur de catalogues. Dans l'Explorateur de catalogues, vous pouvez voir le dernier statut de refresh et les planifications de refresh créées en SQL. Pour plus de détails sur les planifications créées en SQL, consultez CREATE MATERIALIZED VIEW.

L'Explorateur de catalogue affiche les détails de chaque vue matérialisée dans un volet latéral droit, notamment :

  1. Current refresh status et dernière heure d'exécution. Pour voir plus de détails sur la mise à jour, y compris la durée d'exécution, les erreurs détaillées et le type de refresh (y compris si la vue matérialisée a été entièrement ou progressivement refreshée et pourquoi), cliquez sur Voir les détails du refresh .
  2. refresh Schedule . Si la vue matérialisée a un calendrier défini via SQL, le calendrier est affiché. Pour mettre à jour la planification, utilisez ALTER MATERIALIZED VIEW.
  3. Tags . Pour ajouter des étiquettes personnalisées, cliquez sur Ajouter des étiquettes . Les tags ne sont pas automatiquement utilisés pour attribuer les coûts, mais vous pouvez créer manuellement une query pour connecter des tags personnalisés à vos coûts. Pour plus de détails, consultez Attribuer des coûts au SQL Warehouse avec des tags personnalisés.

Il existe des propriétés de la vue matérialisée qui ne sont pas disponibles dans Catalog Explorer. Pour ces propriétés, ou pour obtenir les informations par programme, vous pouvez utiliser la commande DESCRIBE EXTENDED.

Afficher les détails avec DESCRIBE EXTENDED

remarque

La commande DESCRIBE EXTENDED n'est pas prise en charge sur un compute dédié. Vous devez utiliser un compute standard pour exécuter DESCRIBE EXTENDED sur une vue matérialisée.

Vous pouvez consulter les détails d'une vue matérialisée par programmation en utilisant la commande DESCRIBE EXTENDED. Cela inclut des détails au-delà de ce que vous obtenez de l'Explorateur de catalogue. Ils incluent :

  • Le statut de la dernière refresh terminée.
  • Le planning de refresh.
  • Les colonnes de la vue matérialisée.
  • Le type de refresh de la vue matérialisée (non disponible dans l'Explorateur de catalogue).
  • La taille des données pour la vue matérialisée, en octets au total (non disponible dans Catalog Explorer).
  • L'emplacement de stockage de la vue matérialisée (non disponible dans l'Explorateur de catalogues).
  • Certaines informations ne sont incluses dans le résultat que lorsque cette option est activée :
    • Colonnes de clustering, si activées.
    • Si les vecteurs de suppression sont activés (affiché uniquement lorsque true).
    • Si le suivi des lignes est activé (affiché uniquement lorsque true).
SQL
-- As table:
DESCRIBE TABLE EXTENDED sales;

-- As a single JSON object:
DESCRIBE TABLE EXTENDED sales AS JSON;

Interroger les Logs par programme

Pour obtenir des détails sur l'historique de refresh d'une vue matérialisée, ou les détails pendant qu'un refresh est en cours, vous pouvez interroger le journal d'événements par programme.

En tant que propriétaire du pipeline, vous pouvez créer une *vue* pour permettre à d'autres d'interroger le journal d'événements de votre pipeline. La query suivante crée une vue que d'autres peuvent utiliser pour interroger le event Logs. Cette query utilise la fonction de valeur TABLE pour interroger la bonne table de log d'événements.

SQL
CREATE VIEW my_event_log_view AS
SELECT *
FROM event_log(TABLE(<catalog_name>.<schema_name>.<mv_name>));

Pour consulter la vue du Logs d'événements, utilisez une requête comme suit.

SQL
SELECT *
FROM my_event_log_view
WHERE event_type = "update_progress"
ORDER BY timestamp desc;

Pour interroger directement le log des événements en tant que propriétaire du pipeline, vous n'avez pas besoin de créer une vue. Vous pouvez utiliser la fonction de valeur TABLE et interroger les données directement, comme la requête d'exemple suivante.

SQL
SELECT *
FROM event_log(TABLE(<catalog_name>.<schema_name>.<mv_name>))
WHERE event_type = "update_progress"
ORDER BY timestamp desc;

Pour obtenir la liste complète des exemples de requêtes utilisant le journal des événements, consultez la page Exemples de requêtes de base.

Surveiller les exécutions de vues matérialisées

Vous pouvez surveiller les exécutions de pipeline dans votre Workspace, en utilisant la page **Tâches & Pipelines**, la page **Historique des query**, ou programmatiquement en interrogeant le Log des événements. Vous pouvez également configurer des notifications pour les pipelines planifiés.

Affichez toutes les exécutions de vue matérialisée dans l'interface utilisateur

Si vous utilisez la page Jobs et pipelines pour surveiller l'état des différents jobs d'orchestration dans votre workspace, vous pouvez également suivre toutes les vues matérialisées et les tables de streaming qui y sont créées. Chaque vue matérialisée autonome est prise en charge par un pipeline. Pour voir toutes les vues matérialisées et les tables de streaming auxquelles vous avez accès :

  1. Cliquez sur le bouton Icône Workflows. Jobs et pipelines sur le côté gauche de votre Workspace.
  2. Cliquez sur le bouton bascule Pipelines pour filtrer votre vue afin d'afficher uniquement les pipelines.
  3. Cliquez sur le bouton Type de pipeline et sélectionnez MV/ST pour filtrer afin d'afficher uniquement les pipelines autonomes.
  4. Cliquez sur le filtre Accessible par moi pour afficher tous les pipelines auxquels vous avez accès.

Vous pouvez voir toutes les vues matérialisées et les tables de streaming créées au sein de votre organisation, y compris une vue d'ensemble des statuts des exécutions récentes. Cliquer sur le nom d'un pipeline ouvre la page de détails de monitoring du pipeline pour obtenir plus d'informations. Pour en savoir plus sur la page de détails de monitoring du pipeline, consultez Résoudre un problème de refresh ayant échoué.

Afficher les exécutions via l'historique des query

Si vous êtes plus familier avec le tab Historique des queries , vous pouvez également l'utiliser pour afficher toutes les exécutions précédentes de toutes les queries où vous disposez au moins de CAN VIEW accès au SQL Warehouse d'exécution. Vous pouvez utiliser la page de l'historique des query pour accéder aux détails des query et aux profils de query, ce qui peut vous aider à identifier les query peu performantes et les goulots d'étranglement dans le pipeline utilisé pour exécuter les mises à jour de vos tables de streaming. Pour un aperçu des types d'information disponibles pour les historiques des queries et les profils de queries, consultez Historique des queries et Profil de query.

info

Aperçu

Cette fonctionnalité est en Aperçu public. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.

Toutes les déclarations liées aux vues matérialisées apparaissent dans l'historique des query. Vous pouvez utiliser le filtre déroulant **Statement** pour sélectionner n'importe quelle commande et inspecter les query associées. Toutes les CREATE déclarations sont suivies d'une déclaration REFRESH qui s'exécute de manière asynchrone sur un pipeline. Les REFRESH déclarations incluent généralement des plans de query détaillés qui fournissent des aperçus pour l'optimisation des performances.

Pour accéder aux REFRESH déclarations dans l'interface utilisateur de l'historique des query, suivez les étapes suivantes :

  1. Cliquez sur Icône Historique. Historique des requêtes dans la barre latérale gauche.
  2. Sélectionnez la case à cocher REFRESH dans le filtre déroulant Instruction .
  3. Cliquez sur le nom de l'instruction de query pour afficher les détails du résumé, tels que la durée de la query et les métriques agrégées.
  4. Cliquez sur Voir le profil de query pour ouvrir le profil de query. Pour plus de détails sur la navigation dans le profil de la requête, consultez Profil de la requête.
  5. Vous pouvez éventuellement utiliser les Link de la section Source de la query pour ouvrir la query ou le pipeline associé.

See CREATE MATERIALIZED VIEW.

Recevez des notifications pour les refresh planifiés

info

Bêta

La fonctionnalité de notifications pour les refresh planifiés de DDL est en version bêta. Les administrateurs de Workspace peuvent contrôler l'accès à cette fonctionnalité depuis la page Aperçus en activant la préversion Job géré par le système pour les vues matérialisées et les tables de streaming . Voir Gérer les aperçus Databricks.

Lorsque vous créez une planification pour votre vue matérialisée, vous pouvez la modifier pour recevoir des notifications. Il existe plusieurs façons de programmer des vues matérialisées, et la réception des notifications dépend de la méthode que vous choisissez :

  • **Planifié avec un job** : pour obtenir des notifications d’une tâche SQL dans Lakeflow Jobs, modifiez la tâche et ajoutez des notifications. Voir Tâche SQL pour les jobs.

    Vous disposez d'un large éventail d'options pour les notifications à recevoir et la manière de les recevoir. Consultez Ajouter des notifications sur un Job

  • Planifié avec une clause SCHEDULE : pour recevoir des notifications d'une vue matérialisée qui est planifiée par une clause SCHEDULE dans la définition SQL, modifiez-la dans l'Explorateur de catalogue:

    1. Ouvrez la vue matérialisée dans l’Explorateur de catalogues.

    2. Dans l' Overview tab , sous refresh schedule , cliquez sur Icône de crayon. pour modifier le planning pour lequel vous souhaitez recevoir des notifications.

    3. Sous Plus d'options , ajoutez ou modifiez des notifications.

      Vous avez la possibilité d'être notifié par e-mail au start, au succès ou à l'échec de la scheduled refresh. By default, le propriétaire est informé uniquement en cas d'échec.

Résoudre un refresh ayant échoué

Vous pouvez trouver les mises à jour ayant échoué pour les vues matérialisées (ou les tables de streaming) en parcourant la liste Tâches et pipelines . Pour dépanner une mise à jour ayant échoué, utilisez la page de détails de monitoring du pipeline ou les Logs des événements.

Pour résoudre un problème de refresh qui est complet alors que vous pensez qu'il devrait être incrémentiel, vérifiez d'abord que vous avez activé le suivi des lignes pour toutes les tables Delta sources. Pour d'autres détails sur l'actualisation incrémentielle, consultez Prise en charge de la refresh incrémentielle des vues matérialisées.

Vous pouvez obtenir des détails supplémentaires sur la page de monitoring du pipeline, ou en interrogeant le log des événements par programme.

Utilisation de la page de monitoring des pipelines

Pour obtenir plus de détails sur une vue matérialisée (ou une table de streaming) qui a échoué, vous pouvez utiliser la page de monitoring du pipeline pour déboguer les problèmes. Chaque vue matérialisée est soutenue par un pipeline. La page de monitoring du pipeline comprend des informations, telles que :

  • L'état de la dernière exécution et l'historique des exécutions.
  • La durée de la dernière exécution.
  • Si la vue matérialisée a été entièrement ou incrémentiellement actualisée. Pour plus de détails sur le refresh incrémentiel de votre vue matérialisée, consultez Prise en charge du refresh incrémentiel de vues matérialisées.
  • Le log des événements pour un débogage plus détaillé. Si votre vue matérialisée n’a pas pu être mise à jour ou a rencontré d’autres problèmes, cliquez sur le volet des problèmes pour afficher les journaux plus en détail.

Pour dépanner votre vue matérialisée :

  1. Dans votre Workspace, cliquez sur le bouton Icône Workflows. Jobs & Pipelines dans la barre de navigation de gauche.
  2. Cliquez sur le nom de votre pipeline dans la liste.
  3. Si la mise à jour a échoué, l'interface utilisateur affiche une erreur (ou une liste d'erreurs) dans le volet inférieur.
  4. Cliquez sur le bouton pour Afficher les Logs ou cliquez sur le volet des problèmes pour voir les erreurs plus en détail.
  5. Ceci ouvre l'interface utilisateur du log d'événements. Chaque erreur comporte un message et un résumé de haut niveau, et un tab JSON avec plus de détails. Pour résoudre un problème avec le Genie Code, cliquez sur Diagnostiquer l’erreur .

Pour plus de détails sur la page de monitoring du pipeline, consultez ici.

Interroger l'historique de refresh d'une vue matérialisée

Le log des événements peut être utile pour configurer des tableaux de bord afin de surveiller l’état ou la durée des mises à jour dans l’ensemble du Workspace, ou si vous préférez un monitoring programmatique à l’utilisation de l’interface utilisateur. Les vues matérialisées autonomes ne prennent pas en charge l’enregistrement du log des événements dans un metastore. Par conséquent, seul le propriétaire de la vue matérialisée peut query le log des événements directement.

Pour afficher le statut des REFRESH opérations sur une vue matérialisée, y compris les refresh actuels et passés, interrogez le pipeline event log :

SQL
SELECT *
FROM event_log(TABLE(<fully-qualified-table-name>))
WHERE event_type = "update_progress"
ORDER BY timestamp desc;

Remplacez <fully-qualified-table-name> par le nom entièrement qualifié de la vue matérialisée, y compris le catalogue et le schéma. Si vous n’êtes pas le propriétaire du pipeline, vous devrez peut-être d’abord faire créer une vue pour query les Logs d’événements. Consultez Interroger le log des événements par programme.

Interrogez le type de refresh qui s’est produit pour une vue matérialisée.

Certaines requêtes peuvent être actualisées de manière incrémentielle. Si une refresh incrémentielle ne peut pas être effectuée, une refresh complète est effectuée à la place.

Pour voir le type de refresh pour une vue matérialisée, query les Logs d'événements :

SQL
SELECT timestamp, message
FROM event_log(TABLE(my_catalog.my_schema.sales))
WHERE event_type = 'planning_information'
ORDER BY timestamp desc;

Exemple de sortie pour cette commande :

    • Horodatage
    • Message
    • 2025-03-21T22:23:16.497+00:00
    • Flow 'sales' has been planned to be executed as ROW_BASED.

Attribuer les coûts au SQL Warehouse avec des tags personnalisés

Les tags ne sont pas automatiquement ajoutés aux enregistrements de facturation, mais vous pouvez les joindre manuellement à vos information de facturation dans une query.

Après avoir ajouté des balises à chaque vue matérialisée (ou table de streaming) avec l’Explorateur de catalogues, vous pouvez surveiller les coûts des vues matérialisées en joignant les tables système table_tags et billing. Voici une query d'exemple pour récupérer les enregistrements de facturation de toutes les vues matérialisées et tables de streaming autonomes et ajouter des tags au niveau de la table :

SQL
SELECT
u.*,
tag_info.tags
FROM
system.billing.usage u
LEFT JOIN (
SELECT
t.catalog_name,
t.schema_name,
t.table_name,
collect_list(named_struct('tag_name', t.tag_name, 'tag_value', t.tag_value)) AS tags
FROM
main.information_schema.table_tags t
GROUP BY
t.catalog_name,
t.schema_name,
t.table_name
) tag_info
ON tag_info.catalog_name = u.usage_metadata.uc_table_catalog
AND tag_info.schema_name = u.usage_metadata.uc_table_schema
AND tag_info.table_name = u.usage_metadata.uc_table_name
WHERE usage_metadata.uc_table_name is not null;

Vous pouvez utiliser la même idée pour joindre des étiquettes de colonne à partir de la table column_tags au lieu de cela.