web-dev-qa-db-ja.com

価格はさておき、なぜGoogle Cloud DatastoreよりもGoogle Cloud Bigtableを選ぶのですか?

巨大なデータストレージの両方の検索可能性のユースケースがある場合、なぜGoogle Cloud DatastoreよりもGoogle Cloud Bigtableを選択するのですか?

SOと、BigtableとDatastoreを「比較」している他の側でいくつかの質問を見てきましたが、同じ具体的ではない答えに要約されているようです。

これが私の現在の知識と私の考えです。

データストアはより高価です。

この質問のコンテキストでは、価格設定について完全に忘れましょう。

Bigtableは巨大なデータセットに適しています。

データストアもそうですか? Bigtableが特に客観的に優れている理由はここではわかりません。

分析にはBigtableがDatastoreより優れています。

どうやって?どうして? Datastoreでも分析できるようです。問題ありません。 Bigtableが業界全体で分析に関して全会一致のように見えるのはなぜですか? GstoreやeBayなどは、Datastoreが提供できないBigtableからどのような価値を得ますか?

BigtableはHadoop、Sparkなどと統合されています。

Bigtable上に構築されていることを考えると、データストアも同様ではありませんか?

この質問 から、このステートメントは回答で作成されました:

BigtableとDatastoreは非常に異なります。はい、データストアはBigtableの上に構築されていますが、それだけではそのようなものにはなりません。これは、車が[car]ホイールの上に構築されると言っているようなものであり、車はホイールとそれほど変わりません。

ただし、車(ホイールを含む)は本質的に車のホイールだけではなくより多くの価値を提供するため、これは類推のように思えます。

一見すると、BigtableはDatastoreよりも厳密に劣っており、単一のインデックスしか提供せず、迅速な検索機能を制限しています。何が欠けていますか?

9
zeBugMan

BigtableとDatastoreはわずかに異なるユースケース向けに最適化されており、異なるトレードオフを提供します。主なものは次のとおりです。

データモデル:

  • Bigtableはワイドカラムデータベースです-HBaseとCassandraを考えてください
  • データストアはドキュメントデータベースです-MongoDBを検討してください
  • これらは両方ともKey-Valueの使用例に使用できることに注意してください

コストモデル:

  • プロビジョニングされたノードごとのBigtable料金
  • データストアはサーバーレスで、オペレーションごとに課金されます

一般に、必要な場合はBigtableが適しています:

  • 高速ポイント読み取りと範囲スキャン(特に大規模)。 Bigtableは、キーと値のルックアップのレイテンシを短縮し、隣接する行の高速スキャンを提供します。これは、行が辞書式順序で格納されるため、強力なツールです。シンプルで予測可能なクエリパターンがあり、スキーマを適切に設計している場合、Bigtableからの読み取りは非常に効率的です。
  • 高スループットの書き込み(ここでも、特に大規模)。これは、Bigtableが最終的には一貫しているために一部可能です。その代わりに、価格/パフォーマンスで大きな勝利を収めることができます。

Bigtableに適したユースケースの例には、時系列データ(IoT、モニタリングなど-大量のワークロードとxの時間単位で生成された大量のデータを非常に書き込むと考えます)、分析(詐欺の検出、パーソナライゼーション、推奨事項など)が含まれます、および広告配信(マイクロ秒ごと)。

データストア(またはFirestore)は、必要な場合に適しています:

  • クエリの柔軟性:データストアはドキュメントサポートとセカンダリインデックスを提供します。
  • 強力な一貫性および/またはトランザクション:Bigtableは最終的に一貫性のあるレプリケーションを持ち、複数行のトランザクションをサポートしません。
  • モバイルSDK:DatastoreとFirestoreは、firebaseエコシステムと非常によく統合されています。

ユースケースの例には、モバイルおよびWebアプリケーション、ゲームの状態、ユーザープロファイル、製品カタログが含まれます。

いくつかの質問に明示的に回答するには:

  • Bigtableが分析に使用されるのはなぜですか?これは主にパフォーマンスに関するものです。分析のユースケースでは、大規模なデータセットがあり、高い書き込みスループットが必要になる可能性が高くなります。ユーザーアカウント情報のようなものとは対照的に、クリックストリームデータを格納している場合は、データベースの制限に遭遇する方がはるかに簡単です。高速スキャンは分析のユースケースにとっても重要です。Bigtableを使用すると、ユーザーまたはデバイスについて必要なすべての情報を非常に迅速に取得できます。これをバッチジョブで処理したり、推奨事項や分析をオンザフライで作成したりできます。
  • Bigtableはデータストアよりも厳密に悪いですか?データストアは、セカンダリインデックスやドキュメントサポートなどの組み込み機能を確実に提供します。これらの機能が必要な場合、データストアは素晴らしい選択肢です。ただし、その機能にはトレードオフが伴います。 Bigtableは、おそらくより低いレベルですが、信じられないほどパフォーマンスの高いAPIを提供しており、ユーザーはこれらのトレードオフを自分で行うことができます。非常に用途が広く、強力なインフラストラクチャのビルディングブロックと考えることができます。私は実際にホイール/車のアナロジーが好きです:時々あなたは車が欲しくない-あなたが本当に必要なものがダートバイクであるなら、ソリッドホイールのセットははるかに便利です:)
16
Sandy Ghai