106 votes

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 supporter les opérations de lecture et d'écriture, le second offrant également des opérations de "requête" avancées.

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

0 votes

Je dirais que BigTable s'apparente davantage à un Datastore en nuage de bas niveau et moins géré pour les personnes qui ont besoin de meilleures performances.

2 votes

Cet ancien fil de discussion sur le SO peut également vous aider : stackoverflow.com/questions/34437572/

0 votes

@dyeray Oui, je le sais, mais y a-t-il une raison pour que quelqu'un maintienne les mêmes données dans BigTable et BigQuery plutôt que dans BigQuery uniquement ?

131voto

Michael Manoochehri Points 3572

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 qui changent par adjonction. C'est un excellent choix lorsque vos requêtes requièrent un "balayage de table" ou la nécessité d'examiner l'ensemble de la base de données. Pensez aux sommes, aux moyennes, aux comptages, aux regroupements. BigQuery est ce que vous utilisez lorsque vous avez collecté une grande quantité de données et que vous devez poser des questions à leur sujet.

BigTable est une base de données. Elle est conçue pour servir de base à une application de grande taille et évolutive. Utilisez BigTable lorsque vous créez une application qui doit lire et écrire des données, et que l'échelle est un problème potentiel.

2 votes

Dans le deuxième paragraphe - vous vouliez dire Use BigTable :o)

0 votes

@MikhailBerlyant merci, édité

5 votes

C'est une convention de dénomination malheureuse de la part de Google. Lorsque je pense à SQL, je pense à une structure de données tabulaire, tandis que lorsque je pense à des requêtes, je pense à une base de données de type clé-valeur ou consultation. Dans ce cas, BigTable est No-SQL alors que BigQuery est une base de données Sql.

105voto

so-random-dude Points 5411

Google Cloud - GCP database options decision flowchart

Ceci peut vous aider à choisir entre les différentes solutions de stockage de données proposées par Google Cloud (Avertissement ! Copié de la page de Google Cloud).

Si votre exigence est une base de données en direct, BigTable est ce dont vous avez besoin (pas vraiment un OLTP système cependant). S'il s'agit plutôt d'un objectif de type analytique, alors BigQuery est ce qu'il vous faut !

Pensez à OLTP vs OLAP Si vous connaissez la comparaison entre Cassandra et Hadoop, BigTable correspond à peu près à Cassandra et BigQuery à Hadoop (la comparaison n'est pas juste, mais vous voyez l'idée).

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

Note

Veuillez garder à l'esprit que Bigtable n'est pas une base de données relationnelle et ne supporte pas les requêtes SQL ou les JOIN et ne prend pas en charge les transactions à plusieurs lignes. De plus, ce n'est pas une bonne solution pour les petites quantités de données. Si vous voulez un SGBDR OLTP, vous devriez peut-être vous tourner vers cloudSQL (mysql/postgres) ou spanner.

Perspective des coûts

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

Le coût global se résume à la fréquence à laquelle vous allez "interroger" les données. Si s'il s'agit d'une sauvegarde et que vous ne rejouez pas les événements trop souvent, ce sera très peu bon marché. Cependant, si vous avez besoin de rejouer une fois par jour, vous allez commencer à vous commencerez à déclencher les 5$/TB scannés très facilement. Nous avons également été surpris de voir à quel point Nous avons également été surpris de voir à quel point les encarts et le stockage étaient bon marché. Google s'attend à ce que vous exécutiez des requêtes coûteuses à un moment ou à un autre. Vous devrez Vous devrez cependant contourner certains problèmes. Par exemple, pour l'instant, le streaming inserts n'ont aucune garantie d'être écrits dans la table et vous devez et vous devez interroger fréquemment la queue de la liste pour voir si elle a vraiment été écrite. La fin de la liste peut être réalisée efficacement avec le décorateur de table de plage de temps, (sans avoir à payer pour l'analyse de l'ensemble des données).

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

Edit 1

Clé à nuage est relativement jeune, mais il est puissant et prometteur. En tout cas, le marketing de Google prétend que ses fonctionnalités sont le meilleur des deux mondes (SGBD traditionnel et noSQL).

enter image description here

1 votes

Vous pouvez partager l'accès à une table externe permanente avec des utilisateurs (y compris des comptes de service) ou des groupes. Pour interroger la table externe, vos utilisateurs ou groupes doivent être autorisés (au minimum) : Le rôle bigquery.dataViewer au niveau de l'ensemble de données ou à un niveau supérieur pour accéder à l'ensemble de données qui contient la table externe Le rôle bigquery.user au niveau du projet ou à un niveau supérieur afin d'exécuter des travaux de requête Le rôle bigtable.reader dans Cloud Bigtable qui fournit un accès en lecture seule aux métadonnées et aux tables.

0 votes

J'ai pris la citation ci-dessus de cloud.google.com/bigquery/ . Pourquoi accéder bigtable J'ai besoin d'une permission qui contient le mot bigquery ?

1 votes

En haut du graphique, la première question est : vos données sont-elles structurées ? Si la réponse est oui, vous pouvez trouver un chemin pour sélectionner le service BigTable, mais BigTable est destiné aux données non structurées. Pourquoi arrive-t-on à cette option même lorsque les données sont structurées ?

12voto

Umer Points 655

Choisir ce que l'on utilise enter image description here

Grande table

Google BigTable est la solution de stockage en nuage de Google pour l'accès aux données à faible latence. Elle a été développée à l'origine en 2004 et a été construite sur le système de fichiers de Google (GFS). Il existe un article sur BigTable : Bigtable : Un système de stockage distribué pour les données structurées. Aujourd'hui, il est largement utilisé dans de nombreux services de base de Google comme Google Search, Google Maps et Gmail. Il est conçu dans une architecture NoSQL, mais peut toujours utiliser le format de données par ligne. Avec des lectures/écritures de données inférieures à 10 millisecondes, il est idéal pour les 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. Toute migration depuis HBase sera plus facile. BigTable n'a pas d'interface SQL et vous pouvez seulement utiliser l'API pour mettre/obtenir/supprimer des lignes individuelles ou exécuter des opérations de balayage. BigTable peut être facilement intégré à d'autres outils GCP, comme Cloud Dataflow et Dataproc. BigTable est également la base de Cloud Datastore.

Contrairement à d'autres nuages, le calcul et le stockage de GCP sont séparés. Vous devez prendre en compte les trois éléments suivants pour calculer le coût. 1. Le type d'instance de 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. Veuillez noter qu'une partie du trafic réseau est gratuite.

C'est bon et mauvais. L'avantage est que 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. L'inconvénient est qu'il n'est pas facile de prévoir l'utilisation de l'ordinateur 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 basée sur le cloud de Google. Contrairement à BigTable, elle cible les données dans leur ensemble et peut interroger d'énormes volumes de données en peu de temps. Comme les données sont stockées dans un format de données en colonnes, il est beaucoup plus rapide d'analyser de grandes quantités de données par rapport à BigTable. BigQuery vous permet de passer au pétaoctet et constitue 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 utilisées à la demande. Il permet aux utilisateurs de passer d'une utilisation zéro du serveur à une utilisation à grande échelle 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 permet de charger des données à partir de Google Cloud Storage, ou de Google Cloud DataStore, ou de flux dans le stockage BigQuery.

Cependant, BigQuery est vraiment destiné aux requêtes de type OLAP et à l'analyse de grandes quantités de données et n'est pas conçu pour les requêtes de type OLTP. Pour de petites lectures/écritures, il faut environ 2 secondes alors que BigTable prend environ 9 millisecondes pour la même quantité de données. BigTable est bien mieux adapté aux requêtes de type OLTP. Bien que BigQuery supporte les opérations atomiques sur une seule rangée, il ne supporte pas les transactions inter-rangées. enter image description here

Voir ces informations pour plus d'informations Lien 1 Lien 2 `` Lien 3

-5voto

Chiro Points 48

BigQuery et Cloud Bigtable ne sont pas les mêmes. Bigtable est une base de données NoSQL basée sur Hadoop alors que BigQuery est un entrepôt de données 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 hautement structurées, envisagez Cloud Bigtable.
  • Si vous avez besoin d'une interrogation interactive dans un système de traitement analytique en ligne (OLAP), envisagez BigQuery.

7 votes

Bigtable n'est pas une base de données NoSQL basée sur Hadoop, c'est en fait l'inverse - basée sur Livre blanc Bigtable HBase (NoSQL basé sur Hadoop) a été construit. C'est pour cette raison qu'ils partagent une API similaire (la même ?).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X