web-dev-qa-db-ja.com

BigQueryとBigTableの違いは何ですか?

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

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

58

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

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

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

65

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

Google Cloud - GCP database options decision flowchart

要件がライブデータベースの場合、BigTableは必要なものです(実際にはOLTPシステム))。分析的な目的であれば、BigQueryが必要です!

OLTPvsOLAP;または、Cassandra対Hadoopに精通している場合、BigTableはCassandraにほぼ相当し、BigQueryはHadoopにほぼ相当します(同意、公平な比較ではありませんが、アイデアは得られます)

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

注意

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

コストの観点

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

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

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

編集1

Cloud spannerは比較的新しいですが、強力で有望です。少なくとも、Googleマーケティングは、その機能が両方の世界(伝統的なRDBMSとnoSQL)の中で最も優れていると主張しています。

enter image description here

私は答えるのが少し遅れていることを知っていますが、将来的には誰かに役立つかもしれないのでそれを追加してください。

46
so-random-dude

使用するものの選択 enter image description here

ビッグテーブル

Google BigTableは、低遅延データアクセスのためのGoogleのクラウドストレージソリューションです。当初は2004年に開発され、Google File System(GFS)に基づいて構築されました。 BigTableに関する論文が1つあります。Bigtable:構造化データ用の分散ストレージシステムです。現在では、Google検索、Googleマップ、Gmailなど、Googleの多くのコアサービスで広く使用されています。 NoSQLアーキテクチャで設計されていますが、行ベースのデータ形式を引き続き使用できます。データの読み取り/書き込みが10ミリ秒未満の場合、データを頻繁に取り込むアプリケーションに適しています。数百ペタバイトまで拡張可能で、毎秒数百万の操作を処理できます。

BigTableは、拡張機能を介してHBase 1.0 APIと互換性があります。 HBaseからの移動は簡単になります。 BigTableにはSQLインターフェイスがなく、API go Put/Get/Delete個の行を使用するか、スキャン操作を実行することしかできません。 BigTableは、Cloud DataflowやDataprocなどの他のGCPツールと簡単に統合できます。 BigTableはCloud Datastoreの基盤でもあります。

他のクラウドとは異なり、GCPコンピューティングとストレージは分離されています。コストを計算するときは、次の3つの部分を考慮する必要があります。 1. Cloudインスタンスのタイプ、およびインスタンス内のノードの数。 2.テーブルが使用するストレージの合計量。 3.使用されるネットワーク帯域幅の量。注:ネットワークトラフィックの一部は無料です。

良くも悪くも。良い点は、システムがアイドル状態で、ストレージコストのみを支払う場合、コンピューティングコストを支払う必要がないことです。悪い点は、非常に大きなデータセットがある場合、計算使用量を予測するのは簡単ではないことです。 enter image description here

BigQuery

BigQueryは、Googleのクラウドベースのデータウェアハウジングソリューションです。 BigTableとは異なり、全体像のデータを対象とし、短時間で大量のデータを照会できます。データは柱状データ形式で保存されるため、BigTableと比較して大量のデータをスキャンする場合に比べてはるかに高速です。 BigQueryを使用すると、ペタバイトまで拡張でき、分析に最適なエンタープライズデータウェアハウスです。 BigQueryはサーバーレスです。サーバーレスコンピューティングとは、コンピューティングリソースをオンデマンドでスピンアップできることを意味します。管理者やインフラストラクチャの管理を必要とせずに、サーバーのゼロ使用から本格的な使用までユーザーに利益をもたらします。 Googleによると、BigQueryはテラバイトのデータを数秒で、ペタバイトのデータを数分でスキャンできます。 BigQueryでは、データを取り込むために、Google Cloud StorageまたはGoogle Cloud DataStoreからデータをロードしたり、BigQueryストレージにストリームしたりできます。

ただし、BigQueryはOLAPタイプのクエリ用であり、大量のデータをスキャンするため、OLTPタイプのクエリ用には設計されていません。小規模な読み取り/書き込みの場合、BigTableは同じ量のデータで約9ミリ秒かかりますが、約2秒かかります。 BigTableは、OLTPタイプのクエリにははるかに適しています。 BigQueryはアトミックな単一行操作をサポートしていますが、クロス行トランザクションのサポートが欠けています。 enter image description here

詳細については、これらを参照してください リンク1リンク2 `` リンク

12
Umer

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

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

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