Google
4 min lire

Sauvegarde et reprise après sinistre de BigQuery (restauration granulaire automatisée)

HYCU permet des sauvegardes automatisées en un clic et une restauration granulaire de vos données BigQuery. Découvrez pourquoi les méthodes de sauvegarde par défaut de BigQuery peuvent être inadéquates.

Rédigé par
Andy Fernandez
Publié le
8 novembre 2023
Partager sur les réseaux sociaux

Qu'est-ce que BigQuery ?

BigQuery est un entrepôt de données d'entreprise doté d'une architecture sans serveur qui permet aux utilisateurs d'exécuter des requêtes de type SQL sur de grands ensembles de données en utilisant la puissance de traitement de l'infrastructure de Google. 

En tant que solution entièrement gérée, BigQuery dispose de fonctionnalités intégrées telles que l'apprentissage automatique, la veille stratégique, l'analyse en temps réel et même l'analyse géospatiale, qui aident les entreprises modernes cherchant à exploiter de grandes quantités de données dans leur processus de prise de décision. Ceci est particulièrement dû à sa capacité à traiter des téraoctets de données en quelques secondes et des pétaoctets en quelques minutes, ce qui en fait un outil parfait pour l'analyse de données à grande échelle. 

Il est important de noter que BigQuery est sans serveur. Cela signifie qu'aucune gestion d'infrastructure n'est nécessaire, ce qui permet de se concentrer sur l'analyse des données importantes pour obtenir des informations significatives au lieu de se préoccuper des frais généraux. 

Importance de BigQuery dans l'analyse et l'entreposage des données

Le concept de "big data" (volume, vitesse et variété) pose un défi de taille aux capacités de traitement des données des systèmes traditionnels. C'est précisément en raison de leur capacité, de leur évolutivité et de leur puissance de traitement limitées que l'extraction d'informations pertinentes à partir d'ensembles de données vastes et complexes est pratiquement impossible et prend beaucoup de temps. 

Heureusement, c'est là que BigQuery entre en jeu. L'architecture robuste de BigQuery permet aux entreprises de créer, d'entraîner et de déployer des modèles d'apprentissage automatique à l'aide de données structurées et semi-structurées directement dans BigQuery, rationalisant ainsi le processus d'extraction des informations.

En outre, BigQuery occupe également une position essentielle en raison de ses avantages uniques, tels que 

  • Un modèle sans serveur qui permet de simplifier les opérations. 
  • Ses capacités à grande vitesse permettent d'insérer des milliers de lignes de données par seconde, ce qui permet d'effectuer des analyses en temps réel.
  • Son infrastructure sous-jacente garantit une haute disponibilité, ce qui facilite l'adaptation automatique aux grands ensembles de données.
  • Il garantit une solide sécurité des données et s'intègre de manière transparente à d'autres outils et services tels que Data Studio, Looker et Tableau. 
  • Son 'pay-as-you-gofacilite également la gestion des capacités et des coûts d'investissement, en particulier pour les infrastructures telles que les serveurs, les centres de données et d'autres matériels. 

La nécessité de sauvegarder et de restaurer BigQuery 

Malgré toutes ses puissantes fonctions et capacités, les données de BigQuery, comme toutes les autres "données numériques", sont vulnérables à la suppression accidentelle, à la perte ou à la corruption.

Exemple concret de perte de données BigQuery

Supposons qu'une entreprise utilise BigQuery pour ses besoins en matière d'entreposage de données.

  • Ils stockent une pléthore de données, notamment des enregistrements de ventes, des informations sur les clients et des détails sur les produits. 
  • Un jour, un employé peut être chargé d'éliminer les documents périmés du système afin de préserver l'efficacité du stockage.
  • Ils exécutent donc une commande, avec l'intention de supprimer les données datant de plus de cinq ans. 

Cependant, en raison d'une erreur dans la commande SQL, le système interprète mal le critère de suppression et tous les enregistrements de plus d'un an sont supprimés. 

Si la suppression passe inaperçue et qu'un autre employé tente d'effectuer une analyse des tendances sur plusieurs années, ce sera impossible car il manquera une année entière de données. Sans une solide stratégie de sauvegarde, la récupération de ces données n'est pas garantie. 

Dans ce scénario, malgré la fiabilité de BigQuery, les données qu'il contient sont vulnérables à l'erreur humaine - en l'occurrence, à la suppression accidentelle. Cela peut également s'appliquer à des scénarios impliquant des exigences de conformité réglementaire et de conservation des données pour certaines organisations. 

Pour protéger vos informations précieuses, il est crucial de disposer d'une solide stratégie de sauvegarde qui vous permette de récupérer rapidement tout problème imprévu lié aux données et de maintenir la continuité de vos activités. 

Utilisation de HYCU pour Google BigQuery Backup

Lorsqu'il s'agit de protéger vos données sur Google BigQuery, HYCU offre une solution complète et facile à utiliser

  • En cas de perte de données ou de défaillance du système, HYCU permet de restaurer instantanément les tables et les états précédents. Ainsi, les temps d'arrêt et les interruptions d'activité sont réduits au minimum. 
  • Un autre avantage et superpuissance de HYCU est son processus de récupération précis et fiable pour les Google Cloud. HYCU garantit que les données restaurées conservent leur intégrité et leur cohérence, en reproduisant l'état des données au moment de la sauvegarde. Ceci est particulièrement crucial pour les charges de travail analytiques ou complexes sur BigQuery, où l'exactitude et la cohérence des données sont primordiales.

Restauration de tables et d'ensembles de données en quelques clics 

Automatiser toutes les opérations de sauvegarde en 1 clic 

HYCU automatise la sauvegarde de vos ensembles de données, tables et schémas BigQuery, éliminant ainsi la nécessité d'une intervention manuelle. Cela vous libère du temps et réduit considérablement le risque d'erreur humaine (par exemple, une mauvaise utilisation de la souris entraînant une suppression accidentelle) conduisant à une perte de données. 

En outre, HYCU offre la possibilité de personnaliser les paramètres de sauvegarde :

  • Planifiez les sauvegardes pendant les heures creuses afin de minimiser l'impact sur les performances.
  • Définir des politiques de conservation pour assurer la conformité réglementaire.
  • Choisissez des emplacements de stockage de sauvegarde pour assurer la souveraineté des données.

Et toutes ces sauvegardes sont cryptées pendant le transport et au repos, ce qui garantit la sécurité de vos données. 

Sauvegardes natives Google Cloud sans calcul

HYCU est conçu pour fonctionner avec les API de Google, et les clients n'ont pas besoin d'utiliser un script pour configurer les opérations de sauvegarde traditionnelles. 

En outre, vous pouvez configurer HYCU pour sauvegarder vos données BigQuery sur Google Cloud Storage (GCS) pour une conservation des données à long terme. Cette flexibilité garantit que vos données sauvegardées peuvent être facilement utilisées ou migrées en fonction de vos cas d'utilisation ou exigences spécifiques.

Au-delà de BigQuery : protégez votre infrastructure Google Cloud

HYCU fournit des sauvegardes automatisées et une restauration granulaire sur Google Cloud Infrastructure, DBaaS, PaaS et SaaS. En fait, HYCU se targue d'offrir la couverture la plus complète de l'infrastructure et des services Google Cloud avec un support complet pour :

  • Google Cloud Moteur (CME)
  • Google Cloud Stockage 
  • Google CloudSQL 
  • Google BigQuery 
  • Google Kubernetes Engine (GKE)
  • Google Cloud VMware Engine
  • Google Workspace
  • SAP HANA en Google Cloud 

Protéger l'infrastructure multi-cloud, PaaS, DBaaS et SaaS

HYCU ne se limite pas à la sauvegarde de vos données BigQuery ; il prend également en charge diverses sources de données et charges de travail. En d'autres termes, que vous ayez d'autres charges de travail dans Google, d'autres clouds publics, des centres de données sur site ou même des applications SaaS, DBaaS et PaaS, HYCU peut les sauvegarder et les restaurer de manière transparente.

D'un autre côté, spécifiquement pour BigQuery, HYCU fournit une protection complète des données. Cela garantit que toutes vos données BigQuery, y compris les tables individuelles et les schémas, peuvent être restaurées.

💡 En rapport → Top 14 des solutions et outils de sauvegarde pour la protection des données en mode SaaS

S'abonner et se protéger en quelques clics 

L'une des caractéristiques marquantes de HYCU est son interface conviviale et sa documentation complète, qui rendent la mise en place et la configuration de vos sauvegardes BigQuery sans effort. 

Par exemple, HYCU simplifie les opérations de sauvegarde en découvrant automatiquement toutes les instances et charges de travail de votre compte, ce qui vous permet d'assigner des politiques pré-packagées en un clic ou de créer les vôtres. 

Notamment, ces politiques sont "prêtes à l'emploi", c'est-à-dire qu'elles fonctionnent 24 heures sur 24, 7 jours sur 7 et 365 jours par an, sans aucune opération manuelle ni gestion quotidienne. 

Protection des données et sécurité renforcées

Outre l'héritage automatique des rôles et autorisations de Google Cloud IAM (Identity and Access Management), HYCU offre également une fonction de contrôle d'accès basé sur les rôles (RBAC).

Cette fonction vous permet de définir des droits d'accès et des rôles pour les opérations de sauvegarde et de restauration. Cela permet d'éviter les accès non autorisés et de garantir que vos sauvegardes de données sont traitées de manière sécurisée et professionnelle.

Cette intégration garantit que les opérations de sauvegarde et de restauration ne sont effectuées que par des utilisateurs autorisés. 

Une tarification rentable

HYCU offre des options de tarification flexibles, garantissant que les entreprises de toutes tailles bénéficient de ses capacités de sauvegarde robustes. Le coût de l'utilisation de HYCU s'adapte à vos besoins spécifiques, tels que la quantité de données à sauvegarder, la fréquence des sauvegardes et la période de conservation requise. Cette approche vous permet d'adapter le service à vos besoins et de ne payer que ce dont vous avez besoin. 

Une vue unique de votre domaine Google avec l'état de protection

Si votre organisation est comme la plupart des autres, il se peut que vous utilisiez beaucoup plus de services Google, ainsi que d'autres services publics en nuage et applications SaaS. Cela représente un énorme défi en termes de suivi, sans parler de la garantie que les données et la configuration sont protégées et disponibles pour la restauration. Avec R-Graph, les utilisateurs de HYCU peuvent suivre l'ensemble de l'infrastructure et des services en nuage, PaaS, DBaaS et SaaS dans une seule vue "carte au trésor". Vous serez en mesure de savoir quels services sont protégés et conformes et lesquels nécessitent une protection. 

💡 Produits apparentés → Google Workspace Solution de sauvegarde et de récupération (G Suite)

Options et configurations par défaut de la sauvegarde de BigQuery

Pour activer BigQuery Backup, vous devez disposer d'un accès administrateur avec les rôles IAM suivants pour gérer les ensembles de données : 

  • Copier un jeu de données (Beta) :
  • Admin BigQuery (roles/bigquery.admin) sur le projet de destination
  • BigQuery Data Viewer (roles/bigquery.dataViewer) sur le jeu de données source
  • Éditeur de données BigQuery (roles/bigquery.dataEditor) sur le jeu de données de destination
  • Supprimer un jeu de données : Propriétaire de données BigQuery (roles/bigquery.dataOwner) sur le projet
  • Restaurer un jeu de données supprimé : BigQuery Admin (roles/bigquery.admin) sur le projet

Une fois que vous y avez accès, vous pouvez gérer les configurations et les options de sauvegarde ci-dessous. 

Copie Sauvegardes au niveau du jeu de données

Un jeu de données typique dans BigQuery est un conteneur de premier niveau qui abrite vos tables et vos vues. C'est également un moyen efficace d'organiser et de contrôler l'accès à vos données. Par exemple, en séparant les données brutes des données traitées ou des données provenant de différents départements ou projets. 

En revanche, la configuration des sauvegardes au niveau des ensembles de données implique la création et l'exportation d'une copie de vos données vers un emplacement spécifique, par exemple un godet Cloud Storage . Cette action garantit la disponibilité et l'intégrité de vos données, même en cas de suppression ou de modification accidentelle.

Méthodes de configuration des sauvegardes au niveau des ensembles de données

Il existe deux méthodes pour configurer les sauvegardes au niveau des jeux de données : l'API BigQuery et les commandes SQL. 

Utilisation de l'API BigQuery

L'API BigQuery vous permet d'utiliser le service de transfert de données BigQuery pour planifier des transferts de données automatisés à partir de BigQuery pour un Cloud Storage seau

  • Puisque les sauvegardes seront stockées dans le godet de stockage Google Cloud , créez un nouveau godet dans la section "Stockage" de la Cloud Console. 
  • Choisissez un langage de programmation et installez la bibliothèque client correspondante pour l'API BigQuery. Lisez la documentation ici. 
  • Installer le Google Cloud SDK. Il fournit l'outil de ligne de commande nécessaire pour interagir avec les API et d'autres services Google Cloud . 
  • Authentifiez le SDK avec votre compte Google Cloud en utilisant les commandes de la gCLI. Cela garantit que le SDK peut accéder à votre compte et effectuer des opérations en votre nom. 
  • Si vous n'en avez pas encore, créez un nouveau jeu de données. 
  • Définissez la configuration. Spécifiez l'ensemble de données, le projet, les ID de table et Cloud Storage Bucket. 
  • Exportez les données de vos tables BigQuery vers un panier Cloud Storage en envoyant une requête à l'API. 

Une fois le processus confirmé, assurez-vous que votre ensemble de données BigQuery et Cloud Storage se trouvent à l'emplacement exact afin d'éviter tout problème potentiel. 

💡Note → Cette option de sauvegarde BigQuery n'est qu'une copie des données existantes et non une incrémentation.

Recommandé En savoir plus sur Google Cloud API

Utilisation des commandes SQL

Les commandes SQL dans BigQuery offrent une autre option pour gérer et interagir avec les ensembles de données. Dans le contexte de la "sauvegarde des données", cela n'est pas tout à fait possible - il en va de même pour toutes les options de sauvegarde de BigQuery. Il s'agit plutôt de créer une nouvelle table avec des données existantes. 

Recommandations → Lire la documentation de Google sur la création de jeux de données à l'aide de commandes SQL Lire la documentation de Google sur la création d'ensembles de données à l'aide de commandes SQL.

💡Note : Il ne s'agit pas précisément d'une solution de "sauvegarde"; vous créez plutôt des ensembles de données à un autre endroit.

Outre la mise en place de ces configurations de sauvegarde dans BigQuery, vous devez tenir compte de certains paramètres clés :

  • Fréquence des sauvegardes. Cette fréquence dépend entièrement de la fréquence des modifications de vos données. Si vos données changent rapidement, vous aurez peut-être besoin de sauvegardes quotidiennes ou horaires. Si ce n'est pas le cas, vous pouvez choisir une fréquence mensuelle ou hebdomadaire. 
  • Politiques de conservation. Cette politique n'est pas la même pour tous et peut être définie en fonction des besoins de votre entreprise, pour autant qu'elle soit conforme aux lois sur les données qui régissent votre secteur d'activité. 
  • Préservation du schéma. Cet aspect essentiel de la configuration garantit que le schéma (ou la structure) de vos données reste intact. Cela signifie que tous les types de données, noms, tables et autres informations pertinentes sont exacts, même pendant la réplication. 

Instantanés au niveau de la table 

La sauvegarde au niveau de la table dans BigQuery vous permet de sélectionner des tables individuelles au sein d'un ensemble de données pour la sauvegarde. Cette fonction est particulièrement utile dans les scénarios où seules certaines tables de l'ensemble de données doivent être sauvegardées. 

Création d'instantanés pour des tables individuelles. 

Il existe deux méthodes standard pour créer des instantanés pour des tables individuelles ; 

  • Vous pouvez utiliser l'extrait bq extract via l'outil de ligne de commande, OU
  • Vous pouvez utiliser l'API BigQuery pour effectuer une demande. 

En voici un exemple :

bq extrait 'my_dataset.my_table' gs://my_bucket/my_table_backup

Où ? 

  • 'my_dataset.my_table' est la table que vous voulez sauvegarder - et,
  • gs://my_bucket/my_table_backup" est l'emplacement GCS où la sauvegarde sera stockée. 

Les deux méthodes exporteront les données du tableau sous forme de fichiers dans le format de votre choix vers le panier Google Cloud Storage (GCS), ce qui facilitera l'importation et la restauration du tableau en cas de besoin.

Le GCS est une option préférable pour le stockage de vos sauvegardes de tables BigQuery en raison de sa sécurité, de sa fiabilité et de sa rentabilité. 

Exportation de vos sauvegardes de tables BigQuery dans différents formats. 

Vous pouvez exporter les données de vos tableaux dans les formats suivants : 

  • JSON (Javascript Object Notation). Il s'agit d'un format flexible et lisible par l'homme, donc plus facile à comprendre et à utiliser. Cependant, il peut être plus grand (en taille) et plus lent que d'autres formats. 
  • CSV (Comma-Separated Values). Il s'agit d'un format simple et largement supporté pour la plupart des scénarios de représentation de données sous forme de tableaux. Cependant, il ne présente pas avec précision les structures de données complexes. 
  • Avro est un cadre de sérialisation de données orienté lignes. Son format binaire compact le rend idéal pour traiter de grands ensembles de données, en particulier lorsque le schéma de la table change au fil du temps. En outre, vous pouvez compresser les fichiers stockés au format Avro, ce qui permet de réduire le stockage et d'accélérer le temps de sauvegarde/restauration. 
  • Parquet (Apache Parquet) est un format de stockage de données orienté colonnes. Il peut également gérer de grands ensembles de données et offre d'excellentes capacités de compression. Toutefois, il peut présenter certaines limites en ce qui concerne les mises à jour fréquentes des tables. 

Gestion des tables BigQuery partitionnées et des sauvegardes incrémentielles

Le partitionnement des tables dans BigQuery est une approche de la gestion et de l'organisation des grands ensembles de données. 

L'idéal est d'effectuer une sauvegarde basée sur la stratégie de partition existante. 

Pour cela, vous pouvez soit

  • sauvegarder la table entière, y compris toutes les partitions, OU
  • ou de sauvegarder des partitions spécifiques. 

Toutefois, l'exportation des seules partitions modifiées ou nouvellement ajoutées est plus efficace en termes de stockage si vous effectuez des sauvegardes incrémentielles.

Par exemple, si votre table est partitionnée par date, vous ne pouvez extraire que la partition du jour. 

Limites des instantanés au niveau des tables

  • Un instantané de table doit se trouver dans la même région et sous la même organisation que sa table de base.
  • Les instantanés de table sont en lecture seule. Vous ne pouvez pas mettre à jour les données d'un instantané de table à moins de créer une table standard à partir de l'instantané, puis de mettre à jour les données. Vous ne pouvez mettre à jour que les métadonnées d'un instantané de table, par exemple sa description, sa date d'expiration et sa politique d'accès.
  • Vous ne pouvez prendre qu'un instantané des données d'une table telles qu'elles étaient il y a sept jours ou plus récemment, en raison de la limite de sept jours pour les déplacements dans le temps. 
  • Vous ne pouvez pas prendre un instantané d'une vue ou d'une vue matérialisée. 
  • Vous ne pouvez pas prendre un instantané d'une table externe. 
  • Vous ne pouvez pas écraser une table ou un instantané de table existant lorsque vous créez un instantané de table. 
  • Si vous réalisez un instantané d'une table dont les données se trouvent dans un espace de stockage optimisé en écriture (tampon de streaming), les données de cet espace ne sont pas incluses dans l'instantané de la table. 
  • Si vous réalisez un instantané d'une table contenant des données en voyage dans le temps, les données en voyage dans le temps ne sont pas incluses dans l'instantané de la table. 
  • Si vous capturez une table partitionnée dont l'expiration de la partition est définie, les informations relatives à l'expiration de la partition ne sont pas conservées dans la capture. La table "instantanée" utilise l'expiration de partition par défaut de l'ensemble de données de destination. Pour conserver les informations relatives à l'expiration de la partition, copiez plutôt la table.
  • Vous ne pouvez pas copier un instantané de table. 

Sauvegardes basées sur des instantanés

Dans BigQuery, un instantané est une copie ponctuelle des données d'une table (appelée table de base). Cela signifie qu'il capture l'état de la table et de ses données à un moment précis, ce qui vous permet de restaurer à partir de ce point précis si nécessaire. 

En d'autres termes, il s'agit de prendre une photo de vos données. Elle peut s'avérer précieuse dans des cas tels que la conformité, l'audit ou l'analyse des tendances, où elle fournit une vue cohérente des données telles qu'elles existaient à un moment donné. 

💡Note → Les instantanés de table sont "en lecture seule". Les instantanés de table sont en "lecture seule", mais vous pouvez créer/restaurer une table standard à partir d'un instantané, puis la modifier.

Création et gestion d'instantanés pour la restauration ponctuelle 

Vous pouvez créer un instantané d'une table à l'aide des options suivantes :

  • Google Cloud Console
  • Instruction SQL
  • La commande bq cp --snapshot
  • jobs.insert API

Par exemple, si vous utilisez la console Google Cloud , procédez comme suit :

  • Allez dans la Cloud Console, et naviguez jusqu'à la page BigQuery.
  • Trouver le 'Exploreret développez les nœuds de projet et de jeu de données de la table que vous voulez mettre en snapshot.
  • Cliquez sur le nom du tableau, puis sur '.ENREGISTREMENT.' 
  • Ensuite, une fenêtre "Créer un instantané de table" s'affiche. Saisissez le Projet, Table et jeu de données pour le nouvel instantané de table. 
  • Définissez votre Délai d'expiration
  • Cliquez sur Sauvegarder.

Une fois l'instantané créé, il est détaché de la table d'origine. Cela signifie que toute modification apportée à la table n'affectera pas les données de l'instantané dans la nouvelle table. 

Recommandé → En savoir plus sur la création d'instantanés de table à l'aide d'autres options.

Avantages des sauvegardes basées sur des instantanés

  • Version des données. Cela vous permet d'accéder aux données telles qu'elles sont apparues à des moments précis. Vous pouvez ainsi retracer les modifications ou restaurer les données dans leur état d'origine si nécessaire. 
  • Analyse historique. Vous pouvez comparer différents instantanés pour suivre l'évolution des données dans le temps. Cela peut vous aider à comprendre les tendances et à améliorer votre processus de prise de décision. 
  • Conservation des données. Certaines industries et organisations ont des politiques strictes de conservation des données pour se conformer aux exigences réglementaires. Les sauvegardes basées sur des instantanés vous permettent de conserver les données pendant une durée spécifique, conformément à la réglementation. 

Utilisation de la fonction de voyage dans le temps de BigQuery pour la restauration des données

BigQuery offre une fonctionnalité appelée "voyage dans le temps", qui vous permet d'accéder aux versions historiques de votre tableau au cours des sept derniers jours. 

Cette fonction permet de restaurer ou de conserver les données d'une table à partir d'une date donnée, en annulant toutes les modifications effectuées après cette date. 

Les sauvegardes basées sur des instantanés et la fonction de voyage dans le temps renforcent considérablement votre stratégie de protection des données dans BigQuery. 

Il convient de noter que le "voyage dans le temps" n'est pas une solution de récupération garantie en cas de défaillance opérationnelle, de cyberattaque ou de catastrophe naturelle. 

Voici pourquoi : 

  • Le délai de récupération des données est limité à sept jours. Si un problème n'est pas détecté dans ce délai, les données ne peuvent pas être récupérées.
  • Le voyage dans le temps n'offre pas la possibilité de dupliquer ou de sauvegarder vos données. Il vous permet simplement de revenir à l'état antérieur de vos données. 

C'est pourquoi il devient essentiel d'employer d'autres mesures de sauvegarde, comme l'exportation régulière de données vers Google Cloud Storage et la réplication des données, afin de garantir une sécurité totale des données.

Mise en œuvre de solutions de sauvegarde BigQuery

Utilisation de Python et GitHub

Grâce à sa facilité d'utilisation et à sa vaste bibliothèque, Python facilite l'interaction avec BigQuery et l'automatisation de l'ensemble du processus de sauvegarde. 

Désormais, en utilisant Python avec GitHub, une plateforme de premier plan pour l'hébergement et le contrôle des versions de code, vous pouvez gérer vos scripts, suivre les modifications et même collaborer avec d'autres personnes. 

Pour ce faire, vous devez exploiter les bibliothèques et les dépôts Python existants afin de rationaliser votre processus de développement : 

  • google-cloud-bigquery. Cette bibliothèque Python officielle provient de Google Cloud et fournit des fonctionnalités telles que la gestion des ensembles de données, la planification et l'exécution des requêtes.

Voici un exemple d'utilisation de Python pour effectuer une requête

from google.cloud import bigquery

client = bigquery.Client()

# Effectuer une requête.

QUERY = (

    'SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013` '

    'WHERE state = "TX" '

    LIMIT 100')

query_job = client.query(QUERY) # requête API

rows = query_job.result() # Attend la fin de la requête

pour row dans rows :

    print(nom.ligne)

  • google-cloud-storage. Cette bibliothèque permet d'automatiser le stockage de vos sauvegardes dans Google Cloud. 
  • pandas-gbq. Cette bibliothèque fait le lien entre BigQuery et Pandas. Elle simplifie la récupération des résultats des tables BigQuery à l'aide de requêtes de type SQL.

Exemples de ce que vous pouvez faire avec la bibliothèque pandas-gbq : 

Effectuer une recherche : 

  • import pandas_gbq
  • result_dataframe = pandas_gbq.read_gbq("SELECT column FROM dataset.table WHERE value = 'something'")

Téléchargement d'un cadre de données :

  • import pandas_gbq
  • pandas_gbq.to_gbq(dataframe, "dataset.table")

En outre, il est essentiel de respecter certaines bonnes pratiques standard lorsque l'on utilise Python et GitHub pour créer des sauvegardes BigQuery. 

  • Surveillez vos tâches de sauvegarde. Intégrez la gestion des erreurs et la journalisation dans vos scripts afin de déclencher un système d'alerte qui vous informe des problèmes potentiels liés au processus de sauvegarde. 
  • Modularisez vos scripts Python. La modularisation est simplement un moyen d'organiser les programmes au fur et à mesure qu'ils se compliquent. Dans ce cas, divisez vos fonctions liées à la sauvegarde en modèles réutilisables, ce qui les rendra plus faciles à gérer et à maintenir au fur et à mesure qu'elles se développent. 
  • Utiliser des fichiers de configuration. Également appelés "fichiers de configuration",ils sont utilisés pour stocker les paires clé-valeur d'un code Python. Par exemple, lors de l'exécution de sauvegardes BigQuery, vous pouvez utiliser un fichier de configuration pour stocker les identifiants de projet, les noms des ensembles de données et les emplacements de sauvegarde. Cela permet de modifier facilement le code sans l'altérer. 

Utilisation de la ligne de commande et de Google Cloud SDK 

La ligne de commande (ou gCLI) est un ensemble d'outils utilisés pour gérer les applications et les ressources hébergées sur le site Google Cloud. Ces outils comprennent les outils de ligne de commande gcloud, gsutil et bq. Par exemple, vous pouvez planifier et automatiser toutes les tâches liées à la sauvegarde à l'aide de la ligne de commande. 

D'autre part, le SDK Google Cloud facilite le développement et l'interaction avec l'API Google Cloud en utilisant le langage de programmation de votre choix. 

En combinant les deux, vous pouvez gérer facilement vos sauvegardes BigQuery. 

Comment configurer votre Google Cloud SDK. 

  • Aller à Cloud SDK - Bibliothèques et outils de ligne de commande Google Cloud.
  • Téléchargez le paquet d'installation de votre machine respective (Windows, macOS, Ubuntu et Linux) et suivez les instructions de la page.
  • Installez le SDK Google Cloud en utilisant le fichier './google-cloud-sdk/install.sh'et suivez les instructions nécessaires.
  • Authentifiez votre compte pour activer les ressources BigQuery à l'aide de la ligne de commande 'gcloud auth login'. 

Maintenant que votre Google Cloud SDK est configuré, vous pouvez utiliser la ligne de commande pour effectuer diverses fonctions de sauvegarde. 

Création de sauvegardes

Créer une sauvegarde BigQuery à l'aide de la ligne de commande '[bq cp]' consiste simplement à copier la table d'un emplacement à un autre. Les emplacements peuvent se situer dans différents projets, différents ensembles de données, ou même dans les mêmes ensembles de données. 

bq cp [project_id] :[dataset].[table] [project_id] :[backup_dataset].[backup_table]

Où se trouve votre ; 

  • '[project_id]' est l'identifiant de votre Google Cloud . 
  • '[dataset]' contient la table que vous souhaitez sauvegarder. 
  • '[table]' contient le nom de la table que vous souhaitez sauvegarder. 
  • '[backup_dataset]' est le jeu de données dans lequel vous souhaitez stocker la sauvegarde. 
  • '[table_de_sauvegarde]' est le nom de la table de sauvegarde. 

Exporter des données

Vous utilisez la ligne de commande '[bq extract]' pour exporter des données de BigQuery vers Google Cloud Storage ou des systèmes de stockage externes. Cette ligne de commande permet également d'exporter des données en JSON, CSV, Avro et Parquet. 

bq extract --destination_format=[format] [project_id] :[dataset].[table] gs://[bucket]/[path]

Ici, remplacez ;

  • '[format]' avec le format d'exportation souhaité. 
  • '[bucket]' avec le nom de votre Google Cloud Storage bucket. 
  • '[chemin]' avec le chemin dans lequel vous souhaitez stocker les données exportées.  

Par exemple : 

bq extract --destination_format CSV 'mydataset.mytable' gs://mybucket/mydata.csv

Gérer les sauvegardes

Pour gérer vos sauvegardes BigQuery, vous utilisez la commande '[bq ls]' pour lister toutes les sauvegardes [ou table] dans un jeu de données spécifique - ou '[bq rm]' pour supprimer une table. 

  • bq ls mydataset
  • bq rm 'mydataset.mytable'

Limites des options de sauvegarde de BigQuery

Option de récupération ponctuelle limitée

Supposons que vous disposiez d'un ensemble de données critiques dans BigQuery qui subit des mises à jour et des transformations fréquentes. Un jour, l'ensemble de données devient inexact en raison d'un problème de corruption des données. 

BigQuery n'offrant pas de récupération ponctuelle, vous ne pouvez pas facilement restaurer l'ensemble de données dans un état antérieur à la corruption. En l'absence de sauvegardes automatisées, vous devrez peut-être vous fier à des exportations manuelles ou à des instantanés que vous avez pris précédemment, ce qui peut prendre du temps et être potentiellement obsolète.

Processus d'importation et d'exportation complexe

Supposons que vous ayez un grand ensemble de données dans BigQuery et que vous souhaitiez créer une sauvegarde dans un système de stockage externe, tel que Google Cloud Storage (GCS). Bien que BigQuery permette d'exporter des données dans des formats tels qu'Avro, Parquet ou CSV, l'exportation de grands ensembles de données peut s'avérer complexe et gourmande en ressources. 

Par exemple, l'exportation de plusieurs téraoctets de données vers les SGC pourrait nécessiter beaucoup de temps et de ressources réseau, ce qui entraînerait des coûts supplémentaires et des perturbations potentielles des opérations en cours.

Mauvaise politique de conservation des sauvegardes

Par défaut, BigQuery conserve les tables ou les ensembles de données supprimés dans la "Corbeille" pendant 30 jours avant de les supprimer définitivement. Bien que cela offre un certain niveau de protection contre les suppressions accidentelles, vous ne pouvez pas prolonger ou personnaliser cette période de rétention.

Configuration et écriture de scripts gourmands en ressources

La gestion des scripts et des configurations personnalisées peut s'avérer complexe, en particulier lorsque l'environnement évolue. La gestion des scripts peut être décourageante et prendre beaucoup de temps pour un service comme BigQuery, sans parler de la gestion de plusieurs services en nuage. 

Sauvegarde et récupération de BigQuery : Le bilan

Google BigQuery est sans aucun doute un outil puissant pour les organisations axées sur les données. Ses requêtes SQL rapides comme l'éclair, ses capacités d'apprentissage automatique intégrées et son infrastructure évolutive en font une solution fiable, en particulier pour le traitement de grandes quantités de données. Cependant, le schéma, les ensembles de données et les tables de valeur résidant dans BigQuery doivent être protégés pour atténuer les risques de perte de données ou de défaillance du système. C'est là que HYCU vient sauver la situation. 

Avec HYCU Protégé, vous bénéficiez de sauvegardes en 1 clic et d'une restauration granulaire pour vos données BigQuery. Cette sauvegarde automatisée "set and forget" fonctionne 24/7/365, vous offrant une totale tranquillité d'esprit quant à la disponibilité de vos données BigQuery en cas de besoin. 

Besoin d'une sauvegarde et d'une restauration en nuage pour Google BigQuery?

Rejoignez les 4200+ clients qui font confiance à HYCU. 👈

Photo de Shive Raja

Directeur de la gestion des produits

Andy Fernandez est directeur de la gestion des produits chez HYCU, une société du groupe Atlassian Ventures. Toute la carrière d'Andy s'est concentrée sur la protection des données et la reprise après sinistre pour les applications critiques. Après avoir occupé des postes de chef de produit et de GTM chez Zerto et Veeam, Andy se concentre aujourd'hui sur la protection des applications SaaS et Cloud critiques dans le cadre de l'ITSM et du DevOps. Lorsqu'il ne travaille pas sur la protection des données, Andy aime assister à des concerts, trouver des endroits où manger et aller à la plage.

Découvrez la première plateforme SaaS de protection des données

Essayez HYCU par vous-même et devenez un adepte.