web-dev-qa-db-fra.com

Quelle est la différence entre BigQuery et BigTable?

Y a-t-il une raison pour laquelle quelqu'un utiliserait BigTable au lieu de BigQuery? Les deux semblent prendre en charge les opérations de lecture et d'écriture, cette dernière offrant également des opérations avancées de "requête".

Je dois développer un réseau d'affiliés (ainsi, je dois suivre les clics et les "ventes"). La différence me laisse un peu perplexe, car bigQuery semble n'être que bigTable avec une meilleure API.

58

La différence est fondamentalement ceci:

BigQuery est un moteur de requête pour les jeux de données qui ne changent pas beaucoup, ou qui changent en ajoutant. C'est un excellent choix lorsque vos requêtes requièrent une "analyse de table" ou la nécessité de parcourir l'ensemble de la base de données. Pensez sommes, moyennes, comptes, groupements. BigQuery est ce que vous utilisez lorsque vous avez collecté une grande quantité de données et que vous devez poser des questions à ce sujet.

BigTable est une base de données. Il est conçu pour servir de base à une application volumineuse et évolutive. Utilisez BigTable lorsque vous créez n'importe quel type d'application nécessitant la lecture et l'écriture de données. La mise à l'échelle est un problème potentiel.

65

Cela peut aider un peu à choisir entre différents magasins de données proposés par Google Cloud (Avertissement! Copié à partir de la page Google Cloud).

Google Cloud - GCP database options decision flowchart

Si votre besoin est une base de données active, BigTable est ce dont vous avez besoin (pas vraiment un [~ # ~] oltp [~ # ~] cependant). S'il s'agit davantage d'un objectif d'analyse, alors BigQuery est ce dont vous avez besoin!

Pensez à [~ # ~] oltp [~ # ~] vs [~ # ~] olap [~ # ~] ; Ou si vous connaissez Cassandra vs Hadoop, BigTable équivaut approximativement à Cassandra, BigQuery équivaut approximativement à Hadoop (Convenu, ce n'est pas une comparaison juste, mais vous voyez l'idée)

https://cloud.google.com/images/storage-options/flowchart.svg

Remarque

Gardez à l'esprit que Bigtable n'est pas une base de données relationnelle et qu'il ne prend pas en charge les requêtes SQL ni JOINs, ni les fichiers multi- transactions en ligne. En outre, ce n'est pas une bonne solution pour de petites quantités de données. Si vous voulez un SGBDR OLTP, vous devrez peut-être consulter cloudSQL (mysql/postgres) ou spanner.

Perspective des coûts

https://stackoverflow.com/a/34845073/6785908 . Citer les parties pertinentes ici.

Le coût global se résume à la fréquence à laquelle vous "interrogez" les données. Si c'est une sauvegarde et que vous ne rejouez pas trop souvent les événements, ce sera très économique. Cependant, si vous devez le rejouer une fois par jour, vous déclencherez très facilement le balayage de 5 $/To. Nous avons également été surpris de constater à quel point les inserts et le stockage étaient bon marché, mais c’est souvent parce que Google s’attend à ce que vous exécutiez des requêtes coûteuses à un moment donné. Cependant, vous devrez concevoir certaines choses. Par exemple. Les encarts AFAIK en continu n’ont aucune garantie d’être écrits sur la table et vous devez interroger fréquemment en fin de liste pour voir si elle a été réellement écrite. Le décor peut être fait efficacement avec le décorateur de table de plage de temps, cependant (ne payant pas pour la numérisation de tout le jeu de données).

Si vous ne vous souciez pas de la commande, vous pouvez même lister une table gratuitement. Pas besoin d'exécuter une "requête" alors.

Modifier 1

La clé nuageuse est relativement jeune, mais puissante et prometteuse. Au moins, Google marketing affirme que ses fonctionnalités sont les meilleures des deux mondes (SGBD traditionnel et noSQL).

enter image description here

Je sais qu'il est un peu tard pour répondre, mais l'ajouter au cas où cela pourrait aider quelqu'un d'autre à l'avenir.

46
so-random-dude

Choisir quoi utiliser enter image description here

Big Table

Google BigTable est la solution de stockage en nuage de Google pour l’accès aux données à faible latence. Il a été développé à l'origine en 2004 et a été construit sur le système de fichiers Google (GFS). Il y a un article sur BigTable: Bigtable: un système de stockage distribué pour données structurées. Il est maintenant largement utilisé dans de nombreux services de base de Google, tels que Google Search, Google Maps et Gmail. Il est conçu dans une architecture NoSQL, mais peut toujours utiliser un format de données basé sur les lignes. Avec des données en lecture/écriture inférieures à 10 millisecondes, il convient aux applications qui ingèrent fréquemment des données. Il peut être adapté à des centaines de pétaoctets et gérer des millions d'opérations par seconde.

BigTable est compatible avec l'API HBase 1.0 via des extensions. Tout déménagement de HBase sera plus facile. BigTable n'a pas d'interface SQL et vous ne pouvez utiliser que l'API allez dans les lignes individuelles Put/Get/Delete ou exécutez des opérations d'analyse. BigTable peut être facilement intégré à d'autres outils GCP, tels que Cloud Dataflow et Dataproc. BigTable est également la base de Cloud Datastore.

Contrairement aux autres nuages, le calcul et le stockage GCP sont séparés. Vous devez tenir compte des trois parties suivantes lors du calcul du coût. 1. Le type d'instance Cloud et le nombre de nœuds dans l'instance. 2. La quantité totale de stockage utilisée par vos tables. 3. La quantité de bande passante réseau utilisée. Remarque: une partie du trafic réseau est gratuite.

C’est bon et mauvais. La bonne partie est que vous n’avez pas à payer le coût de calcul si votre système est inactif et que vous ne payez que le coût de stockage. La mauvaise partie est qu’il n’est pas facile de prévoir votre utilisation de calcul si vous avez un très grand ensemble de données. enter image description here

BigQuery

BigQuery est la solution d’entreposage de données de Google dans le nuage. Contrairement à BigTable, il cible les données de manière globale et peut interroger un volume de données considérable en un temps record. Les données étant stockées au format de colonne, il est beaucoup plus rapide de numériser de grandes quantités de données que BigTable. BigQuery vous permet d'évoluer en pétaoctets et constitue un excellent entrepôt de données d'entreprise pour les analyses. BigQuery est sans serveur. L'informatique sans serveur signifie que les ressources informatiques peuvent être générées à la demande. Les utilisateurs n’utilisent plus aucun serveur ni n’ont une utilisation complète sans impliquer les administrateurs et la gestion de l’infrastructure. Selon Google, BigQuery peut analyser des téraoctets de données en quelques secondes et des pétaoctets de données en quelques minutes. Pour l’ingestion de données, BigQuery vous permet de charger des données à partir de Google Cloud Storage ou de Google Cloud DataStore ou de les diffuser dans le stockage BigQuery.

Cependant, BigQuery est vraiment pour le type de requête OLAP) et analyse une grande quantité de données et n'est pas conçu pour les requêtes de type OLTP. Pour les petites lectures/écritures, il Cela prend environ 2 secondes, alors que BigTable demande environ 9 millisecondes pour la même quantité de données. BigTable est beaucoup mieux loti pour le type de requêtes OLTP). Bien que BigQuery prenne en charge les opérations atomiques à une seule ligne, support de transaction en ligne. enter image description here

Voir ceux-ci pour plus d'informations lien 1lien 2 `` lien

12
Umer

BigQuery et Cloud Bigtable ne sont pas identiques. Bigtable est une base de données NoSQL basée sur Hadoop, tandis que BigQuery est un datawarehouse basé sur SQL. Ils ont des scénarios d'utilisation spécifiques.

En termes très courts et simples;

  • Si vous n'avez pas besoin de la prise en charge des transactions ACID ou si vos données ne sont pas très structurées, envisagez Cloud Bigtable.
  • Si vous avez besoin d'interrogation interactive dans un système de traitement analytique en ligne (OLAP), envisagez BigQuery.
0
Chiro