J'ai (2 To) dans des fichiers 20 000 dans S3 créés au cours de chaque jour que j'ai besoin de charger à la table de partition de la bigquerie à ce jour. Les fichiers sont roulé sur toutes les 5 minutes. P>
Quel est le moyen le plus rentable d'obtenir des données à BigQuery? Je recherche une optimisation des coûts dans les deux AWS S3 à la sortie réseau GCP et la chargement réelle des données. P>
4 Réponses :
Cloud Google dans Beta prend en charge un service de transfert de bigquery pour S3. Détails mentionnés ici . L'autre mécanisme d'utilisation de S3 -> GCS -> Mécanisme de BigQuery, que je crois engendrera le coût de la GCS trop p>
selon Google Cloud's prix docs, il est indiqué "sans frais" de GC POV avec des limites applicables. p>
Pour le transfert de données de S3 à Google Cloud sur Internet (je suppose que ce n'est pas sur VPN) est mentionné Ici . Vos données sont autour de 2 To, de sorte que le coût selon la table sera de 0,09 $ par GB p>
Il existe plusieurs méthodes pour optimiser le transfert et la charge. P>
Tout d'abord, la sortie réseau d'AWS ne peut pas être évitée. Si vous le pouvez, gzip votre fichier avant de les stocker dans S3. Vous réduirez la bande passante de la sortie et la bigquery peut Charger des fichiers compressés . < / p>
Si votre charge de travail qui écrit sur S3 ne peut pas gzip le fichier, vous devez effectuer une comparaison entre le temps de traitement pour gziper le fichier et le coût de sortie du fichier non gzippé. P>
Pour GCS, nous parlons souvent de coûts en GB / mois. C'est une erreur. Lorsque vous regardez la facturation de BigQuery, le coût est calculé en GB / secondes. Par la manière, moins vous laissez votre dossier sur stockage, moins vous payez. Au fait, si vous chargez votre fichier rapidement après le transfert et la charge dans BigQuery, vous ne paierez presque rien. P>
Vous avez quelques options pour obtenir vos données S3 ingérées à BigQuery, tout en fonction de la rapidité avec laquelle vous avez besoin de vos données disponibles à BigQuery. De plus, toute exigence relative à toute transformation de données (enrichissement, déduplication, agrégation) doit être prise en compte au coût global. P>
Le moyen le plus rapide d'obtenir des données à BigQuery est en streaming API (dans le délai de secours), qui est fourni avec 0,010 $ par rapport à 200 MB. Tarification de l'API en continu P>
Le service de transfert de bigquery est un autre choix qui est le plus facile et gratuit. Il vous permet de planifier le transfert de données pour qu'il ne fonctionne pas une fois par jour (actuellement). Dans votre cas, où les données sont produites en permanence, ce serait la méthode la plus lente pour obtenir des données à BigQuery. Tarification de service de transfert P>
Si vous avez besoin d'une transformation complexe, vous pouvez également envisager de prendre en compte le cloud Dataflow, ce qui n'est pas gratuit. Tarification de Dataflow Cloud P>
Enfin, vous pouvez également envisager une solution sans serveur, qui est entièrement entraînée par l'événement, vous permettant ainsi d'ingestion de données en temps réel. Avec cela, vous paieriez pour l'exécution de la fonction Lambda et Cloud, qui devrait être d'environ quelques dollars par jour et coût de la sortie. P>
Pour la mise en miroir de données entre AWS S3 et Google Cloud Stockage, vous pouvez utiliser Serverless Miroir de stockage en nuage , qui est livré avec une optimisation de la taille de la charge utile avec une compression de données ou un transcodage dynamique d'avr. p>
Pour obtenir des données chargées à BigQuery, vous pouvez utiliser Serverless BQTAIL , qui vous permet d'exécuter des charges en lots. Pour ne pas dépasser 1k charge quota de bigquery par table et par jour, vous pouvez utiliser confortablement une fenêtre de lots de 90 secondes, ce qui permettrait de charger vos données à la bigquerie dans les délais d'une minute dans le scénario pire des cas. Vous pouvez également exécuter une déduplication de données, un enrichissement des données et une agrégation. P>
Dans votre scénario, lorsque la taille du transfert est relativement petite, 2 To par jour, j'accepterais les coûts de sortie; Toutefois, si vous prévoyez de croître à 40 To + par jour, vous pouvez envisager d'utiliser directement Connect to GCP. Avec un simple proxy, cela devrait être une réduction substantielle des coûts. P>
Mise à jour tardive 2020: Vous pouvez envisager d'utiliser BigQuery Omni < / a> Pour ne pas avoir à déplacer vos données de S3 et que les capacités de bigquery que vous recherchez. P>
(Disclaimer: Je ne suis pas affilié de manière à google, je trouve simplement qu'il est remarquable d'avoir commencé à fournir une assistance multi-cloud grâce à Anthos . J'espère que les autres fournisseurs de clouds suivront ...) P>