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, ces dernières offrant également des opérations de "requête" avancées.

J'ai besoin de développer un réseau d'affiliation (donc j'ai besoin de suivre les clics et les "ventes") donc je suis assez confus par la différence parce que bigQuery semble être juste bigTable avec une meilleure API.

32
demandé sur so-random-dude 2016-10-07 17:35:01

3 réponses

La différence est essentiellement la suivante:

BigQuery est un moteur de requête pour les ensembles de données qui ne changent pas beaucoup, ou changent en ajoutant. C'est un excellent choix lorsque vos requêtes nécessitent une "analyse de table" ou la nécessité de regarder dans toute la base de données. Pensez à des sommes, des moyennes, des comptes, des regroupements. BigQuery est ce que vous utilisez lorsque vous avez recueilli une grande quantité de données et que vous avez besoin de poser des questions à ce sujet.

BigTable est une base de données. Il est conçu pour être la base d'une grande, évolutive application. Utilisez BigTable lorsque vous créez n'importe quel type d'application qui a besoin de lire et d'écrire des données, et l'échelle est un problème potentiel.

39
répondu Michael Manoochehri 2016-10-07 22:19:15

Cela peut aider un peu à décider entre les différents magasins de données que Google cloud offre (avertissement! Copié depuis la page Google Cloud)

Google Cloud - diagramme de décision des options de base de données GCP

Si votre exigence est une base de données en direct, BigTable est ce dont vous avez besoin (pas vraiment un système OLTP cependant). Si c'est plus un but d'analyse, alors BigQuery est ce dont vous avez besoin.

Pensez à OLTP vs OLAP; ou si vous êtes familier avec Cassandra et Hadoop, BigTable à peu près équivaut à Cassandra, BigQuery équivaut à peu près à Hadoop (D'Accord, pas une comparaison équitable, mais vous avez l'idée)

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

Note

Gardez à l'esprit que Bigtable n'est pas une base de données relationnelle et ne supporte pas les requêtes SQL ou JOINs, ni les transactions multi-lignes. 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 regarder à cloudSQL (mysql / postgres) ou spanner.

Point De Vue Des Coûts

Https://stackoverflow.com/a/34845073/6785908. Citant les parties pertinentes ici.

Le coût global se résume à la fréquence à laquelle vous 'interrogerez' les données. Si c'est une sauvegarde et vous ne rejouez pas les événements trop souvent, ce sera de la saleté à bas prix. Cependant, si vous avez besoin de le rejouer tous les jours une fois, vous commencerez déclenchement du 5 $ / TB scanné très facilement. Nous avons été surpris aussi comment inserts bon marché et le stockage étaient, mais c'est ofc parce que Google attend vous pour exécuter des requêtes coûteuses à un moment donné dans le temps sur eux. Vous aurez avoir à concevoir autour de quelques choses si. Par exemple AFAIK streaming les inserts n'ont aucune garantie d'être écrits dans la table et vous avez pour interroger fréquemment sur la queue de la liste pour voir si elle était vraiment écrite. Tailing peut être fait efficacement avec time range table decorator, bien que (ne payant pas pour analyser l'ensemble de données entier).

Si vous ne vous souciez pas de l'ordre, vous pouvez même lister une table gratuitement. Aucun besoin d'exécuter une 'requête' alors.

Modifier 1

Cloud clé est relativement jeune, mais qui est puissant et prometteur. Au moins, google marketing prétend que ses fonctionnalités sont les meilleures des deux mondes (SGBDR traditionnels et noSQL)

entrez la description de l'image ici

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.

23
répondu so-random-dude 2018-09-04 04:15:14

Choisir ce que l'utilisationentrez la description de l'image ici

Grande 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 Google File System (GFS). Il y a un article sur BigTable: Bigtable: un système de stockage distribué pour les données structurées. Maintenant, il est largement utilisé dans de nombreux services de base de Google comme la recherche Google, Google Maps et Gmail. Il est conçu dans l'architecture NoSQL, mais peut toujours utiliser format de données basé sur une ligne. Avec des données en lecture/écriture sous 10 millisecondes, il est bon pour les applications qui ont l'ingestion fréquente de données. Il peut être évolutif à 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 mouvement de HBase sera plus facile. BigTable n'a pas D'interface SQL et vous ne pouvez utiliser API go Put / Get / Delete lignes individuelles ou exécuter des opérations d'analyse. BigTable peut être facilement intégré avec D'autres outils GCP, comme Cloud Dataflow et Dataproc. BigTable est également la base de la Banque de données Cloud.

Contrairement aux autres clouds, 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 que vos tables utilisent. 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 vous n'avez pas besoin de 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. entrez la description de l'image ici

BigQuery

BigQuery est la solution D'entreposage de données basée sur le Cloud de Google. Contrairement à BigTable, il cible les données dans big picture et peut interroger un volume énorme de données en peu de temps. Comme les données sont stockées dans un format de données colonnaire, il est beaucoup plus rapide dans la numérisation de grandes quantités de données par rapport à BigTable. BigQuery vous permet d'évoluer vers pétaoctet et est un excellent entrepôt de données d'entreprise pour l'analyse. BigQuery est sans serveur. L'informatique sans serveur signifie que les ressources informatiques peuvent être filées à la demande. Il bénéficie aux utilisateurs de zéro utilisation du serveur à l'utilisation à grande échelle sans impliquer les administrateurs et la gestion de l'infrastructure. Selon Google, BigQuery peut analyser téraoctets de données en quelques secondes et pétaoctets de données en quelques minutes. Pour l'ingestion de données, BigQuery vous permet de chargez des données à partir de Google Cloud Storage ou de Google Cloud DataStore, ou diffusez-les dans BigQuery storage.

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, cela prend environ 2 secondes tandis que BigTable prend environ 9 millisecondes pour la même quantité de données. BigTable est beaucoup mieux pour le type de requêtes OLTP. Bien que BigQuery supporte les opérations atomiques à une seule ligne, il manque de transaction entre les lignes soutien. entrez la description de l'image ici

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

0
répondu Umer Farooq 2018-09-14 11:28:21