データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

PostgreSQLとCockroachDBのどちらを選択するか

元々は2019年8月15日にObjectRocket.com/blogで公開されました

CockroachDB®とPostgreSQL®は、リレーショナルワークロードに関して市場での地位を確立しているため、多くの人々がどちらを選択すべきかを尋ね始めています。 CockroachDBは、分散トランザクションと水平方向の読み取り/書き込みスケーリングが組み込まれた真のグローバルスケールSQLを提供し、SQLワークロードの前例のないスケール、復元力、およびパフォーマンスを実現します。ただし、PostgreSQLの方が適しているシナリオもいくつかあります。

PostgreSQLとCockroachDBのどちらを選択するか

CockroachDBとPostgreSQLの類似点

これらの2つのテクノロジーはかなり重複しています。何よりもまず、どちらも自慢している:

  • SQLコンプライアンス
  • ACIDトランザクション
  • PostgreSQLワイヤプロトコルの互換性
  • 幅広いクライアントドライバーとORMサポート

この機能はほとんどの主要なポイントをカバーします。つまり、選択はより微妙な決定ポイントに帰着します。いくつかの例外を除いて、どちらかのデータベースの上でアプリを試し、後でアプリを書き直すことなく、もう一方のデータベースに移行できます。

CockroachDBをチェックしたいが、PostgreSQLの方が適していると判断しますか?トラブルに巻き込まれない可能性はかなり高いです。 PostgreSQLで実行されているアプリがありますが、より優れたスケーリングとフェイルオーバーを探していますか?CockroachDBの方が適している可能性があります。

決定に役立つ差別化要因

互換性、複雑なクエリ、拡張性、柔軟性は、一方のオプションを他方よりも選択するのに役立つ場合があります。

スケール

最大の違いは、製品がスケーリング、レプリケーション、および高可用性(HA)を処理する方法です。 CockroachDBは、グローバルSQLデータストアに分散トランザクションを提供するためにゼロから構築されました。各リージョンまたはクラウドに存在できるデータをきめ細かく制御することで、クラウドやリージョン全体にデータを分散できます。PostgreSQLで同じ機能の一部を提供するためのソリューションや拡張機能は存在しますが、構成はそれほど完全でも簡単でもありません。

CockroachDBはグローバル規模に重点を置いているため、クラウドにはるかに適しています。 CockroachDBは、多数のより小さな使い捨てノードを想定しているため、スケーリングとHAは舞台裏で簡単に処理されます。

一方、PostgreSQLは、マルチマスター、スケーリング、およびHAのソリューションを多数提供しますが、その機能のほとんどはPostgreSQLに含まれておらず、サードパーティの拡張機能が必要です。また、HA PostgreSQLの展開では、セットアップ、構成、および日常の管理が少し複雑になります。

柔軟性

PostgreSQLの本当の利点は、長年の戦いの強化と、調整可能機能と拡張機能の範囲です。 PostgreSQLでのサーバー構成のドキュメントを比較するだけで、クラスターのさまざまなオプションとチューニングパラメーターが表示されます。分離レベルが必要ですか? 4つのオプションがありますが、CockroachDBには1つしかありません。複製したいですか? PostgreSQLには8つの選択肢がありますが、CockroachDBはそれを舞台裏で処理します。

PostgreSQLは、製品を拡張するための拡張機能の巨大なエコシステムも提供します。何百もの拡張機能が公開されており、独自の拡張機能を作成することもできます。これらは、クラスタリング(Citusなど)を新しいオブジェクト(postGIS)に追加することから、特定のユースケース(Timescale)に合わせてPostgreSQLを最適化することまで多岐にわたります。ただし、この柔軟性には確かにコストが伴います。複雑さが生じ、インスタンスのパフォーマンスと安定性に影響を与える可能性があります。また、環境の構成を誤ってしまう可能性もあります。CockroachDBアプローチは、クラスターの構築と管理が簡単になるように、作業を簡素化します。

互換性

完全なPostgreSQLまたはより完全なSQL準拠が必要な場合は、PostgreSQLの方が適しています。従来のアプリを使用している場合でも、標準のCMSまたはWebフレームワークのバックエンドストアが必要な場合でも、Cockroachがまだサポートしていない可能性のあるPostgreSQLまたはSQLのコーナーに大きく依存している可能性があります。 Cockroach Labsは引き続き製品に機能を追加していますが、PostgreSQLとの完全な互換性はまだありません。違いが見られるもう1つの領域は、CockroachDBが役割、ユーザー、グループ、および認証を処理する方法です。 PostgreSQL認証オプションは非常に堅牢であり、CockroachDBはRBACを提供しますが、2つのテクノロジーの間にはいくつかの重要な違いがあります。

互換性の課題を克服することはできますが、最終的にはアプリと潜在的な非互換性を特定して対処する能力にかかっています。

複雑なクエリ

Cockroach Labsが多大な労力を費やしてきた分野は、コストベースのSQLクエリオプティマイザーを使用して結合を実行し、パフォーマンスを向上させる機能です。ただし、非常に複雑なクエリと複数の結合、ビュー、集計、および式の評価を伴うビジネスインテリジェンスまたは分析ワークロードがある場合は、PostgreSQLの方が適している可能性があります。

これは、評価または概念実証で簡単にテストできる領域です。ユースケースが分析クエリとOLAPに近ければ近いほど、PostgreSQLの方が適している可能性があります。迅速なOLTPスタイルのトランザクションにより、CockroachDBが最も役立ちます。

概要の比較
CockroachDB PostgreSQL
最初のリリースの年 2015 1996
現在の安定バージョン 20.1.0 13
ライセンス ビジネスソースライセンスBSLコアコンポーネント。ゴキブリコミュニティライセンスCCLenterpriseはPostgreSQLライセンスを備えています PostgreSQLライセンス
SQ:適合性* 〜244 SQL:2011機能への完全または部分的な準拠 〜385のSQL:2011機能に準拠
ボーナスポイント オンラインスキーマの変更、分散トランザクション ストアドプロシージャ、カーソル、トリガー、マテリアライズドビュー
ワイヤープロトコル PostgreSQLワイヤープロトコル PostgreSQLワイヤープロトコル
クライアントドライバー テスト済みのオプションに加えて、PostgreSQLワイヤープロトコルによる大規模なエコシステム 公式およびコミュニティが提供するドライバーの大規模なエコシステム
CMS/フレームワークの互換性 部分的、PostgreSQLワイヤ互換性を介して 主要なフレームワークの幅広いサポートと互換性
プラグイン/拡張機能 エンタープライズ機能パック コミュニティ拡張の大規模なエコシステム
レプリケーション/HA はい、組み込み オープンソースの追加/拡張を介して
マルチマスター/クラスタリング はい、組み込み オープンソースの追加/拡張を介して
マルチデータセンター/ジオ はい、組み込み カスタムまたはオープンソースの追加/拡張を介して
認証 パスワード、証明書 パスワード、証明書、GSSAPI、SSPI、Ident、LDAP、RADIUS、PAM、BSD
権限 ユーザーベースの権限とRBAC 行および列レベルの権限を持つRBAC、完全なSQL:2011特権サポート
強み クラウドネイティブのスケーリング、高可用性、地理的分散、簡単な構成と展開 柔軟性、調整可能性、互換性、エコシステム
弱点 SQLサポート/機能のレイテンシーと豊富さ 大規模な複雑さ、読み取りパフォーマンス
結論 トランザクション性の高いOLTPスタイルのワークロードを構築する場合、または(ローカルまたはグローバルに)スケールアウトする機能が重要な場合は、CockroachDBを選択してください ワークロードに重い分析クエリが含まれている場合、または巨大な機能セット、エコシステム、互換性のあるアプリにアクセスする必要がある場合は、PostgreSQLを選択してください

* 100%SQL:2011の完全な仕様に準拠していることがわかっているデータストアはないため、各製品がサポートする仕様の量を調べました。

あなたの前に2つの素晴らしいオプションがあります。両方を組み合わせて使用​​すると、すばらしいデータストアポートフォリオを作成できます。今日ゼロから構築していて、非常にユニークな、またはPostgreSQL固有のニーズやスケーリングの問題がない場合は、CockroachDBをすばらしい機会として真剣に検討してください。ただし、必要なものがすでにわかっていて、PostgreSQLの幅広い柔軟性に焦点を当てたい場合は、そこでもサポートできます。

PostgreSQLとCockroachDBの両方が利用可能になりました。どちらがあなたにぴったりかを見つけてください。

結論

コメントや質問をするには、[フィードバック]タブを使用します。 セールスチャットをクリックすることもできます 今すぐチャットして会話を始めましょう。


  1. コンピュータと Android フォン間でファイルを転送する方法

    最近 Android フォンに切り替えた場合、または新しい PC を持ってきた場合。ファイル共有はある時点で必要になります。初めての場合でも慌てる必要はありません。このブログでは、コンピューターから Android にファイルを共有するために必要な方法について説明しています。 電話から PC にファイルを転送する理由はいくつかあります。セキュリティ上の目的でシステムにデータを保存したい。画像など、Android スマートフォンで編集する特定のファイルが必要です。 初心者が Android フォンから PC にファイルを転送する方法を理解するのは非常に難しい場合があります。したがって、最も一

  2. Mac と Windows PC 間でファイルを共有する方法

    新しい Mac を購入しましたが、Windows PC からデータを転送する方法を知りたいですか?では、OS が違うとデータ転送に支障をきたすのではないかと考えるのは自然なことでしょうか。しかし、噂は別として、ドキュメント、メディア ファイル、写真などを Mac と Windows 間で簡単に転送できます。適切なソフトウェアを使用するか、それを行う正しい方法を知ることによって。簡単にアクセスできるように、転送するデータを分離した方がよいでしょう。 転送を開始する前に、コンピュータの IP アドレスを知る必要があります。 IP アドレスがわからない場合は、次の手順に従ってください: Windo