.create-or-alter materialized-view
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
Crée un affichage matérialisé ou modifie un affichage matérialisé existant.
autorisations
Vous devez disposer au moins des autorisations d’administrateur de vue matérialisée pour exécuter cette commande.
Syntaxe
.create-or-alter
materialized-view
[ with
(
PropertyName =
PropertyValue,
...)
] Requête MaterializedViewName SourceTableName on table
{
}
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
PropertyName, PropertyValue | string |
Liste des propriétés sous la forme de paires nom et valeur, dans la liste des propriétés prises en charge. | |
MaterializedViewName | string |
✔️ | Nom de la vue matérialisée. Le nom de la vue ne peut pas entrer en conflit avec les noms de table ou de fonction dans la même base de données et doit respecter les règles d’affectation de noms d’identificateur. |
SourceTableName | string |
✔️ | Nom de la table source sur laquelle la vue est définie. |
Requête | string |
✔️ | Définition de requête de la vue matérialisée. |
Propriétés prises en charge
Nouvelle table
Si la table est nouvelle, les propriétés suivantes sont prises en charge dans with(
PropertyName =
PropertyValue )
. Toutes les propriétés sont facultatives.
Nom | Type | Description |
---|---|---|
Remblai | bool |
Indique s’il faut créer l’affichage en fonction de tous les enregistrements actuellement dans SourceTable (true ) ou de le créer à partir de maintenant (false ). La valeur par défaut est false . Pour plus d’informations, consultez Le remplissage d’une vue matérialisée. |
effectiveDateTime | datetime |
Pertinent uniquement lorsque vous utilisez backfill . Si elle est définie, la création revient uniquement avec les enregistrements ingérés après la datetime. backfill doit également être défini sur true . Cette propriété attend un littéral datetime ; par exemple, effectiveDateTime=datetime(2019-05-01) . |
updateExtentsCreationTime | bool |
Pertinent uniquement lorsque vous utilisez backfill . S’il est défini true sur , l’heure de création de l’étendue est affectée en fonction de la clé de groupe datetime par clé pendant le processus de remplissage. Pour plus d’informations, consultez Le remplissage d’une vue matérialisée. |
lookback | timespan |
Valide uniquement pour arg_max //arg_min take_any les vues matérialisées. Elle limite la période pendant laquelle les doublons sont attendus. Par exemple, si une recherche de 6 heures est spécifiée sur une arg_max vue, la déduplication entre les enregistrements nouvellement ingérés et les enregistrements existants prend en compte uniquement les enregistrements qui ont été ingérés il y a jusqu’à 6 heures. Lookback est relatif à ingestion_time(). Si la requête d’affichage matérialisée ne conserve pas la ingestion_time() valeur, la recherche en arrière ne peut pas être définie sur la vue. Consultez les limitations de vues matérialisées et les problèmes connus. La définition incorrecte de la période de recherche peut entraîner des doublons dans la vue matérialisée. Par exemple, si un enregistrement pour une clé spécifique est ingéré 10 heures après l’ingestion d’un enregistrement pour la même clé et que la recherche est définie sur 6 heures, cette clé est un doublon dans la vue. La période de recherche est appliquée pendant le temps de matérialisation et l’heure de requête. |
autoUpdateSchema | bool |
Indique s’il faut mettre à jour automatiquement la vue sur les modifications apportées à la table source. La valeur par défaut est false . Cette option est valide uniquement pour les vues de type arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) (uniquement lorsque l’argument de la colonne est ).* Si cette option est définie true sur , les modifications apportées à la table source sont automatiquement reflétées dans la vue matérialisée. |
dimensionTables | tableau | Argument dynamique qui inclut un tableau de tables de dimension dans la vue. Consultez le paramètre De requête. |
dossier | string |
Dossier de la vue matérialisée. |
docString | string |
Chaîne qui documente la vue matérialisée. |
allowMaterializedViewsWithoutRowLevelSecurity | bool |
Permet de créer une vue matérialisée sur une table avec une stratégie de sécurité au niveau des lignes activée. |
Table existante
Si la table existe déjà, seul le sous-ensemble de propriétés suivant est pris en charge dans with(
PropertyName =
PropertyValue )
. Toutes les propriétés sont facultatives.
Nom | Type | Description |
---|---|---|
lookback | timespan |
Valide uniquement pour arg_max //arg_min take_any les vues matérialisées. Elle limite la période pendant laquelle les doublons sont attendus. Par exemple, si une recherche de 6 heures est spécifiée sur une arg_max vue, la déduplication entre les enregistrements nouvellement ingérés et les enregistrements existants prend en compte uniquement les enregistrements qui ont été ingérés il y a jusqu’à 6 heures. Lookback est relatif à ingestion_time . La définition incorrecte de la période de recherche peut entraîner des doublons dans la vue matérialisée. Par exemple, si un enregistrement pour une clé spécifique est ingéré 10 heures après l’ingestion d’un enregistrement pour la même clé et que la recherche est définie sur 6 heures, cette clé est un doublon dans la vue. La période de recherche est appliquée pendant le temps de matérialisation et l’heure de requête. |
autoUpdateSchema | bool |
Indique s’il faut mettre à jour automatiquement la vue sur les modifications apportées à la table source. La valeur par défaut est false . Cette option est valide uniquement pour les vues de type arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) (uniquement lorsque l’argument de la colonne est ).* Si cette option est définie true sur , les modifications apportées à la table source sont automatiquement reflétées dans la vue matérialisée. |
dimensionTables | tableau | Argument dynamique qui inclut un tableau de tables de dimension dans la vue. Consultez le paramètre De requête. |
dossier | string |
Dossier de la vue matérialisée. |
docString | string |
Chaîne qui documente la vue matérialisée. |
Retours
Schéma de sortie :
Nom | Type | Description |
---|---|---|
Nom | string |
Nom de la vue matérialisée. |
SourceTable | string |
Nom de la table source sur laquelle la vue est définie. |
Requête | string |
Définition de requête de la vue matérialisée. |
MaterializedTo | datetime |
Horodatage ingestion_time() matérialisé maximal dans la table source. Pour plus d’informations, consultez le fonctionnement des vues matérialisées. |
LastRun | datetime |
Dernière exécution de la matérialisation. |
LastRunResult | string |
Résultat de la dernière exécution. Retourne Completed pour les exécutions réussies ; sinon Failed . |
IsHealthy | bool |
true lorsque l’affichage est considéré comme sain, false sinon. La vue est considérée comme saine si elle a été matérialisée jusqu’à la dernière heure (MaterializedTo est supérieure à ago(1h) ). |
IsEnabled | bool |
true lorsque l’affichage est activé (voir Désactiver ou activer la vue matérialisée). |
Dossier | string |
Dossier sous lequel la vue matérialisée est créée. |
DocString | string |
Description affectée à la vue matérialisée. |
AutoUpdateSchema | bool |
Indique si la vue est activée pour les mises à jour automatiques. |
EffectiveDateTime | datetime |
Date d’effet de l’affichage, déterminée pendant l’heure de création (voir .create materialized-view ). |
Recherche arrière | timespan |
Intervalle de temps limitant la période dans laquelle les doublons sont attendus. |
Exemples
Créer ou modifier une vue matérialisée
La commande suivante crée une vue matérialisée existante appelée ArgMax ou modifie :
.create-or-alter materialized-view ArgMax on table T
{
T | summarize arg_max(Timestamp, *) by User
}
Sortie
Nom | SourceTable | Requête | MaterializedTo | LastRun | LastRunResult | IsHealthy | IsEnabled | Dossier | DocString | AutoUpdateSchema | EffectiveDateTime | Recherche arrière |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ArgMax | T | T | résumer arg_max(Timestamp, *) par utilisateur | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.9033667Z | Terminée | true | true | false | 2023-02-23T14:01:42.5172342Z |
Notes
Si la vue matérialisée n’existe pas, cette commande se comporte comme .create materialized-view.
Pour plus d’informations, consultez les sections Paramètres de requête et Propriétés .
Limites
Modifications non prises en charge :
- Modifications apportées au groupe d’affichage matérialisé par expressions.
- Modification du type de colonne.
- Changement de nom des colonnes. Par exemple, la modification d’une vue de suppression
T | summarize Count=count() by Id
deT | summarize count() by Id
colonnecount_
et la création d’une nouvelle colonneCount
, qui contient initialement des valeurs Null uniquement.
Impact sur les données existantes :
- La modification de la vue matérialisée n’a aucun impact sur les données existantes.
- L’ajout de filtres à la requête s’applique uniquement aux enregistrements nouvellement ingérés et ne modifie pas les enregistrements qui ont déjà été matérialisés.
- Les nouvelles colonnes reçoivent des valeurs Null pour tous les enregistrements existants jusqu’à ce que les enregistrements ingérés après la commande alter modifient les valeurs Null.
- Par exemple : une vue d’une
T | summarize count() by bin(Timestamp, 1d)
vue est modifiée enT | summarize count(), sum(Value) by bin(Timestamp, 1d)
. Pour un enregistrement particulierTimestamp=T
pour lequel les enregistrements ont déjà été traités avant de modifier la vue, lasum
colonne contient des données partielles. Cette vue inclut uniquement les enregistrements traités après l’exécution de modification.