BigQueryとBigTableの違いは何ですか?[閉まっている]


82

誰かがBigQueryの代わりにBigTableを使用する理由はありますか?どちらも読み取りおよび書き込み操作をサポートしているようで、後者は高度な「クエリ」操作も提供します。

アフィリエイトネットワークを開発する必要があるので(したがって、クリック数と「売上高」を追跡する必要があります)、bigQueryはより優れたAPIを備えた単なるbigTableのように見えるため、違いにかなり混乱しています。


BigTableは、パフォーマンスの向上を必要とする人々にとって、低レベルで管理の行き届いていないクラウドデータストアのようなものだと思います。
dyeray

1
この過去のSOスレッドがあまりにも役立つことがあります。stackoverflow.com/questions/34437572/...
エリオットブロサール

@dyerayええ、私はそれを知っていますが、誰かがBigQueryだけではなく、BigTableとBigQueryの両方で同じデータを維持する理由はありますか?
帽子をかぶっていないユーザー

BigTableは、単一行または狭い範囲のルックアップに非常に適しています。BigQueryは全体像が非常に優れています。効率的なドリルダウンを使用した分析が必要な場合は、大規模な分析にはBigQueryを使用し、狭い範囲の分析にはBigTableを使用します。
ソロモン・ダスキス2016年

システムプロパティの比較GoogleBigQueryとGoogleCloudBigtableとGoogleCloudDatastoreの比較。!画像(免責事項!db-engines.comからコピー)
LeKhiem19年

回答:


103

違いは基本的にこれです:

BigQueryは、あまり変更されない、または追加によって変更されるデータセットのクエリエンジンです。クエリで「テーブルスキャン」が必要な場合、またはデータベース全体を調べる必要がある場合に最適です。合計、平均、カウント、グループ化を考えてください。BigQueryは、大量のデータを収集し、それについて質問する必要がある場合に使用するものです。

BigTableはデータベースです。これは、大規模でスケーラブルなアプリケーションの基盤となるように設計されています。データの読み取りと書き込みが必要なあらゆる種類のアプリを作成する場合はBigTableを使用します。スケールは、潜在的な問題です。


2
2番目の段落で-あなたはUse BigTable:o)を意味しました
Mikhail Berlyant 2016年

@MikhailBerlyantありがとう、編集
Michael Manoochehri 2016年

3
ここでグーグルによる少し不幸な命名規則。私が通常SQLについて考えるとき、私は表形式のデータ構造について考えますが、クエリについて考えるとき、データベースのキー値またはルックアップタイプについて考えます。この場合、BigTableはNo-SQLですが、BigQuerySqlデータベースです。
Maksood

@Michael Manoochehriはcloud.google.com/bigquery/... :以下、読み取りお伝えください
gstackoverflow

永続的な外部テーブルへのアクセスをユーザー(サービスアカウントを含む)またはグループと共有できます。外部表を照会するには、ユーザーまたはグループは、(最低でも)付与する必要がありますbigquery.dataViewerのデータセットレベル以上で役割を外部表に含まれているデータセットへのアクセスにbigquery.userのプロジェクトレベルまたは役割をクエリジョブを実行するためにより高いデータ
セット

80

GoogleCloud-GCPデータベースオプションの決定フローチャート

これは、Google Cloudが提供するさまざまなデータストアを決定するのに少し役立つ場合があります(免責事項!Google Cloudページからコピー)

要件がライブデータベースである場合、BigTableが必要です(ただし、実際にはOLTPシステムではありません)。それが分析のような目的である場合は、BigQueryが必要です。

OLTPOLAPについて考えてみてください。または、CassandraとHadoopに精通している場合、BigTableはCassandraとほぼ同等であり、BigQueryはHadoopとほぼ同等です(同意しました。これは公正な比較ではありませんが、アイデアは得られます)

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

注意

Bigtableはリレーショナルデータベースではなく、SQLクエリやSQLクエリをサポートしていないことに注意してください。JOINsを、複数行のトランザクションも。また、少量のデータには適していません。RDBMS OLTPが必要な場合は、cloudSQL(mysql / postgres)またはスパナを調べる必要があるかもしれません。

コストの観点

https://stackoverflow.com/a/34845073/6785908。ここで関連する部分を引用します。

全体的なコストは、データを「クエリ」する頻度に要約されます。それがバックアップであり、イベントをあまり頻繁に再生しない場合、それは非常に安価になります。ただし、毎日1回再生する必要がある場合は、スキャンされた5 $ / TBのトリガーを非常に簡単に開始できます。インサートとストレージがいかに安価であるかにも驚きましたが、Googleはある時点でそれらに対して高価なクエリを実行することを期待しているため、これはよくあることです。ただし、いくつかのことを中心に設計する必要があります。たとえば、AFAIKストリーミング挿入はテーブルに書き込まれる保証がなく、リストの末尾を頻繁にポーリングして、実際に書き込まれたかどうかを確認する必要があります。ただし、時間範囲テーブルデコレータを使用すると、テーリングを効率的に実行できます(データセット全体のスキャンに料金はかかりません)。

注文を気にしない場合は、無料でテーブルをリストすることもできます。その後、「クエリ」を実行する必要はありません。

編集1

クラウドスパナーは比較的若いですが、強力で有望です(そして法外に高価でもあります)。少なくとも、グーグルマーケティングは、その機能が両方の世界(従来のRDBMSとnoSQL)の最高であると主張しています

ここに画像の説明を入力してください


永続的な外部テーブルへのアクセスをユーザー(サービスアカウントを含む)またはグループと共有できます。外部テーブルをクエリするには、ユーザーまたはグループに(少なくとも)付与する必要があります。外部テーブルを含むデータセットにアクセスするには、データセットレベル以上のbigquery.dataViewerロールプロジェクトレベルのbigquery.userロールまたはクエリジョブを実行するためにより高いデータ
セット

上記の引用をcloud.google.com/bigquery/…から取得しましたbigtableにアクセスする理由bigqueryという単語を含む権限が必要ですか?
gstackoverflow

-3

BigQueryとCloudBigtableは同じではありません。BigtableはHadoopベースのNoSQLデータベースですが、BigQueryはSQLベースのデータウェアハウスです。それらには特定の使用シナリオがあります。

非常に短く簡単な言葉で。

  • ACIDトランザクションのサポートが必要ない場合、またはデータが高度に構造化されていない場合は、CloudBigtableを検討してください。
  • オンライン分析処理(OLAP)システムでインタラクティブなクエリが必要な場合は、BigQueryを検討してください。

5
BigtableはHadoopベースのNoSQLデータベースではなく、実際にはその逆です。Bigtableホワイトペーパーに基づいてHBase(HadoopベースのNoSQL)が構築されました。このため、それらは同様の(同じ?)APIを共有します。
IgorDvorzhak19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.