誰かがBigQueryの代わりにBigTableを使用する理由はありますか?どちらも読み取りおよび書き込み操作をサポートしているようで、後者は高度な「クエリ」操作も提供します。
アフィリエイトネットワークを開発する必要があるので(したがって、クリック数と「売上高」を追跡する必要があります)、bigQueryはより優れたAPIを備えた単なるbigTableのように見えるため、違いにかなり混乱しています。
誰かがBigQueryの代わりにBigTableを使用する理由はありますか?どちらも読み取りおよび書き込み操作をサポートしているようで、後者は高度な「クエリ」操作も提供します。
アフィリエイトネットワークを開発する必要があるので(したがって、クリック数と「売上高」を追跡する必要があります)、bigQueryはより優れたAPIを備えた単なるbigTableのように見えるため、違いにかなり混乱しています。
回答:
違いは基本的にこれです:
BigQueryは、あまり変更されない、または追加によって変更されるデータセットのクエリエンジンです。クエリで「テーブルスキャン」が必要な場合、またはデータベース全体を調べる必要がある場合に最適です。合計、平均、カウント、グループ化を考えてください。BigQueryは、大量のデータを収集し、それについて質問する必要がある場合に使用するものです。
BigTableはデータベースです。これは、大規模でスケーラブルなアプリケーションの基盤となるように設計されています。データの読み取りと書き込みが必要なあらゆる種類のアプリを作成する場合はBigTableを使用します。スケールは、潜在的な問題です。
Use BigTable
:o)を意味しました
これは、Google Cloudが提供するさまざまなデータストアを決定するのに少し役立つ場合があります(免責事項!Google Cloudページからコピー)
要件がライブデータベースである場合、BigTableが必要です(ただし、実際にはOLTPシステムではありません)。それが分析のような目的である場合は、BigQueryが必要です。
OLTPとOLAPについて考えてみてください。または、CassandraとHadoopに精通している場合、BigTableはCassandraとほぼ同等であり、BigQueryはHadoopとほぼ同等です(同意しました。これは公正な比較ではありませんが、アイデアは得られます)
https://cloud.google.com/images/storage-options/flowchart.svg
Bigtableはリレーショナルデータベースではなく、SQLクエリやSQLクエリをサポートしていないことに注意してください。JOIN
sを、複数行のトランザクションも。また、少量のデータには適していません。RDBMS OLTPが必要な場合は、cloudSQL(mysql / postgres)またはスパナを調べる必要があるかもしれません。
コストの観点
https://stackoverflow.com/a/34845073/6785908。ここで関連する部分を引用します。
全体的なコストは、データを「クエリ」する頻度に要約されます。それがバックアップであり、イベントをあまり頻繁に再生しない場合、それは非常に安価になります。ただし、毎日1回再生する必要がある場合は、スキャンされた5 $ / TBのトリガーを非常に簡単に開始できます。インサートとストレージがいかに安価であるかにも驚きましたが、Googleはある時点でそれらに対して高価なクエリを実行することを期待しているため、これはよくあることです。ただし、いくつかのことを中心に設計する必要があります。たとえば、AFAIKストリーミング挿入はテーブルに書き込まれる保証がなく、リストの末尾を頻繁にポーリングして、実際に書き込まれたかどうかを確認する必要があります。ただし、時間範囲テーブルデコレータを使用すると、テーリングを効率的に実行できます(データセット全体のスキャンに料金はかかりません)。
注文を気にしない場合は、無料でテーブルをリストすることもできます。その後、「クエリ」を実行する必要はありません。
クラウドスパナーは比較的若いですが、強力で有望です(そして法外に高価でもあります)。少なくとも、グーグルマーケティングは、その機能が両方の世界(従来のRDBMSとnoSQL)の最高であると主張しています
BigQueryとCloudBigtableは同じではありません。BigtableはHadoopベースのNoSQLデータベースですが、BigQueryはSQLベースのデータウェアハウスです。それらには特定の使用シナリオがあります。
非常に短く簡単な言葉で。