Une fois les vues matérialisées créées, gérez-les au sein de votre cluster. Vous pouvez notamment consulter leurs historiques d'actualisation et leurs définitions, modifier le groupe de ressources utilisé, activer ou désactiver la réécriture de requête, et les supprimer.
Consultation de la définition d'une vue matérialisée
Consultez l'instruction DDL utilisée pour créer une vue matérialisée.
Autorisations
L'autorisation SELECT sur la vue matérialisée est requise. À défaut, un compte privilégié ou un compte standard disposant de l'autorisation GRANT doit vous accorder cette autorisation depuis la page account management de la console, ou en exécutant l'instruction SQL suivante : GRANT SELECT ON database.mv_name TO username;
Syntaxe
SHOW CREATE MATERIALIZED VIEW <mv_name>
Exemple
Consultez l'instruction DDL de la vue matérialisée compl_mv1.
SHOW CREATE MATERIALIZED VIEW demo.compl_mv1;
Consultation des métadonnées des vues matérialisées
Champs
La vue information_schema.mv_info contient les métadonnées de toutes les vues matérialisées. Pour consulter la définition d'une seule vue matérialisée, utilisez l'instruction SHOW CREATE MATERIALIZED VIEW.
Le tableau suivant décrit les champs courants de la vue information_schema.mv_info.
|
Champ |
Description |
|
MV_SCHEMA |
Base de données dans laquelle se trouve la vue matérialisée. |
|
MV_NAME |
Nom de la vue matérialisée. |
|
MV_DEFINITION |
Instruction DDL des propriétés de table de la vue matérialisée. |
|
MV_QUERY |
Requête SQL originale de la vue matérialisée (query_body). |
|
FIRST_REFRESH_TIME |
Heure de la première actualisation, si l'actualisation automatique est configurée. |
|
NEXT_REFRESH_TIME_FUNC |
Fonction qui détermine l'heure de la prochaine actualisation, si l'actualisation automatique est configurée. |
|
OWNER |
Créateur de la vue matérialisée. |
|
QUERY_SCHEMA |
Base de données dans laquelle l'instruction |
|
REFRESH_CONDITION |
Mécanisme de déclenchement de l'actualisation.
|
|
REFRESH_STATE |
Méthode d'actualisation de la vue matérialisée.
|
|
UPDATE_TIME |
Dernière heure de mise à jour de cette ligne de métadonnées. |
Exemples
-
Comptez les vues matérialisées du cluster.
SELECT count(*) FROM information_schema.mv_info; -
Consultez les métadonnées de toutes les vues matérialisées.
SELECT * FROM information_schema.mv_info;
Liste des vues matérialisées
Répertorie les vues matérialisées d'une base de données spécifiée sur lesquelles vous disposez de l'autorisation SELECT. Si vous spécifiez un motif, seules les vues matérialisées dont les noms correspondent au motif sont renvoyées.
Autorisations
L'autorisation SELECT sur toutes les vues matérialisées de la base de données spécifiée est requise. À défaut, un compte privilégié ou un compte standard disposant de l'autorisation GRANT doit vous accorder cette autorisation depuis la page account management de la console, ou en exécutant l'instruction SQL suivante : GRANT SELECT ON database. TO username*;
Syntaxe
Pour consulter toutes les vues matérialisées de la base de données actuelle :
SHOW MATERIALIZED VIEWS [LIKE 'pattern']
Pour consulter toutes les vues matérialisées d'une base de données spécifique (qui peut différer de la base de données actuelle) :
SELECT * FROM information_schema.mv_info WHERE mv_schema='schema_name';
Exemples
-
Consultez toutes les vues matérialisées de la base de données actuelle.
SHOW MATERIALIZED VIEWS; -
Consultez toutes les vues matérialisées de la base de données actuelle dont les noms commencent par
compl.SHOW MATERIALIZED VIEWS LIKE 'compl%';RemarquePour plus d'informations sur l'utilisation de
LIKE 'pattern', consultez la section String functions. -
Consultez toutes les vues matérialisées de la base de données
demo.SELECT * FROM information_schema.mv_info WHERE mv_schema='demo';
Consultation des historiques d'actualisation
Historiques d'actualisation automatique
Syntaxe
Utilisez l'instruction SQL suivante pour consulter les historiques d'actualisation automatique d'une vue matérialisée spécifiée. Les enregistrements incluent l'heure de début (START_TIME), l'heure de fin (END_TIME), le statut (STATE) et l'ID de processus (PROCESS_ID) de l'actualisation.
SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema='<schema_name>' AND mv_name = '<mv_name>';
La vue information_schema.mv_auto_refresh_jobs stocke les enregistrements des tâches d'actualisation automatique des vues matérialisées. Elle conserve un maximum de 1 024 enregistrements. Cette table répertorie uniquement les vues matérialisées configurées pour une actualisation automatique planifiée (à l'aide des paramètres START WITH ou NEXT).
La vue information_schema.mv_auto_refresh_jobs n'inclut pas l'enregistrement de l'actualisation initiale effectuée lors de la création de la vue matérialisée.
Exemples
-
Consultez tous les historiques d'actualisation de la vue matérialisée
compl_mv1dans la base de donnéesdemo.SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1'; -
Consultez la tâche d'actualisation en attente la plus récente pour la vue matérialisée
compl_mv1dans la base de donnéesdemo.SELECT * FROM information_schema.mv_auto_refresh_jobs WHERE mv_schema = 'demo' AND mv_name = 'compl_mv1' AND state = 'PENDING';
Champs
Le tableau suivant décrit les champs courants.
|
Champ |
Description |
|
MV_SCHEMA |
Nom de la base de données dans laquelle se trouve la vue matérialisée. |
|
MV_NAME |
Nom de la vue matérialisée. |
|
PROCESS_ID |
ID de processus de la tâche d'actualisation. |
|
SCHEDULED_START_TIME |
Heure de début planifiée de la tâche d'actualisation. |
|
START_TIME |
Heure de début réelle de la tâche d'actualisation. |
|
END_TIME |
Heure de fin réelle de la tâche d'actualisation. |
|
STATE |
Statut de l'actualisation.
|
Historiques d'actualisation manuelle
-
Utilisez la fonctionnalité SQL Audit pour consulter les historiques d'actualisation manuelle d'une vue matérialisée sur les 30 derniers jours. Lors de la recherche, saisissez le mot-clé REFRESH MATERIALIZED VIEW mv_name pour trouver des informations telles que l'heure, la durée, l'adresse IP et le nom d'utilisateur associés aux actualisations manuelles.
RemarqueLa fonctionnalité SQL Audit doit être activée séparément. Les opérations SQL effectuées avant l'activation de cette fonctionnalité ne sont pas enregistrées.
Utilisez la fonctionnalité SQL Diagnostics and Optimization pour consulter les historiques d'actualisation manuelle et automatique sur les 14 derniers jours. Lors de la recherche, saisissez le nom de la vue matérialisée, par exemple
compl_mv1. Vous pouvez récupérer des informations sur toutes les requêtes SQL associées (y compris la création, l'actualisation manuelle, l'actualisation automatique et les modifications), telles que l'heure de début, le nom d'utilisateur, la durée et l'ID de requête.
Modification des vues matérialisées
Convertissez une vue matérialisée standard en une vue matérialisée élastique, modifiez le groupe de ressources utilisé, activez ou désactivez la réécriture de requête, ou renommez-la.
Vous ne pouvez pas modifier d'autres propriétés, telles que la définition de la vue, la politique d'actualisation ou le déclencheur d'actualisation.
Autorisations
L'autorisation ALTER sur la vue matérialisée est requise. À défaut, un compte privilégié ou un compte standard disposant de l'autorisation GRANT doit vous accorder cette autorisation depuis la page account management de la console, ou en exécutant l'instruction SQL suivante : GRANT ALTER ON database.mv_name TO username;
Syntaxe
ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[ENABLE|DISABLE QUERY REWRITE]
[RENAME <new_mv_name>]
[BINLOG={TRUE|FALSE}]
-
MV_PROPERTIES: Spécifie les propriétés de la vue matérialisée, y compris les paramètresmv_resource_groupetmv_refresh_hints.mv_resource_group: Spécifie le groupe de ressources utilisé par la vue matérialisée. Si le groupe de ressources spécifié n'existe pas, une erreur est renvoyée lors de la création de la vue matérialisée.mv_refresh_hints: Définit les paramètres de la vue matérialisée. Pour plus de détails sur les paramètres de configuration pris en charge, consultez la section Common Hints.ImportantLes propriétés
<MV_PROPERTIES>spécifiées dans une instructionALTERécrasent complètement les propriétés<MV_PROPERTIES>spécifiées lors de la création de la vue matérialisée.Par exemple, si vous créez une vue matérialisée et configurez les paramètres
mv_resource_groupetmv_refresh_hints, puis exécutez une instruction ALTER qui spécifie uniquement le paramètremv_resource_group, le paramètremv_resource_groupest mis à jour et le paramètremv_refresh_hintsest effacé. ENABLE|DISABLE QUERY REWRITE: Active ou désactive la fonctionnalité de réécriture de requête.RENAME <new_mv_name>: Renomme la vue matérialisée.BINLOG={TRUE|FALSE}: Active ou désactive la fonctionnalité binlog pour la vue matérialisée. Cette option est prise en charge dans les versions 3.2.5.0 et ultérieures du noyau du cluster.
Exemples
-
Activez la fonctionnalité de réécriture de requête pour la vue matérialisée
compl_mv1.ALTER MATERIALIZED VIEW compl_mv1 ENABLE QUERY REWRITE; -
Modifiez le groupe de ressources utilisé par la vue matérialisée élastique
job_mv.ALTER MATERIALIZED VIEW job_mv MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2", "mv_refresh_hints":{"query_priority":"NORMAL"} }'; -
Convertissez la vue matérialisée standard
compl_mv1en une vue matérialisée élastique.ALTER MATERIALIZED VIEW compl_mv1 MV_PROPERTIES='{ "mv_resource_group":"my_job_rg_2" }'; -
Renommez la vue matérialisée mv1 en mv2.
ALTER MATERIALIZED VIEW mv1 RENAME mv2;
Suppression des vues matérialisées
Cette opération supprime physiquement la vue matérialisée et ses données.
Si vous utilisez DROP TABLE pour supprimer une vue matérialisée, une erreur est renvoyée. Le message d'erreur est similaire à demo.myview11 is materialized view, use DROP MATERIALIZED VIEW.
Autorisations
L'autorisation DROP sur la vue matérialisée est requise. À défaut, un compte privilégié ou un compte standard disposant de l'autorisation GRANT doit vous accorder cette autorisation depuis la page account management de la console, ou en exécutant l'instruction SQL suivante : GRANT DROP ON database.mv_name TO username;
Syntaxe
DROP MATERIALIZED VIEW <mv_name>
Exemple
Supprimez la vue matérialisée compl_mv1.
DROP MATERIALIZED VIEW compl_mv1;