Vue matérialisée dans Google BigQuery



Qu’est-ce qu’une vue matérialisée ?

Dans le monde de l’analyse de données, lorsqu’une équipe d’analyse de données crée un rapport/tableau de bord pour obtenir des informations sur les données, elle doit attendre pour charger ou actualiser les données sur le même. La raison en est que l’outil récupère les données de plusieurs tables de la base de données à l’aide de jointures ou d’une grande requête SQL complexe. Bien qu’ils puissent optimiser la requête autant que possible, le temps de chargement n’est toujours pas conforme aux attentes.

Ils ont une autre solution pour obtenir des données en créant la vue côté base de données et en appelant la vue côté outil BI. Cela améliorera la performance du rapport. Mais attendez, il y a deux choses du côté de la base de données.

Ainsi, la vue n’est rien de plus qu’une table virtuelle créée par une table ou plusieurs tables qui dépendent de la requête SQL écrite. C’est la même chose que la table de la base de données mais elle n’est pas stockée physiquement sur le disque. Il fonctionne comme une table virtuelle et chaque fois que vous souhaitez récupérer les informations de View, il les récupère normalement à partir de la table de base. Ainsi, il affiche toujours les données mises à jour de la table de base.

Une vue matérialisée est un objet de base de données qui contient les résultats instantanés d’une requête. Il n’est peuplé qu’au moment de la création. Chaque fois que vous souhaitez avoir le résultat mis à jour à partir de la vue matérialisée, vous devez l’actualiser.

La vue matérialisée est principalement utilisée dans les entrepôts de données ou les applications de Business Intelligence où les requêtes fréquentes des tables de base réelles peuvent être coûteuses.

Présentation de BigQuery

BigQuery est un service d’entrepôt de données cloud entièrement géré et sans serveur très populaire fourni par Google, où vous pouvez stocker et interroger une quantité massive de données. C’est une solution très rentable pour l’entrepôt de données. BigQuery a le potentiel de faire évoluer des pétaoctets de données en quelques secondes et il dispose de capacités d’analyse de données en temps réel.

Vue matérialisée dans BigQuery

La vue matérialisée dans BigQuery est une vue précalculée qui met périodiquement en cache les résultats d’une requête afin d’améliorer les performances et l’efficacité. BigQuery exploite les résultats précalculés des vues matérialisées et les modifications delta en lecture seule de la table de base pour calculer des résultats à jour.

La vue matérialisée est plus rapide et consomme moins de ressources. Toutes les données incrémentales de la table de base seront automatiquement ajoutées dans la Vue matérialisée.

Créer une vue matérialisée dans BigQuery

Afin de démontrer les performances de la vue matérialisée, j’utilise un ensemble de données MusicBrainz qui a un enregistrement table et la taille de la table est 1,49 Go et il a autour 16 millions Lignes.

Il y a une bonne caractéristique de BigQuery que si la requête que vous avez écrite dans l’éditeur est correcte en termes de syntaxe, elle vous montrera la quantité de données qui récupérera la requête dans le coin supérieur droit et si vous exécutez la requête ci-dessous, vous pouvez voir que la requête a récupéré 581,4 Mo de données lorsque vous la lancez directement sur la table et, selon le plan d’exécution, le temps écoulé a pris 29,7 secondes.

SELECT 

  name, 

  COUNT(*) AS name_count, 

  SUM(artist_credit) AS sum_artist_credit 

FROM 

  `bigquery-263309.musicbrainz.recording` where edits_pending=0 

GROUP BY 

  Name 

Après avoir obtenu un résultat, vous pouvez également voir dans le plan d’exécution que la plupart du temps, la requête prend pour calculer les données dans l’étape d’entrée et l’étape de sortie. examinons-le en créant une vue matérialisée.

Créer la vue matérialisée

Afin de créer une vue matérialisée pour la même requête, vous utiliserez la requête ci-dessous et lorsque vous exécutez la requête, la requête prend 0B pour s’exécuter.

CREATE MATERIALIZED VIEW 

  `bigquery-263309.musicbrainz.materialized_view` AS 

SELECT 

  name, 

  COUNT(*) AS name_count, 

  SUM(artist_credit) AS sum_artist_credit 

FROM 

  `bigquery-263309.musicbrainz.recording` where edits_pending=0 

GROUP BY 

  Name 

Maintenant, vous pouvez mesurer les performances et l’efficacité de la vue matérialisée en exécutant la requête ci-dessous :

SELECT * from `bigquery-263309.musicbrainz.materialized_view` 

Vous verrez que la requête prendra 332,3 Mo pour récupérer les données et vous obtiendrez le temps écoulé 19,7 secondes.

Après avoir obtenu le résultat de la requête et vous pouvez également voir que la majorité du temps est passé dans l’étape de sortie car le résultat de la requête est précalculé.

Modifier la vue matérialisée

Pour modifier la vue matérialisée afin de définir l’activation de l’actualisation sur true, exécutez la requête ci-dessous

ALTER MATERIALIZED VIEW `bigquery-263309.musicbrainz.materialized_view` SET OPTIONS (enable_refresh=true) 

Supprimer la vue matérialisée

Pour supprimer la vue matérialisée –

DROP MATERIALIZED VIEW IF EXISTS `bigquery-263309.musicbrainz.materialized_view` 

La modification et la suppression de cette Vue Matérialisée prennent 0B à traiter.

Actualisation de la vue matérialisée

BigQuery permet l’actualisation automatique et manuelle de la vue matérialisée.

Actualisation automatique

Par défaut, la vue matérialisée se rafraîchit chaque 30 minutes. Cela peut être activé ou désactivé à tout moment en modifiant la vue et le réglage activer_rafraîchir comme vrai ou alors faux.

Configuration de la limitation du nombre d’expositions

Vous pouvez également définir la limite de fréquence, c’est-à-dire la fréquence à laquelle l’actualisation automatique s’exécute. Vous pouvez l’activer et le désactiver à tout moment en modifiant la vue et en définissant refresh_interval_minutes = 60. Le minimum et le maximum la limite du nombre d’expositions est respectivement de 1 minute et 7 jours.

Actualisation manuelle –

La vue matérialisée peut être actualisée manuellement à tout moment. Pour faire de même, vous devez appeler la procédure système BQ.REFRESH_MATERIALIZED_VIEW. BigQuery identifie les modifications et les reflète dans la vue matérialisée.

CALL BQ.REFRESH_MATERIALIZED_VIEW('bigquery-263309.musicbrainz.materialized_view')

Surveiller l’actualisation de la tâche de vue matérialisée

Dans BigQuery, évidemment, la vue matérialisée prend également du temps pour s’actualiser, qu’elle s’actualise automatiquement ou manuellement. Et comme vous travaillez sur une très grande quantité de données. Vous pouvez surveiller l’état/l’intervalle de rafraîchissement/la durée de la vue matérialisée lors de l’actualisation à partir de information_schema, comme indiqué à l’aide de la requête ci-dessous.

SELECT 

  creation_time, 

  start_time, 

  end_time, 

  state, 

  DATE_DIFF(end_time, start_time, SECOND) AS time_taken_in_second, 

  job_id, 

  total_slot_ms, 

  total_bytes_processed 

FROM 

  region-US.INFORMATION_SCHEMA.JOBS_BY_PROJECT 

WHERE 

  job_id LIKE "%materialized_view_refresh_%" 

ORDER BY 

  Creation_time DESC 

Conclusion

BigQuery est un bon choix pour analyser une quantité massive de données. La vue matérialisée offre un temps de réponse rapide aux requêtes analytiques.

Pour charger les données de MusicBrainz, visitez – https://cloud.google.com/architecture/performing-etl-from-relational-database-into-bigquery?hl=lt

Partager








Magnifique Service pas cherTrès Bon Site Webde qualité}

Vous aimerez aussi...