Checklist avant lancement pour BigQuery

Présentation

Cette checklist avant lancement pour BigQuery présente les activités qu'il est conseillé d'effectuer pour lancer une application commerciale utilisant Google BigQuery. Cette liste étant essentiellement axée sur BigQuery, nous vous conseillons donc de suivre également la checklist avant lancement pour Google Cloud Platform, plus générale, afin de connaître les activités recommandées s'appliquant à tous les services.

La présente checklist avant lancement pour BigQuery s'adresse aux développeurs maîtrisant BigQuery. Si vous débutez avec BigQuery, ces instructions ne vous expliquent pas comment utiliser le service. Les nouveaux utilisateurs doivent plutôt consulter le Guide de démarrage rapide de l'outil de navigation BigQuery ou le Guide de démarrage rapide de l'outil de ligne de commande bq.

Cette checklist est composée des sections suivantes :

  • Conception et développement d'architectures
  • Prélancement
  • Lancement final

Les sections sont présentées dans l'ordre dans lequel nous vous recommandons de les suivre lorsque vous préparez le lancement de votre application. Par exemple, vous pouvez commencer par la checklist relative à la conception et au développement d'architectures, car elle comporte des activités qu'il est conseillé d'effectuer au début du cycle de développement des applications. De même, la checklist relative au prélancement présente les activités que nous vous conseillons d'effectuer lorsque vous êtes sur le point de lancer une application. Cependant, la chronologie exacte des activités de la checklist et la durée nécessaire pour les effectuer dépendent du délai dont vous disposez pour le développement de votre application.

Checklist relative à la conception et au développement d'architectures

Nous vous recommandons d'utiliser cette checklist dès les premières étapes du développement d'une application. Vous pouvez effectuer les activités des différentes sections simultanément. Cependant, nous vous recommandons de commencer celles relatives à l'architecture logicielle le plus tôt possible, car ce sont elles qui nécessitent le plus de temps.

Activité
Communauté, groupes, forums
❑  
Consultez la page d'assistance communautaire Google BigQuery sur Stack Overflow. Vous y trouverez des informations intéressantes et des conseils pratiques.
❑  
Conception de schémas
❑  
Concevez le schéma en fonction de vos futures requêtes. BigQuery est compatible avec les champs imbriqués et répétés (de type RECORD), autorisant les relations logiques 1 à plusieurs dans une table dénormalisée. Exploitez-les le cas échéant, tout en maintenant une stratégie pour accéder à ces champs. Envisagez de créer des vues logiques pour la séparation ordinaire des champs répétés. Estimez le coût des requêtes.
❑  
Exécuter des requêtes dans des champs répétés peut s'avérer complexe au-delà du premier ou deuxième niveau d'imbrication. Veillez donc à modéliser les différents niveaux en fonction de vos besoins.
❑  
BigQuery permet d'optimiser les jointures, et la dénormalisation permet d'améliorer les performances de certaines requêtes. Identifiez dans quelle partie de votre modèle de données les jointures sont importantes.
❑  
BigQuery permet d'ajouter ou de mettre à jour des tables via le LMD. Ce dernier est adapté pour les mises à jour, les suppressions et les insertions groupées, plutôt que pour les modifications sur une seule ligne. Assurez-vous que vos modèles de mise à jour sont compatibles avec un système OLAP.
❑  
Contrairement à un SGBDR traditionnel, la notion de clé primaire/secondaire ou d'ID de ligne n'existe pas. En cas de besoin, vous pouvez identifier une colonne dans le schéma de la table à cette fin.
Estimation des volumes de données
❑  
Calculez la quantité de données qui seront importées lors du chargement initial pour obtenir un niveau de base.
❑  
Calculez la quantité de données qui seront importées de manière incrémentielle et la vitesse (horaire/quotidienne/hebdomadaire).
❑  
Calculez la quantité éventuelle de données qui vont expirer et la fréquence.
Estimation du traitement des requêtes
❑  
Identifiez les types de requêtes exécutées sur les ensembles de données BigQuery tous les jours. Stackdriver Monitoring fournit des diagnostics utiles sur l'utilisation des ressources, les requêtes simultanées et la taille des ensembles de données.
❑  
Choisissez une stratégie de partitionnement/segmentation des tables. Par exemple, si les requêtes émises sur une journée sont pertinentes par rapport aux données recueillies ce même jour, créez une table par jour. Pour agréger les données de plusieurs jours, exécutez les requêtes avec les caractères génériques de la table ou avec la pseudocolonne \_PARTITIONTIME.
❑  
Calculez la quantité de données (nombre de requêtes x données traitées par requête) qui seront traitées par BigQuery chaque jour. Notez que BigQuery facture le traitement des colonnes individuelles (pas la ligne entière). Tenez-en donc compte dans vos calculs. Notez également que la colonne référencée dans les requêtes appelle une analyse complète de la colonne.
Gestion des quotas
❑  
Découvrez les quotas par défaut dans BigQuery.
❑  
Effectuez une analyse de quotas dans les domaines suivants, le cas échéant :
  • Nombre de tâches de chargement par jour requises pour charger des données dans BigQuery.
  • Nombre de tâches de chargement par table et par jour dans BigQuery.
  • Si vous utilisez une API de streaming, vérifiez le nombre d'insertions en flux continu, la taille des lignes d'insertion, le nombre maximal de lignes par seconde, le nombre maximal de lignes par requête et d'autres paramètres spécifiques à l'API de streaming.
  • Nombre de requêtes émises par votre application vers BigQuery.
  • Nombre de sessions simultanées utilisées pour exécuter des requêtes en même temps.
  • Nombre de tâches d'exportation exécutées par jour pour extraire des données de BigQuery.
  • Même l'API qui permet d'appeler des opérations BigQuery est soumise à des limites de débit journalières. Pour plus d'informations, consultez la page Limites relatives à l'API.
❑  
Si le quota est insuffisant, faites une demande d'ajustement de quota via le Centre d'assistance Google for Work.
Analyse des coûts
❑  
Sur la base du volume de données estimé et du traitement des requêtes, calculez le coût du stockage et du traitement BigQuery en utilisant les Tarifs de BigQuery et/ou le Simulateur de coût.
❑  
Tenez compte des recommandations d'optimisation des coûts suivantes :
  • Sélectionnez uniquement les colonnes pertinentes dans vos requêtes. Notez que BigQuery exécute (et facture) une analyse complète de la colonne sélectionnée, quels que soient les filtres sélectionnés au niveau de la clause WHERE.
  • Partitionnez ou segmentez vos tables en unités plus petites pour optimiser les coûts de traitement. Il faut souvent envisager un compromis entre optimisation et performances. Si vous avez un grand nombre de petites tables, le chargement de chaque table référencée dans la requête alourdit le processus, ce qui peut affecter les performances.
  • Testez vos requêtes sur des partitions plus petites de la table plutôt que sur une grande table.
  • Si vous utilisez l'API, validez la syntaxe des requêtes et obtenez des statistiques sur le traitement de données à l'aide de l'indicateur dryRun.
  • Supprimez les anciennes tables si vous n'avez pas besoin de les interroger ou profitez du délai d'expiration des tables.
Sécurité
❑  
Lisez attentivement la page Stratégies IAM pour BigQuery afin de vous assurer que les autorisations d'accès aux ensembles de données et d'exécution des tâches sont correctes. Prenez en compte les points suivants :
  • Vérifiez les accès BigQuery des membres du projet pour vous assurer que les règles de sécurité sont bien appliquées. Le rôle bigquery.User permet aux utilisateurs d'exécuter des tâches dans votre projet, alors que le rôle dataset.Viewer autorise à lire toutes les tables d'un ensemble de données spécifique. Les rôles dataset.Editor et dataset.Owner doivent seulement être accordés si l'utilisateur a besoin de modifier des tables ou des ensembles de données, respectivement.
  • S'il est nécessaire de partager des ensembles de données spécifiques avec les membres de l'équipe, servez-vous du partage de données ou des rôles explicites IAM.
  • Si vous avez besoin de règles de sécurité plus précises, vous pouvez utiliser les vues autorisées pour contrôler les accès.
Prétraitement des données avant d'utiliser BigQuery
❑  
Vous pouvez prétraiter les données avant de les importer dans BigQuery pour optimiser les coûts et les performances. Par exemple, vous pouvez :
  • prétraiter les saisies de caractères et les calculs inutiles ;
  • préparer les jointures fréquentes ;
  • agréger à l'avance les métriques et les analyses fréquentes.
❑  
Prétraitez (transformez, dénormalisez, etc.) les données avec BigQuery, Google Cloud Dataflow, Google Cloud Dataproc ou des outils ETL.
❑  
Envisagez diverses versions du même ensemble de données structurées différemment en fonction des différents types de requêtes.
❑  
Comme il existe une limite quotidienne sur les instructions LMD par table, prévoyez des mises à jour/suppressions dans les tables via des lots de modifications par étapes.
Optimisation et test des requêtes
❑  
Testez vos requêtes en fonction du volume de données attendu et ajustez-les selon les principes suivants :
  • Supprimez les colonnes inutiles de la clause SELECT pour réduire les coûts et améliorer les performances.
  • Dans le cas de requêtes imbriquées, utilisez efficacement les clauses WHERE pour filtrer les données dans les requêtes internes afin que les requêtes externes aient moins de données à traiter.
  • Faites en sorte que l'aplatissement soit aussi central que possible. Utilisez si possible les clauses WHERE conjointement.
  • Déplacez les filtres lourds, tels que les expressions régulières, à la fin.
  • Évitez de faire des regroupements sur des chaînes lorsque les données équivalentes d'origine sont disponibles : utilisez plutôt des horodatages ou des chaînes.
  • Essayez d'utiliser ORDER BY et LIMIT dans les requêtes les plus externes. Évitez autant que possible les ORDER BY dans les requêtes internes.
  • Sachez que l'utilisation de GROUP BY avec de (grands) groupes asymétriques peut faire augmenter la latence de la traîne. Utilisez des filtres pour améliorer les performances des requêtes.
  • Pensez à utiliser les fonctions analytiques IF/CASE ou SQL au lieu des auto-jointures, car leur traitement est moins lourd.
Visualisation des données
❑  
BigQuery est un outil permettant d'interroger des données dans des ensembles de données volumineux. La visualisation des données est facilitée par ses connexions robustes avec des outils tiers :
  • Google Data Studio
  • Des outils de productivité bureautique tels que Google Sheets et Microsoft Excel
  • Des outils commerciaux tels que Tableau, BIME et Informatica
  • Des alternatives Open Source comme redash

Checklist relative au prélancement

Avant le lancement commercial de votre application, nous vous recommandons de suivre les activités de la checklist relative au prélancement afin de déterminer si vous êtes prêt.

Activité
❑  
Si vous utilisez une API de streaming pour charger des données, simulez un test de charge pour vous assurer que les données sont importées sans dépasser les quotas.
❑  
Si vous utilisez des tâches par lot pour charger des données, simulez un test de charge pour vous assurer que les données sont chargées dans BigQuery selon un délai raisonnable et sans dépasser les quotas.
❑  
Comparez votre modèle de coût aux coûts réels. Vérifiez que les coûts opérationnels ne dépasseront pas votre budget. Mettez à jour votre modèle de coût. Bien que le Simulateur de coût de Google Cloud Platform permette d'obtenir des estimations assez précises, il est difficile de déterminer exactement le volume de données traitées pendant une journée avant le test de charge.

Checklist relative au lancement final

Consultez la checklist relative au lancement final un peu avant et pendant le lancement.

Activité
❑  
Si vous avez suivi la checklist jusqu'ici, votre application est prête pour un lancement réussi sur Google BigQuery. Félicitations ! Nous vous conseillons de revoir la Checklist relative au lancement final dans la Checklist avant lancement pour Google Cloud Platform.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…