sql >> データベース >  >> RDS >> PostgreSQL

OracleからPostgreSQLへ:移行する理由

    PostgreSQLにはかなりの数の魅力的な利点があり、そのいくつかは他のデータベース管理システムにはありません。この記事では、移行を実行したり、新しい開発の代替案を調査したりしようとしているOracle開発者にとって最も興味深いものの概要を説明します。

    この記事がPostgreSQLの機能の別のリストになるのを防ぐために、Oracleとは特に異なる機能と、それらの違いがもたらす利点に固執します。

    フェデレーションと外部データラッパー

    Oracleには、他のデータベースのテーブルをローカルデータとして処理できるようにするフェデレーションと呼ばれる機能があります。 PostgreSQLは、外部データラッパーを使用してこれを11に引き上げます。フェデレーションシステムよりも素晴らしく優れており、リモートでデータに似ているものすべてに接続でき、料金もかかりません。これにより、PostgreSQLを使用するのがデータの取り込みだけであっても、PostgreSQLは優れたETLプラットフォームになります。

    plSQLとその他すべて

    Oracleには、plSQLと呼ばれる組み込みのプログラミング言語があります。 PostgreSQLには約80かそこらがあります。本当に。 PostgreSQLの拡張システムは、プラグインとして手続き型言語を作成するために使用され、考えられるほぼすべての言語のバインディングがあります。ない場合は、いつでもMark Wongと一緒に、個人的なお気に入りのラッパーを作成する方法をフォローできます。

    アプリケーションプログラミング

    Oracleは、データベースと通信するためのアプリケーションAPIを提供します。 PostgreSQLは、便利で信頼できる言語のためのAPIも提供します。ただし、この製品はオープンソースであるため、二流の開発市民はいません。プロジェクトにヘッダーファイルをインクルードすることで、PostgreSQLが提供するものすべてにアクセスできます。やりたいことは何でもしてください。

    国際化とローカリゼーション

    オラクルは、グローバリゼーション・ツールキットを提供しています。 PostgreSQLは、ローカリゼーションのためによく知られた、広く互換性のあるシステムサービスに完全に依存するようにゼロから構築されています。オペレーティングシステムが提供する任意の文字エンコーディング、照合、およびコードページを使用できます。

    ウェブ開発

    オラクルは、HTMLDBを介してHTMLの存在を認めています。 PostgreSQLは、JSON、XMLをネイティブにサポートし、バックエンドとしてJavascriptをプラグインします コーディング言語。Javaまたはその他の選択したフロントエンド言語と同時に使用できます。

    認証

    Oracleには組み込みの認証システムがあります(もう少し柔軟なProxy Authに賛成です)。 PostgreSQLは、ホストベースの認証およびSASLプロトコルに依存して、ホストがサポートできる任意の認証システムをプラグインし、いくつかはPostgreSQLに直接プラグインします。これにより、認証プロセスを他のマシンにオフロードする可能性とともに、認証の可能性が非常に大きくなります。

    拡張性

    Oracleには、ほとんどが独自のプラグインを備えたプラグインシステムがあります。 PostgreSQLには、一般コミュニティでサポートされている拡張システムがあり、何千ものプラグインが利用可能です。

    読み取りスケーラビリティ

    Oracleは、垂直方向の読み取りスケーラビリティがかなり優れています。 PostgreSQLは事実上無制限の読み取りクラスターを作成できます。ノードの数は、投入したいリソースの量によってのみ制限されます。

    コスト

    「無料」に勝るものはなく、Oracleは一生懸命努力すらしていません。それに直面しましょう。Oracleはとてつもなく高価であり、インスタンスごとに再度請求してもかまいません。

    これも線形比較ではありません。 PostgreSQLの最大の利点の1つは、追加コストなしで、必要なすべてのインスタンスを使用できることです。 (+ $ 0.00の追加費用、または$ 0.00を掛けると、あなたが決めると思います。)

    Oracleの単一インスタンスのコストをPostgreSQLの単一インスタンスと比較することは(PostgreSQLにとって)公平ではありません。無料の自由を味わったら、コストを削減するためだけにすべてを1つのインスタンスに詰め込むことに戻るのは難しいでしょう。

    倉庫に行く途中でデータを変換する一時的なデータベースのコストはいくらですか?無料で十分だと思います。レポート用の一時データベースはどうですか?私も無料で利用します。 ETLのデータ取り込みポイントであるものはどうですか?無料は良いです。私は無料が好きです。とても、ええと…解放されます。

    パフォーマンス

    いいえ、待ってください!これについて聞いてください。 PostgreSQLは読み取りクラスター内に無制限の数のノードを作成できることはすでに説明しました。これにより、特定の読み取り操作のコストをほぼゼロにまで下げることができます。ただし、PostgreSQLがOracleよりもパフォーマンスが高い別の方法もあります。

    PostgreSQLはノードごとに費用がかからないため、作業負荷ごとに異なる方法で調整できます。もちろん、これはOracleでも実行できますが、この方法で調整する機能に対してノードごとに料金を支払うことになります。したがって、ウェアハウスのチューニングパラメータをOL​​TPからデータレイクへのレポートに区別したい場合、PostgreSQLはこれをかなり簡単にし、それでもウォレットで簡単に実行できます。

    もちろん、PostgreSQLにはもっと魅力的な機能がありますが、私はすでに数か月前にその記事を書きました。その他の理由でPostgreSQLに移行した場合は、コメントでお知らせください。


    1. PostgreSQLでのsqrt()のしくみ

    2. 日付を列として動的にピボットする方法

    3. MySQLのテーブル名では大文字と小文字が区別されますか?

    4. MySQLで現在の日付と時刻を取得する方法