Notes
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.
Cet article explique comment créer et utiliser des vues matérialisées dans Databricks SQL pour améliorer les performances et réduire le coût de vos charges de travail de traitement et d’analyse de données.
Remarque
Si vous devez utiliser une connexion Azure Private Link avec votre vue matérialisée, contactez votre représentant Databricks.
Important
Les vues matérialisées créées dans Databricks SQL sont soutenues par un pipeline DLT sans serveur. Votre espace de travail doit prendre en charge les pipelines serverless pour utiliser cette fonctionnalité.
Qu’est-ce qu’une vue matérialisée ?
Dans Databricks SQL, les vues matérialisées sont des tables managées Unity Catalog qui permettent aux utilisateurs de précalculer les résultats en fonction de la dernière version des données dans les tables sources. Les vues matérialisées sur Azure Databricks diffèrent des autres implémentations, car les résultats retournés reflètent l’état des données au moment de la dernière actualisation de la vue matérialisée au lieu de toujours mettre à jour les résultats lorsque la vue matérialisée est interrogée. Vous pouvez actualiser manuellement les vues matérialisées ou planifier des actualisations.
Les vues matérialisées sont puissantes pour les charges de travail de traitement des données telles que le traitement ETL (extraction, transformation et chargement). Les vues matérialisées fournissent un moyen simple et déclaratif de traiter les données à des fins de conformité, de correction, d’agrégation ou de capture des changements de données (CDC). Les vues matérialisées réduisent les coûts et améliorent la latence des requêtes en précalculant les requêtes lentes et les calculs fréquemment utilisés. Les vues matérialisées rendent également les transformations simples à utiliser en nettoyant, enrichissant et dénormalisant les tables de base. Les vues matérialisées peuvent réduire les coûts tout en offrant une expérience utilisateur final simplifiée. En effet, dans certains cas, elles peuvent calculer de manière incrémentielle les modifications à partir des tables de base.
Les vues matérialisées ont d’abord été prises en charge dans Azure Databricks avec le lancement de DLT. Quand vous créez une vue matérialisée dans un entrepôt Databricks SQL, un pipeline sans serveur est créé pour traiter les actualisations de la vue matérialisée. Vous pouvez surveiller l’état des opérations d’actualisation dans l’interface utilisateur DLT ou l’API pipelines. Consultez Afficher l’état d’une actualisation de vue matérialisée.
Conditions requises
Pour créer ou actualiser des vues matérialisées :
- Vous devez utiliser un entrepôt SQL pro ou serverless compatible avec Unity Catalog.
- Pour actualiser une vue matérialisée, vous devez être dans l’espace de travail qui l’a créée.
- Votre espace de travail doit se trouver dans une région qui prend en charge les entrepôts SQL serverless.
Pour interroger des vues matérialisées :
- Vous devez être le propriétaire de la vue matérialisée, ou avoir
SELECT
sur la vue matérialisée, ainsi queUSE SCHEMA
etUSE CATALOG
sur ses parents. - Vous devez utiliser l’une des ressources de calcul suivantes :
- Entrepôt SQL
- Interfaces DLT
- Calcul du mode d’accès standard (anciennement mode d’accès partagé)
- Mode d’accès dédié (anciennement mode d’accès utilisateur unique) sur Databricks Runtime 15.4 et versions ultérieures, tant que l’espace de travail est activé pour le calcul serverless. Consultez le contrôle d’accès affiné sur le calcul dédié (anciennement calcul mono-utilisateur).
- Uniquement si vous êtes le propriétaire de la vue matérialisée : ressource de calcul en mode d’accès dédié exécutant Databricks Runtime entre 14.3 et 15.3.
Pour en savoir plus sur les autres restrictions relatives à l’utilisation des vues matérialisées, consultez Limitations.
Créer une vue matérialisée
Les opérations de vue matérialisée de Databricks SQL utilisent le entrepôt Databricks SQL pour créer et charger des données dans la vue matérialisée. La création d’une vue matérialisée est une opération synchrone, ce qui signifie que la commande CREATE MATERIALIZED VIEW
se bloque jusqu’à ce que la vue matérialisée soit créée et que le chargement initial des données soit terminé. Un pipeline DLT serverless est créé automatiquement pour chaque vue matérialisée Databricks SQL. Lorsque la vue matérialisée est actualisée, le pipeline DLT traite l’actualisation.
Pour créer une vue matérialisée, utilisez l’instruction CREATE MATERIALIZED VIEW
. Pour envoyer une instruction de création, utilisez l’éditeur SQL dans l’interface utilisateur Azure Databricks, l’interface CLI Databricks SQL ou l’API Databricks SQL.
Remarque
L’utilisateur qui crée une vue matérialisée en est le propriétaire et doit disposer des autorisations suivantes :
- Privilège
SELECT
sur les tables de base référencées par la vue matérialisée - Privilèges
USE CATALOG
etUSE SCHEMA
sur le catalogue et le schéma contenant les tables sources pour la vue matérialisée - Privilèges
USE CATALOG
etUSE SCHEMA
sur le catalogue cible et le schéma pour la vue matérialisée - Privilèges
CREATE TABLE
etCREATE MATERIALIZED VIEW
sur le schéma contenant la vue matérialisée
L’exemple suivant crée la vue matérialisée mv1
à partir de la table de base base_table1
:
CREATE MATERIALIZED VIEW mv1
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM
base_table1
GROUP BY
date;
Les commentaires de colonne d’une table de base sont automatiquement propagés à la nouvelle vue matérialisée. Pour ajouter une planification, des contraintes de table ou d’autres propriétés, modifiez la définition de vue matérialisée. Pour en savoir plus sur la syntaxe pour définir une vue matérialisée, consultez CREATE MATERIALIZED VIEW.
Définir le canal d’exécution
Les vues matérialisées créées à l’aide d’entrepôts SQL sont automatiquement actualisées à l’aide d’un pipeline DLT. Les pipelines DLT utilisent le runtime dans le current
canal par défaut. Consultez les notes de publication DLT et le processus de mise à niveau des versions pour en savoir plus sur le processus de mise en production.
Databricks recommande d’utiliser le canal current
pour les charges de travail de production. Les nouvelles fonctionnalités sont d’abord publiées sur le canal preview
. Vous pouvez définir un pipeline sur le canal DLT en préversion pour tester les nouvelles fonctionnalités en spécifiant preview
comme propriété de table. Vous pouvez spécifier cette propriété lorsque vous créez la table ou après la création de la table à l'aide d'une instruction ALTER.
L’exemple de code suivant montre comment configurer le canal en préversion dans une instruction CREATE :
CREATE OR REPLACE MATERIALIZED VIEW foo.default.bar
TBLPROPERTIES ('pipelines.channel' = 'preview') as
SELECT
*
FROM
range(5)
Charger des données à partir de systèmes externes
Databricks recommande de charger des données externes avec Lakehouse Federation pour les sources de données prises en charge. Pour plus d’informations sur le chargement de données à partir de sources non prises en charge par Lakehouse Federation, consultez Options de format de données.
Actualiser une vue matérialisée
L’opération REFRESH
actualise la vue matérialisée pour refléter les dernières modifications apportées à la table de base. L’opération est synchrone par défaut, ce qui signifie que la commande se bloque jusqu’à ce que l’opération d’actualisation soit terminée. Pour actualiser une vue matérialisée, utilisez l’instruction REFRESH MATERIALIZED VIEW
. Consultez REFRESH (MATERIALIZED VIEW ou STREAMING TABLE) pour plus d’informations sur la syntaxe SQL et les paramètres de cette commande. Pour en savoir plus sur les types de vues matérialisées qui peuvent être actualisées de manière incrémentielle, consultez Actualisation incrémentielle pour les vues matérialisées.
Pour envoyer une instruction d’actualisation, utilisez l’éditeur SQL dans l’interface utilisateur Azure Databricks, un notebook attaché à un entrepôt SQL, l’interface CLI Databricks SQL ou l’API Databricks SQL.
Seul le propriétaire peut REFRESH
la vue matérialisée.
L’exemple suivant actualise la vue matérialisée mv1
:
REFRESH MATERIALIZED VIEW mv1;
Comment les vues matérialisées Databricks SQL sont-elles actualisées ?
Les vues matérialisées créent et utilisent automatiquement des pipelines DLT serverless pour traiter les opérations d’actualisation. L’actualisation est gérée par le pipeline DLT et la mise à jour est surveillée par l’entrepôt SQL Databricks utilisé pour créer la vue matérialisée. Les vues matérialisées peuvent être mises à jour à l’aide d’un pipeline DLT qui s’exécute selon une planification. Consultez Mode pipeline déclenché ou continu.
Remarque
Le runtime DLT ne peut pas détecter les modifications apportées aux sources de données non Delta. La table est toujours mise à jour régulièrement, mais avec un intervalle de déclenchement par défaut plus long afin d’éviter qu’un recalcul excessif ne ralentisse tout traitement incrémentiel se déroulant lors du calcul.
Par défaut, les opérations d’actualisation sont effectuées de manière synchrone. Vous pouvez également définir une opération d’actualisation asynchrone. Pour cela, vous pouvez utiliser la commande d’actualisation. Consultez REFRESH (MATERIALIZED VIEW ou STREAMING TABLE) Le comportement associé à chaque approche est le suivant :
- Synchrone : une actualisation synchrone empêche les autres opérations de continuer tant que l’actualisation n’est pas terminée. Si le résultat est nécessaire pour l’étape suivante, par exemple lors du séquencement d’opérations d’actualisation dans des outils d’orchestration tels que Databricks Jobs, utilisez une actualisation synchrone. Pour orchestrer des vues matérialisées avec un travail, utilisez le type de tâche SQL. Consultez Orchestration à l’aide des travaux Databricks.
- Asynchrone : une actualisation asynchrone démarre un travail en arrière-plan sur le calcul DLT lorsqu’une actualisation de vue matérialisée commence, ce qui permet à la commande de retourner avant la fin du chargement des données. Ce type d’actualisation peut réduire les coûts, car l’opération ne dispose pas nécessairement d’une capacité de calcul dans l’entrepôt où la commande est lancée. Si l’actualisation devient inactive et qu’aucune autre tâche n’est en cours d’exécution, l’entrepôt peut s’arrêter pendant que l’actualisation utilise d’autres calculs disponibles. De plus, les actualisations asynchrones prennent en charge le démarrage de plusieurs opérations en parallèle.
Certaines requêtes peuvent être actualisées de manière incrémentielle. Consultez Actualisation incrémentielle pour les vues matérialisées. Si une actualisation incrémentielle ne peut pas être effectuée, une actualisation complète est réalisée à la place.
Planifier les actualisations de vue matérialisée
Vous pouvez configurer une vue matérialisée Databricks SQL pour qu’elle s’actualise automatiquement selon une planification définie. Pour définir une planification, effectuez l’une des opérations suivantes :
- Configurez la planification avec la clause
SCHEDULE
lorsque vous créez la vue matérialisée. - Ajoutez une planification avec l’instruction ALTER MATERIALIZED VIEW.
Lorsqu’une planification est créée, un nouveau travail Databricks est automatiquement configuré pour traiter la mise à jour.
Pour afficher la planification, effectuez l’une des opérations suivantes :
- Exécutez l’instruction
DESCRIBE EXTENDED
à partir de l’éditeur SQL dans l’interface utilisateur Azure Databricks. - Utilisez l’Explorateur de catalogues pour afficher la vue matérialisée. La planification est listée sous l’onglet Vue d’ensemble, sous État d’actualisation. Consultez Qu’est-ce que l’Explorateur de catalogues ?.
Afficher l’état d’une actualisation de vue matérialisée
Remarque
Étant donné qu’un pipeline DLT gère les actualisations d’affichage matérialisées, la latence est générée par le temps de démarrage du pipeline. Cette durée peut être de l’ordre de quelques secondes à quelques minutes, en plus du temps nécessaire pour effectuer l’actualisation.
Vous pouvez afficher l’état d’une actualisation de vue matérialisée en consultant le pipeline qui gère la vue matérialisée dans l’interface utilisateur DLT ou en affichant les informations d’actualisation retournées par la DESCRIBE EXTENDED
commande de la vue matérialisée.
Vous pouvez également afficher l’historique d’actualisation d’une vue matérialisée en interrogeant le journal des événements DLT. Consultez Afficher l’historique d’actualisation pour une vue matérialisée.
Surveiller les exécutions à l’aide de l’Historique des requêtes
Vous pouvez utiliser la page d’historique des requêtes pour accéder aux détails de la requête et aux profils de requête qui peuvent vous aider à identifier les requêtes et les goulots d’étranglement mal exécutés dans le pipeline DLT utilisé pour exécuter les mises à jour de votre table de diffusion en continu. Pour obtenir une vue d’ensemble du type d’informations disponibles pour les historiques de requête et les profils de requête, consultez Historique des requêtes et Profil de requête.
Important
Cette fonctionnalité est disponible en préversion publique. Les administrateurs d’espace de travail peuvent activer cette fonctionnalité à partir de la page Aperçus. Consultez Gérer les préversions d’Azure Databricks.
Toutes les instructions liées aux vues matérialisées apparaissent dans l’Historique des requêtes. Vous pouvez utiliser le filtre déroulant Requête pour sélectionner une commande et inspecter les requêtes associées. Toutes les CREATE
instructions sont suivies d’une REFRESH
instruction qui s’exécute de manière asynchrone sur un pipeline DLT. Les instructions REFRESH
incluent généralement des plans de requête détaillés qui fournissent des insights sur l’optimisation des performances.
Pour accéder aux instructions REFRESH
de l’interface utilisateur de l’historique des requêtes, procédez comme suit :
- Cliquez sur
dans la barre latérale gauche pour ouvrir l’interface utilisateur Historique des requêtes.
- Sélectionnez la case à cocher REFRESH dans le filtre déroulant de la déclaration .
- Cliquez sur le nom de l'instruction de requête pour afficher les détails récapitulatifs tels que la durée de la requête et les métriques agrégées.
- Cliquez sur Afficher le profil de requête pour ouvrir le profil de requête. Pour plus d’informations sur la navigation dans le profil de requête, consultez Profil de requête.
- Vous pouvez également utiliser les liens dans la section Source de requête pour ouvrir la requête ou le pipeline associé.
Consultez CREATE MATERIALIZED VIEW.
Afficher l’état d’actualisation dans l’interface utilisateur DLT
Par défaut, le pipeline DLT qui gère une vue matérialisée n’est pas visible dans l’interface utilisateur DLT. Pour afficher le pipeline dans l’interface utilisateur DLT, vous devez accéder directement au lien vers la page de détails du pipeline. Pour accéder au lien :
- Copiez et collez le lien affiché dans la ligne Dernière actualisation de la table retournée par l’instruction
DESCRIBE EXTENDED
. - Sous l’onglet de traçabilité de la vue matérialisée, cliquez sur Pipelines, puis sur le lien du pipeline.
Pour les commandes REFRESH
asynchrones envoyées à l’aide de l’éditeur SQL dans l’interface utilisateur Azure Databricks, vous pouvez afficher l’état d’actualisation en suivant le lien affiché dans le panneau Résultats.
Arrêter une actualisation active
Pour arrêter une actualisation active dans l’interface utilisateur DLT, dans la page des détails du pipeline , cliquez sur Arrêter pour arrêter la mise à jour du pipeline. Vous pouvez également arrêter l’actualisation avec l’interface CLI Databricks ou l’opération POST /api/2.0/pipelines/{pipeline_id}/stop dans l’API Pipelines.
Mettre à jour la définition d’une vue matérialisée
Pour mettre à jour la définition d’une vue matérialisée, vous devez d’abord supprimer la vue matérialisée, puis la recréer.
Effacer définitivement les enregistrements d’une vue matérialisée avec activation des vecteurs de suppression
Important
La prise en charge de l’instruction REORG
avec des vues matérialisées est en préversion publique.
Remarque
- L’utilisation d’une instruction
REORG
avec une vue matérialisée nécessite Databricks Runtime 15.4 et versions ultérieures. - Bien que vous puissiez utiliser l’instruction
REORG
avec n’importe quelle vue matérialisée, il n’est requis que lors de la suppression d’enregistrements d’une vue matérialisée avec les vecteurs de suppression activés. La commande n’a aucun effet lorsqu’elle est utilisée avec une vue matérialisée sans vecteurs de suppression activés.
Pour supprimer physiquement les enregistrements du stockage sous-jacent pour une vue matérialisée avec des vecteurs de suppression activés, comme pour la conformité RGPD, des étapes supplémentaires doivent être prises pour s’assurer qu’une VACUUM opération s’exécute sur les données de la vue matérialisée.
Les étapes suivantes décrivent ces étapes plus en détail :
- Exécutez une instruction
REORG
sur la vue matérialisée, en spécifiant le paramètreAPPLY (PURGE)
. Par exemple,REORG TABLE <materialized-view-name> APPLY (PURGE);
. Consultez REORG TABLE. - Attendez que la période de rétention des données de la vue matérialisée passe. La période de rétention des données par défaut est de sept jours, mais elle peut être configurée avec la propriété de table
delta.deletedFileRetentionDuration
. Consultez Configurer la conservation des données pour des requêtes de voyage dans le temps. - Effectuez une opération
REFRESH
sur la vue matérialisée. Consultez Actualiser une vue matérialisée. Dans les 24 heures de l’opérationREFRESH
, les tâches de maintenance DLT, y compris l’opérationVACUUM
requise pour s’assurer que les enregistrements sont supprimés définitivement, sont exécutées automatiquement.
Supprimer une vue matérialisée
Remarque
Pour soumettre la commande de suppression d’une vue matérialisée, vous devez être le propriétaire de cette vue matérialisée ou avoir le privilège MANAGE
sur la vue matérialisée.
Pour supprimer une vue matérialisée, utilisez l’instruction DROP VIEW. Pour envoyer une instruction DROP
, vous pouvez utiliser l’éditeur SQL dans l’interface utilisateur Azure Databricks, l’interface CLI Databricks SQL ou l’API Databricks SQL. L’exemple suivant supprime la vue matérialisée mv1
:
DROP MATERIALIZED VIEW mv1;
Décrire une vue matérialisée
Pour récupérer les colonnes et les types de données d’une vue matérialisée, utilisez l’instruction DESCRIBE
. Pour récupérer les colonnes, les types de données et les métadonnées telles que le propriétaire, l’emplacement, l’heure de création et l’état d’actualisation d’une vue matérialisée, utilisez DESCRIBE EXTENDED
. Pour envoyer une instruction DESCRIBE
, utilisez l’éditeur SQL dans l’interface utilisateur Azure Databricks, l’interface CLI Databricks SQL ou l’API Databricks SQL.
Modifier le propriétaire d’une vue matérialisée
Vous pouvez modifier le propriétaire d’une vue matérialisée si vous êtes un administrateur de metastore et un administrateur d’espace de travail. Les vues matérialisées créent et utilisent automatiquement des pipelines DLT pour traiter les modifications. Pour modifier un propriétaire de vues matérialisées, effectuez les étapes suivantes :
- Sous l’onglet de traçabilité de la vue matérialisée, cliquez sur Pipelines, puis sur le lien du pipeline.
- Cliquez sur Partager. La boîte de dialogue Paramètres des autorisations s’affiche.
- Cliquez sur x à la droite du nom du propriétaire actuel pour supprimer le propriétaire actuel.
- Commencez à saisir pour filtrer la liste des utilisateurs disponibles. Cliquez sur l’utilisateur à désigner comme nouveau propriétaire du pipeline.
- Cliquez sur Enregistrer pour enregistrer vos modifications et fermer la boîte de dialogue.
Toutes les ressources du pipeline, y compris les vues matérialisées définies dans le pipeline, appartiennent au nouveau propriétaire du pipeline. Toutes les futures mises à jour seront exécutées avec l’identité du nouveau propriétaire.
Contrôler l’accès aux vues matérialisées
Les vues matérialisées prennent en charge des contrôles d’accès enrichis afin de prendre en charge le partage de données tout en évitant d’exposer des données potentiellement privées. Le propriétaire d'une vue matérialisée ou l'utilisateur disposant du privilège MANAGE
peut accorder des privilèges SELECT
à d’autres utilisateurs. Les utilisateurs disposant de l’accès SELECT
à la vue matérialisée n’ont pas besoin de l’accès SELECT
aux tables référencées par la vue matérialisée. Ce contrôle d’accès permet le partage de données tout en contrôlant l’accès aux données sous-jacentes.
Accorder des privilèges à une vue matérialisée
Pour accorder l’accès à une vue matérialisée, utilisez l’instruction GRANT
:
GRANT
privilege_type [, privilege_type ] ...
ON <mv_name> TO principal;
Le privilege_type peut être :
SELECT
: l’utilisateur peutSELECT
la vue matérialisée.REFRESH
: l’utilisateur peutREFRESH
la vue matérialisée. Les actualisations sont exécutées conformément aux autorisations du propriétaire.
L’exemple suivant crée une vue matérialisée et accorde des privilèges de sélection et d’actualisation à un utilisateur :
CREATE MATERIALIZED VIEW <mv_name> AS SELECT * FROM <base_table>;
GRANT SELECT ON <mv_name> TO user;
GRANT REFRESH ON <mv_name> TO user;
Révoquer des privilèges d’accès à une vue matérialisée
Pour révoquer l’accès à une vue matérialisée, utilisez l’instruction REVOKE
:
REVOKE
privilege_type [, privilege_type ]
ON <name> FROM principal;
Lorsque les privilèges SELECT
sur une table de base sont révoqués au propriétaire de la vue matérialisée ou à tout autre utilisateur ayant reçu des privilèges MANAGE
ou SELECT
sur la vue matérialisée, ou que la table de base est supprimée, le propriétaire de la vue matérialisée ou l'utilisateur ayant obtenu l'accès peut toujours interroger la vue matérialisée. Toutefois, le comportement suivant se produit :
- Le propriétaire de la vue matérialisée ou toute autre personne ayant perdu l’accès à une vue matérialisée ne peut plus
REFRESH
cette vue matérialisée, et la vue matérialisée deviendra obsolète. - En cas d’automatisation avec une planification, l’opération
REFRESH
suivante échoue ou n’est pas exécutée.
L’exemple suivant révoque le privilège SELECT
de mv1
:
REVOKE SELECT ON mv1 FROM user1;
Activer le flux des changements de données
Le flux des changements de données est requis sur les tables de base des vues matérialisées, exception faite de certains cas d’utilisation avancés. Pour activer le flux des changements de données sur une table de base, définissez la propriété de table delta.enableChangeDataFeed
en utilisant la syntaxe suivante :
ALTER TABLE table1 SET TBLPROPERTIES (delta.enableChangeDataFeed = true);
Afficher l’historique d’actualisation pour une vue matérialisée
Pour afficher l’état des opérations sur une vue matérialisée, y compris les actualisations actuelles et passées, interrogez le journal des REFRESH
événements DLT :
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 complet de la vue matérialisée, incluant le catalogue et le schéma.
Voir quel est le journal des événements DLT ?.
Obtenir des informations détaillées sur les vues matérialisées avec l’Explorateur de catalogues
Vous pouvez utiliser l’Explorateur de catalogues pour afficher des détails sur une vue matérialisée.
- Cliquez dans la barre latérale sur
Catalog.
- Dans l’arborescence de l’Explorateur de catalogues à gauche, ouvrez le catalogue et sélectionnez le schéma où se trouve votre vue matérialisée.
- Ouvrez l’élément Tables sous le schéma que vous avez sélectionné, puis cliquez sur la vue matérialisée.
À partir de là, vous pouvez utiliser les onglets sous le nom de la vue matérialisée pour afficher et modifier des informations sur la vue matérialisée, notamment :
- Actualiser l’état et l’historique
- Schéma de table
- Exemples de données (nécessite un calcul actif)
- Autorisations
- Traçabilité, y compris les tables et les pipelines dont dépend cette vue matérialisée
- Insights sur l’utilisation
- Moniteurs que vous avez créés pour cette vue matérialisée
Limitations
- Pour connaître les besoins en matière de calcul et d’espace de travail, consultez Configuration requise.
- Les vues matérialisées ne prennent pas en charge les colonnes d’identité ou les clés de substitution.
- Si une vue matérialisée utilise un agrégat de somme sur une colonne pouvant accepter la valeur
NULL
et qu’il ne reste que des valeursNULL
dans cette colonne, la valeur d’agrégation résultante de la vue matérialisée est zéro au lieu deNULL
. - Vous ne pouvez pas lire le flux des changements de données depuis une vue matérialisée.
- Les requêtes de voyage dans le temps ne sont pas prises en charge sur les vues matérialisées.
- Les fichiers sous-jacents prenant en charge les vues matérialisées peuvent inclure des données provenant de tables en amont (y compris d’éventuelles informations d’identification personnelle) qui n’apparaissent pas dans la définition de la vue matérialisée. Ces données sont automatiquement ajoutées au stockage sous-jacent pour prendre en charge l’actualisation incrémentielle des vues matérialisées. Étant donné que les fichiers sous-jacents d’une vue matérialisée peuvent risquer d’exposer des données provenant de tables en amont qui ne font pas partie du schéma de vue matérialisée, Databricks recommande de ne pas partager le stockage sous-jacent avec des consommateurs en aval non approuvés. Par exemple, supposez que la définition d’une vue matérialisée inclut une clause
COUNT(DISTINCT field_a)
. Même si la définition de vue matérialisée inclut uniquement la clause d’agrégationCOUNT DISTINCT
, les fichiers sous-jacents contiennent une liste des valeurs réelles defield_a
.